I’ve been using VPS servers for years now for their fast speeds, low prices, and the freedom of controlling my own servers. With Core Web Vitals becoming a ranking factor, albeit a minor one, people have been asking about fast servers and how to migrate their sites to VPS servers.
I’ll step through how to migrate WordPress site to VPS hosting with Plesk. You’ll be able to save money and customer support headaches. I don’t know how many times I was told “it’s not our fault, check with [insert anyone else].”
If you have some tech knowledge or can follow step-by-step directions, you should be able to do this yourself. I learned much of this myself by Googling how to do things. Funny enough, there wasn’t any one resource that went through migrating WordPress sites like I’m going to show you.
There are some tutorials out there with pieces of this, but not the whole migration process. Why? Not quite sure, but I have some theories (e.g., it’s a pain to detail out each step).
First, here’s a brief overview of where VPS servers fit in against other common hosting solutions for affiliate marketers and their affiliate websites.
Current WordPress Hosting Options
There are 4 main options for affiliate websites: Basic Shared Hosting, High-End Shared Hosting, Managed VPS Hosting, Unmanaged VPS Hosting.
For the web hosting comparison table, I’ll go with the Base plans for all of them. I’ll also look at the cheapest plans for all, including paying annually if there’s an option, because most people don’t have a large portfolio of niche sites with high traffic to support. If you do, you probably already have a hosting solution to support it all.
What I’m going to show you is the Unmanaged VPS Server option with the Vultr High-Frequency (HF) Server.
Basic Shared Host (Siteground) | High-End Shared Host (WPX) | Managed VPS (Cloudways + Vultr HF) | Unmanaged VPS (Vultr HF) | |
Costs per Month | $6.99 (1st yr only, $14.99 after) | ~$20.83 (paid annually, $24.99 monthly) | $13 | $6 |
Payment | Pay 1 year in Advance $83.88 | Pay 1 yr in Advance $249.99 | Paid Monthly | Paid Monthly |
3 Year Total Costs | $443.64 | $749.97 | $468 | $216 |
Website/Domain Limits | 1 | 5 | Unlimited* | Unlimited* |
Monthly Visitor Traffic Limits | ~10,000 | N/A | >100,000** | >100,000** |
Monthly Bandwidth Limit | N/A | 100 GB | 1 TB (1,000 GB) | 1 TB (1,000 GB) |
Storage | 10 GB | 10 GB | 32 GB | 32 GB |
RAM | N/A | N/A | 1 GB | 1 GB |
CDN Included | Yes, Cloudflare | Yes, WPX Cloud | Add-On, $1 per 25 GB per Site, CloudwaysCDN | No*** |
Setup Difficulty 1-4 (1 least, 4 most) | 1 | 2 | 3 | 4 |
** Traffic based on my own experiences with Vultr HF of over 100K visitors with no problems
*** If using Ezoic, their CDN with Cloudflare is Free. Or bunny.net is $1/month up to 100 GB.
The VPS servers will provide you the best performances, because the servers aren’t shared with other customers and sites. You’ll get better speed and performance if you happened to get a huge spike in traffic. When I saw a traffic surge of 7,812 sessions in one day on Black Friday 2020 on just one of the sites, I was sweating a server crash. But the Vultr VPS server barely showed a blip in server resources and all was good.
For those who want to get deeper into the weeds of what servers can handle, there are load tests with the Vultr High-Frequency servers, you can see the tests over at kernl.us.
I usually point people to Cloudways, because managing their own servers might be too much for them. I still recommend Cloudways, because they manage VPS servers for customers. But managing VPS servers actually isn’t that difficult, it just sounds difficult.
Before we start, I want to give a disclaimer that I’m not an expert on server administration and management. This is what I do for my sites and it’s been working for me. I’m putting it out there for educational purposes.
If you happened to have scrolled down to see how many steps there are, don’t get overwhelmed. It seems really long because I go through every single step and give you the screenshots. Many tutorials only give some screenshots and steps, this should cover everything as of writing this post.
Give yourself 1-1.5 hours to step through the process of setting up the VPS server and WordPress migration. Majority of the time will be reading and following the steps and images here.
Step 0 – Migration Preparation
Let’s get started with getting much more bang for your buck when it comes to web hosting for your WordPress sites. Here’s everything you’ll need:
- Vultr Account – Sign up for a free account with my affiliate link and get $100 credit to use for 30 days.
- WPVivid WordPress Plugin – The Free version is all that’s needed to migrate. WPVivid is my backup, staging, and migration plugin tool. I do pay for the Pro version to access all the features.
On your Current Site, install the WPVivid WordPress Plugin through the Add Plugin Area. Search for WPvivid and you’ll find the free plugin.
Other than accessing your current WordPress site and domain registrar to change your DNS and Nameservers, the 2 items above are all the extras you’ll need.
Step 1 – Log In To Vultr and Create VPS Server
After you sign up for a Vultr account and install the WPVivid Plugin onto your current WordPress site, go ahead and log in to Vultr to set up the new server.
After you log in, you’ll see your Dashboard and list of servers. Yours should be empty. I already have multiple servers, so there’s a few there in the image.
- Hover over the + on the right
- Click on Deploy New Server
Deploy New Instance
You’ll be taken to a long page where you’ll need to choose the various server settings for your New Instance of a server.
I’ll show the different parts of the long page here for each step, but if you want to see the full image all-in-one, here’s the direct link to the image.
1. Choose Server – Select High Frequency
2. Server Location – Pick a location near you and/or where most of your visitors are coming from. The closer the server, the faster the page experience will be.
3. Server Type – Select Application. Then Select Plesk Web Admin SE.
Plesk is a server management tool like cPanel. The majority of Shared Hosting Providers give customers some limited form of cPanel or a customized server management panel. They offer limited tools though.
I find Plesk easier to use and because there’s no one else managing the server, you get full access to whatever you need. They also have extensive documentation on their website or you can find information on Google from other forums/blogs.
There are 2 other Plesk options here that will say “Free,” but don’t sign up for them unless you’re planning to run 4 or more sites on the server. It’ll also be Free only for a limited time trial, then you’ll need to pay for it.
The Web Admin SE plan is Free for up to 3 websites with no time limitation.
4. Server Size – Select the 32 GB server that’s $6/month.
5. Server Hostname & Label – You can name the server anything you want. It’s for yourself, so you can recognize the server in the list on your Dashboard. Once you put a name down, Click Deploy Now and you’ve put in the order for the server.
After you’ve deployed the server, you’ll see the “Server Added Successfully!” message and the New Server will show up in your list of Instances. It’ll say “Installing” while it’s setting the server up.
During the setup and installation, you can click the Server item and see more details on the Server Instance page.
This is where you’ll have all your important server information like username and passwords.
There are 2 main things you’ll need on this page.
- Plesk Server URL and Details: (bottom) The url with the Server IP address with “ :8443/login ” added is the url address where you’ll go to in the future if you need to do anything with the server.
- Username / Password (top): The “root” username and the hidden password is what you’ll use to log into Plesk.
Step 2 – Setup Plesk and New WordPress Installation
Once the Server Instance is done installing after a few minutes, you’re now ready to setup Plesk and install the new WordPress installation.
Head over to your Plesk URL “IPaddress:8443/login.” Replace IPaddress with the four set of numbers. In my case, my Plesk URL is https://149.28.202.115:8443/login.
You’ll most likely be greeted by this warning page about the connection not being private. You can safely ignore this because you’re directly accessing the IP address, while the SSL security certificate is for your temporary domain, which we’ll talk about later.
Go ahead and Click Proceed to IP address (unsafe).
You’ll now be greeted with the Plesk Login Page. I Accept All Cookies because it’s a server I’m setting up myself and it helps to avoid potential issues.
The Username and Password you enter to access Plesk is the “root” username/password combination from the Vultr Server Information page earlier.
After you log in, you’ll be asked to create a new ‘admin’ contact. This sets up a ‘admin’ username and password that you can use to log into Plesk. This is more used if you have others managing the server for you. I still use the ‘root’ login because I’m the only one touching Plesk and the server, but either login will work.
After you fill out the information, Click Enter Plesk and you’ll see the Initializing Plesk page. Once that’s done, you’ll get taken to a Welcome to Plesk where you can start adding websites and applications.
Under WordPress, Click on Create New Website.
The first thing they’re going to ask you to do is what domain you want to use. You’ll want to Use the Temporary Domain Name.
The reason for this is because your site is still active on your current web host. You don’t want to have down time by transferring your site over to a blank WordPress site.
You can still setup and select Use My Domain Name without changing your Nameservers/DNS settings, but you won’t be able to access this new WordPress site to migrate everything over.
I like to copy and paste the temporary domain name to a scratchpad, so I have easy access to it later. Click Continue.
Plesk is now setting up the new WordPress website backend.
When Plesk is done setting it all up, it’ll ask you to create WordPress Administrator Logins for the website and the database.
Any Username and Password can be entered here because they’ll be replaced later when you migrate your current site. But, you’ll still want to put down the information into a scratchpad in case you get logged out of the New WordPress site.
For example, I changed the WordPress Admin Username and Password, so it’s easier to remember for me. I also did a copy/paste into a scratchpad (TextEdit note on Mac, NotePad on Windows).
Once you’ve copied the information, click Summary & Deploy.
You’ll see this page with the website address to your new WordPress site. Click Deploy to finish off the installation.
The New WordPress site is ready now. You can Click Preview Website to see the stock WordPress site.
Click Open Panel to get into the Plesk Dashboard and continue on with the migration.
We’re now in the Plesk backend where you can access everything.
Step 3 – Migrating WordPress Site to New Server Using WPVivid
Now Plesk is set up and the New WordPress Site is installed, we’ll be migrating all the posts, pages, users, data, etc. from the Current Server to the New Server on Vultr.
Click on WordPress in the Sidebar Menu to see the New WordPress Installation.
You’ll see a list of the WordPress sites installed. There should only be one site, since this is a new setup. Click on it to open the drop-down to see all the details for the new site.
Click on Log In to be taken to the New WordPress Site’s Backend Dashboard. It will log you in automatically, but if not, you can enter your WordPress Admin username/password you created from earlier.
Here’s the New WordPress Site’s Dashboard. On this fresh installation, all we’ll be doing is installing the WPVivid Plugin and migrating the Current Website over to this one.
Head over to the Plugins area to Add New Plugin.
Search for WPVivid and Install the plugin. After it’s done installing, go ahead and Activate It.
Before moving on to the next step, did you notice how Fast the installation and activation were?
Part of that is because there’s nothing else on this WordPress site, but a big part of the speed is the VPS server itself.
Head over to WPvivid Backup’s Dashboard. Click on the Key tab.
We’ll be generating a Key that we’ll copy/paste into the WPvivid Plugin on the Current Site. This will connect the Current Site to this New Site, so you’ll be able to transfer everything over to the New Site.
Click Generate.
There will be a bunch of characters. Copy everything in the box onto your clipboard (Ctrl-C on Windows or Cmd-C on Mac).
If you didn’t install the WPvivid Plugin on your Current Site back in Step 0, you’ll need to do it now. Repeat the Add Plugin and Search for WPVivid a few steps back.
Before we start the migration, Deactivate any Security and Firewall, Caching, Login URL WordPress Plugins. E.g., Wordfence, WP Rocket, Autoptimize, WPS Hide Login, etc. These can cause potential issues, so it’s best to deactivate them. It’ll only be for a few minutes.
On your Current Site’s WPvivid Backup Plugin, Go to the Auto-Migration tab.
Paste the Copied Key into the input area and Click Save.
If you look at the top-left of the screenshot, it says “Yoyao.” That’s because I’m cloning this site you’re on for demonstration purposes. To double-check you’re on your Current Site, you can look to the top-left of your browser and see the name of the website.
Looking at the New Site installation, you’ll see that the default name was “Bun in the Oven” for me. This will change to “Yoyao” when the migration is done.
All those characters will turn into a string of characters and you’ll see a small box for Key.
Double-check the message to ensure that there’s no issue with the Key by looking at the message: The connection is ok. Now you can transfer the site [Current Site URL] to the site [New Site’s Temporary Domain URL].
If all good, let’s move on.
Make sure Database + Files (WordPress Files) is selected.
Click Clone Then Transfer.
WPVivid will start backing up your site. Depending on the size of your site, this could be anywhere from 1 minute to 5 minutes or more.
Good time for a bathroom break if you need it 🙂
Once the transfer is done, you’ll get a Pop-up Message. After closing the Pop-up, you’ll see another Transfer Succeeded message on the site.
The Current Site’s files have been uploaded to the cloud. We’re done with the Current Site for now.
You can Activate all the Security and Caching Plugins now on your Current Site.
Now let’s go to the New Site’s WPVivid and locate the files.
Head back over to WPVivid’s Backup & Restore tab on the New Site.
Click Scan Uploaded Backup or Received Backup.
You’ll see the Received Backup file.
Click Restore on the right side.
It’ll give you a new Restore tab. From here, Click Restore.
There’ll be a Pop-up message asking you to confirm you want to continue. This is because a Restore will replace this whole WordPress installation’s files and database with your Current Site’s files and data.
Click OK.
You’ll see all the files as they’re being transferred over. I’ve blocked out the majority of it here because they’re file and server information.
Depending on your site’s size, it could be done as fast as 1 minute.
Once the Restore is done, you’ll get a Pop-up Message and be logged out of the New Site.
The reason you’re logged out of your New Site is because you’ve replaced all the files and the database. That means the Administrator User that we set up while setting up WordPress in Plesk is no longer valid.
The Users on your Current Site have been copied over to the New Site. So you’ll use your Current Site’s login information, even though your New Site’s URL still shows the Temporary Domain.
You’ll be experiencing your New Site as-if it was your Current Site. Everything should be the exact same as your Current Site, except for the URL. Instead of the domain being CurrentDomain.com, everything will be on TemporaryDomain.com (intelligent-lamarr.149-28-202-115.plesk.page in this example).
That’s the great thing about this process with the Temporary Domain. You can fully test out your New Site without touching your Current Site.
Step 4 – Check Migrated Site on Temporary Domain
Check the migrated site to make sure everything is working now.
I wouldn’t turn on all the security and caching plugins just yet, because those plugins might make requests to your CurrentSite.com domain. Those requests will fail and get hung up, causing potential issues. But because this is a brand new, temporary domain and you won’t be on this for too long, there’s not much to be worried about.
Click through and check the backend and the front end.
At this point, I’d suggest to Disable Search Engine Visibility because you’re on a temporary domain. It’s best that Google doesn’t index this temporary domain. This allows you to take your time and make sure everything went well with the migration.
Step 5 – Add Domain to New Server Vultr HF
The next step is to add the domain to the Vultr High Frequency Server and separately to Plesk.
Adding the domains here will do nothing until you change your Nameservers in a later step, so there’s no rush here.
Head back to the Vultr Server Instance and Copy the IP Address.
Then hover over the + Circle on the right and Select Add Domain.
In the Domain field, enter the Current Domain you’ll be moving over to the New Server. Then Paste the IP Address from a step ago, the New Server IP here.
For me, it’d be yoyao.com if I was transferring to the server, but for demonstration purposes, I’m using another domain that I have: yoyao.me.
Once you’ve entered the domain and IP Address, Click Add.
You should now see the DNS of the domain. These are all the default records. If you have other DNS records you need to add, this is where you’ll need to add them.
Check what DNS records you currently have and add them here.
In the future, when you need to Add, Remove, or Edit DNS records, this is where you’ll be changing them. (Unless another platform controls your DNS like Ezoic, if integrated with their Nameservers)
We’ll need this page again, so no need to close this browser window. Best to open another browser tab for the next steps with Plesk.
Head back over to Plesk and Click on Add Domain.
You’ll see a page with fields to fill out.
Domain Name – Enter your Current Domain. The same domain you added to Vultr.
Location of the Website’s Files – In this Dropdown, select the Temporary Domain that’s being used. Since this is a fresh install, there should only be one option anyways.
Preferred Domain – Select the version of your domain that you currently use. Should only be a www or naked version (non-www) of your domain.
Secure with an SSL/TLS Certificate – Do Not Check This Box yet. The Nameservers haven’t been pointed to this server yet, so your SSL Certificate won’t work. We’ll create the SSL Certificate soon.
When you’re done, Click OK.
You should now see the Successful Creation message for the domain.
Nest step is to Change the Domain Name of the WordPress installation.
Add your Domain URL in the Pop-up. Click Change.
You should see the success confirmation message. The Domain Name just above the thumbnail image should also have changed to your domain name.
There’s no thumbnail any longer because we’ve changed the domain name and it can’t access the site at the moment.
We’ll now add a SSL Certificate. Click SSL/TLS Certificates under the Security section.
You’ll be taken to this page. Turn on all the Options that you want enabled. I usually turn them all on.
When done, Click the Reissue Certificate button in the top-left.
Click Get It Free.
Enter the Email Address where you want emails regarding your certificate. You’ll usually only get emails about the certificates expiring, but if you turned on the options earlier, the certificates will automatically renew a day or two before expiration.
I also Check the Box for Wildcard Domain because that will make all subdomains also https.
Click Get It Free.
We’ll need to add this TXT DNS record on Vultr’s DNS records page.
Copy the _acme-challenge.YourDomain.com and all those characters for Record to your scratchpad.
Leave this page alone now in the browser tab. Do Not Click the Reload Button.
We haven’t told the Internet that your domain is pointing to this New Server yet, so the Certificate will not work.
If you happened to Click Reload anyways, you’ll see that Pop-up message saying your SSL Certificate couldn’t be issued.
You’ll now need to Click Reissue Certificate again and do the SSL Certificate process over.
Head back to Vultr and the Manage DNS Domain page.
If you closed it earlier, you can get here again by going to https://my.vultr.com -> Products -> DNS -> Select Domain.
Add the missing records that you see here. You should need to add:
- A Record – ns1 and IP address
- A Record – ns2 and IP address
- TXT Record for SSL – _acme-challenge and Many Characters from the step before.
If you added more of your own DNS records before, you’ll see those here too. You may have added TXT records for verifications with platforms like Google Workspace (G Suite), Ahrefs, and others.
Now we’ve done the majority of the work before needing to move the domain over to the New Server, we can finally move the domain.
Step 5 – Transfer Domain Name to New Vultr HF Server
Head over to your Domain Registrar (GoDaddy, NameCheap, etc). I use Porkbun.com, so this is a screenshot of where I change the Nameservers.
Copy down the Nameservers that are currently there, just in case you need to revert back to your old server and old site.
Remove the Nameservers and Add the 2 Nameservers to point the Domain to Vultr’s servers.
- ns1.vultr.com
- ns2.vultr.com
If you’re not sure of where you change your Nameservers on your Registrar’s site, the easiest way to find out how to change your nameservers is to Google it. Google “[your domain registrar] change nameservers.”
Once you’ve made the Nameserver changes, wait a few minutes and you can check your DNS to see if the changes have propagated across the globe.
I usually use dnschecker.org to check if the records have been picked up by servers across the world. There are many other newer DNS checkers, but I found this years ago and like that they check servers in different countries.
I entered the _acme-challenge.yoyao.me URL for the SSL Certificate and changed the Dropdown for DNS Type to TXT. I’m checking to see if the TXT DNS record has been picked up yet.
As you can see in the screenshot, servers in NY and CA haven’t picked up the changes yet. So just continue waiting. There are always warnings about DNS/Nameserver propagations taking up to 48 hours.
I’ve only experienced a propagation taking 24 hours, but that’s because I changed the Nameservers 3 times in 10 minutes. Propagations have usually taken 5-15 minutes with my domain registrars.
Once your DNS Check has all green checkmarks and the block of characters is what you have for your SSL Certificate, the Nameservers have transferred over to Vultr.
Whenever someone goes to YourDomain.com, they’re now accessing your New Vultr HF Server.
Note that the characters in the DNS check are different from above. That’s because I had to Reissue the SSL Certificate to show you the error if you were to Click Reload too soon.
You can now head back to Plesk and Click the Reload button to tell Plesk to check that your SSL Certificate is now valid. Once it’s done checking, you’ll see that your site is secured.
Let’s go back to your New WordPress installation now.
Step 6 – Double-Check Site on New Vultr HF Server
If you closed the window for your New WordPress Site earlier, you can now get to it through YourDomain.com because the Nameservers have propagated over.
When you visit your site, you’ll see the Lock icon to signify the SSL Certificate is active and working.
Let’s reactivate some things now:
1. You can start activating all the disabled plugins from before the migration, like security and caching plugins.
2. Re-enable Search Engine Visibility by Unchecking the Box and Clicking Save Changes.
Step 7 – Enjoy Your VPS Server
That’s pretty much all there is to it. You can now access your site as-if it was on the old server.
If you’ve checked your Site on the New Server and everything looks good, the old server and old site isn’t needed anymore.
If you’re moving from a Shared Host where you pay in advance, there’s no point in deleting the old site unless you want the storage space. It can just sit there as a backup that you can revert back to if you don’t like the VPS server. You can
If you’re moving from another VPS server where you pay by the hour, I’d still wait a few days before deleting the old site and server. Just in case you need to move back to it.
Once you’ve got your Site plugins and settings to the way you want it, start testing out the speeds. Everything should be faster, especially if you’re coming from a Basic Shared Host.
Let me know if you have any questions. Shoot me a message.
Feel free to sign up using my affiliate link to Vultr. You’ll get $100 credit for 30 days, so you’ll have plenty of time and credit to see if a VPS server is for you.
Get more tips and news for Affiliate Website Owners by subscribing to the Niche Surfer newsletter. You’ll also get a Keyword and Content Template, and a Backlink Tracking Template just for signing up.
FAQs – Frequently Asked Questions
How do I Go back to my old server and site?
If haven’t deleted your old server and old site, and you want to move back to them at any point, you just need to go back to your Domain Registrar and change the Nameservers from ns1.vultr.com and ns2.vultr.com to your previous nameservers. That’s all there is to it.