How do you move you site to Vultr HF Cloud, and at the same time, manage to fix your database (clean it up) and remove errors from your site?
You know what? Migration can be a daunting task, especially when you hear of things like:
- Manual migration
- URL fixing
- Database backups
- Broken images
- Zero downtime
And so on…
Damn you boy! Why do things need to be so complicated?
Guess what? Things can get worse if someone says that you need to move your site to the cloud! The cloud is quite enigmatic. People have painted its image in a way that the very moment someone talks of cloud hosting, you start thinking that you need to have developer-level skills to handle it.
Not your fault! You can blame all those tech nerds for this misery.
But trust me, it is not that horrible as you think it might be.
In this article (guide), I am going to describe how you can switch to Vultr HF (High Frequency Compute) cloud hosting from just about any hosting provider.
It doesn’t matter whether you are on a shared hosting or a managed WordPress hosting or a VPS hosting or a dedicated hosting!
This process I am going to describe here is not automated migration. I don’t like it and neither do I suggest going for there.
There are several downsides of automated migration. Here are a few that I can tell:
- Automated migration uses a plugin, and it can work only when you move your database as well.
- A plugin-based migration often returns errors. The primary reasons for such errors include server configuration, complexity of the website, conflict with other plugins, etc.
- Automated migrations often cause errors with the URL structure of your site.
- You may experience broken images on your newly migrated site.
You can eliminate all these if you take the manual route. But it is a laborious process. Though laborious, trust me, it isn’t difficult, and you can bypass the issues caused by automated migration.
Here is what you are going to learn in this tutorial:
- Migrate manually to Vultr HF cloud hosting.
- Put your website of a new and clean database.
- Create a staging site to eliminate error and make changes (if required).
- Roll the changes from staging to production.
- Serve your website from the new server.
For this tutorial, I will be using Cloudways managed cloud hosting platform to deploy a server with Vultr.
Here are the reasons why I will use Cloudways:
- You don’t have to deal with anything technical. Server updates and security patches, server-side caching, automatic SSL renewal – Cloudways will take care of all those things. So, the developer angle of using a cloud hosting will go away. You will be using it as if you are using a shared hosting environment.
- You can create one-click staging environment to make changes to your site without impacting the original site. This will keep the database clean, and ensure that your production site doesn’t run into a problem.
- You can deploy a server optimized by Cloudways for speed. You can tweak settings whenever you want.
- You will get access to 24×7 support that you won’t get if you go directly to Vultr.
Why will I use Vultr High Frequency Compute?
By now you must be aware of how Google prefers websites that are fast. If you ever ran your website through Google PageSpeed Insights, you may have noticed a warning like this:
There are many elements that you need to work on to reduce the server response time (I have worked on a full guide that you can find here), and one of them is using a fast server.
You will hear people saying that you should opt for SSD-based servers. Even web hosting companies will boldly advertise their SSD storage.
What people will usually not tell you that we now have a new generation of SSD storage that is much faster than the usual SSD you will find.
This new breed is known as NVMe SSD.
You can find NVMe with DigitalOcean, but DigitalOcean reserves that for high-end dedicated cloud, and it costs a fortune. Vultr gives you the opportunity to use NVMe Storage even for your shared cloud.
NVMe SSD storage reduces latency, has greater I/O (input/output) per second, and hence, helps to improve your website speed. The web server can respond quickly to user queries simply because it sits on a NVMe SSD storage.
Of course, Vultr HF compute is pricier. If you go for Vultr’s normal SSD cloud instances, you will pay $5 a month. If you opt for NVMe or HF Compute, you must pay $6 a month (minimum).
The difference isn’t big!
However, that’s the price you pay when you work directly with Vultr. In that case, the onus of maintaining your server falls on you (developers will like this). For noobs like you and me, that might be a problem. That’s where Cloudways comes in.
They will offer managed hosting with Vultr so that you can focus on your website without bothering about the server. No doubt, managed hosting attracts an even greater price because of the extra server management services you get.
Also, working directly with Vultr will not open doors to great support. You can get support via email and support forums, but that will be slow, and it will be more of a do-it-yourself thing.
With Cloudways, you will have access to live chat support and other channels of support that will help you sail through the technical issues you might face.
With Cloudways, you need to pay $13 for the same server that will cost you $6 if you work directly with Vultr. That’s $7 extra per month, but it well-justified, and it also includes the price for backups. Working directly with Vultr will mean that you have to pay extra (beyond the $6 a month) for backups.
Okay, now that my weird and long narration justifying the move to Vultr via Cloudways has come to an end, it is time to walk you through the process.
Are you ready? Raise your hands if you are!
Moving Your Site to Vultr HF Cloud
I will break down the entire process into several segments. Those segments are:
- Deploy a Vultr instance with Cloudways and install WordPress.
- Export your WordPress posts and images from the current server, and import your WordPress posts and images to the new Vultr server.
- Create a staging site from the newly imported site on Cloudways. And set the newly imported production site to no-index.
- Export your theme settings from the old server and import to the new Vultr staging environment. If export option is not available, install and configure the theme manually.
- Export your SEO settings from the old server and import it to the new staging environment.
- Install the plugins you use on your old server on the new staging environment one-by-one. Make all changes on the staging environment.
- Push your staging site to production.
- Point the domain to the new Vultr server.
So, let’s go through the segments one at a time.
Segment 1 – Server Deployment
Create a Cloudways account. You don’t have to pay anything now. Just create and account and verify it following the steps.
Once you have created an account and logged in, click on the big green Launch button you see.
On the next step, select the application from the dropdown field you see on the next page.
There will be multiple options available. Select the option which says Version 5.6. That’s the option optimized by Cloudways. Simply put, selecting that option will install a preconfigured caching plugin called Breeze and a bot protection plugin along with a few other default plugins.
You may also opt for a non-optimized WordPress installation. In case you are moving your WooCommerce-powered online store, you need to select the WooCommerce option.
Once you select the application, you will have to provide a name for your application, a name for your server, and select your project. The last option of selecting your project will give you no other option for the time being except the name ‘Your Project.’
At this stage, the option for choosing from different cloud hosting providers will become active. You will see the list of all providers available. You can select from the following:
- Amazon AWS
- Google Cloud Platform
Since we will be going for Vultr, select that option. Click on Vultr and you will see the following:
You will notice that the Standard SSD server is selected by default (highlighted using a red box in the image above). You need to select High Frequency from the dropdown.
Notice that the price changes the moment you select the High Frequency Compute option. You will see that the minimum price for a server with 1 GB RAM, 1 CPU core, and 32 GB storage plus 1 TB bandwidth is $13.
You can change the server configuration using the slider you see.
If you have a small blog with up to 40K unique monthly visitors, the basic server with 1 GB RAM is more than what you will need for now. No need to settle for a higher plan. That will be wastage of money.
Do not forget to select the server location. There are multiple locations to select from. Make sure you are selecting a location that is closest to location of most of the traffic you receive.
Once you finish selecting the server, click on the Launch Now button, and Cloudways will configure your server.
Once the configuration is complete, you can see this:
You are seeing my account with Cloudways. I have deployed two servers for two different websites. If you have deployed only one server, you will se one server on the list.
You can access the WordPress application by clicking on the Applications tab on the top or by flipping the button between SERVERS and APPLICATIONS.
Once you move on the applications tab, you will see something like this:
Unless you create a staging environment, you will not see the staging application as you see in the image above. The staging one has a blue highlight in the image above.
From this screen what you see is the application installed on your server. Click on the application name and you will see a new screen in which you will see the application access credentials. This is what you will see:
Note that when you click on the application, you will get the access details for your WordPress installation.
The URL you will find is the temporary URL. That is what we want now. DO NOT POINT YOUR DOMAIN TO THE SERVER AT THIS POINT. Pointing your domain to this server is the last step. So, conveniently skip that.
You will also find the applications admin access (access to wp-admin.php page where you can login).
Simply log into your application and head over to the “tools” menu:
Then click on “Import.” You will see various tools available. You need to install the last option called “WordPress.” It is the WordPress importer or exporter tool. Essentially, it is a plugin that will be installed on your WordPress installation.
At this point, the WordPress installation is sitting on a fresh database.
Once you have installed the tool, go back to your Cloudways account and click on the “Server” tab to pull up the list of your servers. Then click on the sever to pull up the server management segment. This is what you will see:
On the left menu, locate the option which says Settings & Packages and click on it to pull up this window:
On the Settings & Packages tab, the BASIC tab will open by default. You will see the upload size here. Change it to 1024 MB or more for the time being. If the site you are trying to move is a large one with over a thousand posts, you will need at least 1 GB upload size. For a very small site, the upload size set by default should be enough. Still, be safe and change it. You can later come back and change it back to the default value.
This marks the completion of Segment 1. It is time to move on to Segment 2. Let’s go!
Segment 2 – Import Your Posts and Images from Existing Site
Login to your existing WordPress installation and head over to Dashboard >> Tools >> Import and install the WordPress importer/exporter plugin I explained above.
Now go to Dashboard >> Tools >> Export and you will see this:
This is where you select what you want to export. You can select “All content,” or you can individually select and download them.
The option called Elements will not be present on your site unless you are using the GeneratePress theme and using the Elements module. So, don’t panic if you see that option missing.
Select all content and download the Export File.
What you will download will include the posts, pages, comments, custom fields, terms, navigation menu, and custom posts. It will also include the media files.
Once you download the file, go back to your newly installed WordPress site (on Cloudways) Dashboard and then click on Tools >> Import >> Run Importer. This is what you will see:
Once you click on the Run Importer option, you will notice a file uploader where you will have to upload the file you downloaded from your actual site.
This is what you will see:
You will notice the maximum upload size as 1 GB or whatever you set earlier. Click on the Choose File button and select the file you downloaded from your production site.
Once you select the file, the ‘Upload file and import’ button becomes active. Click on it and wait until the import completes.
You may accidentally see this during uploading the file you downloaded:
If you see this page, don’t panic. You will see this because the file you are trying to upload is larger than the upload limit you have set. Go back to your Cloudways account and change the upload limit to accommodate the file size you downloaded.
Once you change the upload limit, retry the upload. The process should complete without any error.
Now go to your new WordPress installations Dashboard >> Posts >> All Posts, and see whether all posts have come to the new installation or not. You should see all the posts.
Don’t forget to check the media library as well (Dashboard >> Media >> Library).
Everything should import without error.
This marks the end of Segment 2. Let’s move on to Segment 3, shall we?
Segment 3 – Create Staging and Set No-Index
Once you have imported every post, page, media file, comment, and menu, your entire website content is now sitting on a new WordPress installation with a fresh database. The database will be a different one from the one your production site is currently using.
However, this new WordPress site with a temporary URL is still indexable by Google and other search engines. You want to prevent that from happening. If Google indexes the temporary site at this stage, there will be duplicate content issue.
Though it shouldn’t make any difference, it is still wise to set the new installation to no-index.
One easy way to set no-index is to install any SEO plugin and set no-index from there. I won’t suggest doing that at this moment. You want the database to be clean for now.
The other thing you can do is to prevent anyone from accessing the website directly from the server using Cloudways dashboard.
The problem with is server-level deactivation is that the website becomes inaccessible even to you. But you will need access to your site to work on it. This is where the concept of staging sites comes in.
Here are the benefits of creating a staging site at this point:
- The staging site will be inaccessible to everyone, including the search engines, but it will remain accessible to you through a username and password. Anyone else trying to access the staging site needs to know the username and password.
- Whatever you do on the staging site is not going to impact the new WordPress installation.
- You can close access to the new WordPress installation to everyone and yet, keep access to the staging site.
- Once you are happy with all the changes you have made on the staging site, you can just push those changes to the new WordPress installation with a single click.
So, here is what you need to do:
Step 1: Create a staging site.
Step 2: Revoke access to the new WordPress installation.
Let’s do both.
Step 1: Creating the staging environment
Go to your Cloudways dashboard and select the Applications tab. From there click the vertical ellipsis menu icon you see next to the application name, and then click on Clone App/Create Staging. This is what you will see:
Once you click on the Clone App / Create Staging menu, you will notice a popup where you need to select the server where you want the staging site to sit.
Of course, you need to select the server on which you want the final website to sit. This means that you need to select the server where you installed the new WordPress site and imported all the content from your existing production site.
Once you select the server, click on the check box of ‘Create as Staging.’ Then click on the Continue button. This will create a complete duplicate for your actual WordPress installation.
Once Cloudways creates the staging, you will notice this when you click on the Applications tab:
This staging site is a complete duplicate of your WordPress installation. The staging has the following features:
- It has a different URL from the actual WordPress installation.
- The login details for accessing the WordPress admin area are the same as that of the original WordPress installation.
- For accessing the staging site’s frontend, you will have a different set of username and password.
Click on the staging application and you will notice the access details:
Note: As I said earlier you need to access the WordPress admin segment of the staging site using the same details for the actual WordPress installation.
The Password Protection you see in the image above is for protecting the frontend of your staging site. You should leave this enabled. Do not disable it. The reason why the password protection is enabled is that the password prevents people and bots (search engines and other crawlers) from accessing the staging site.
Now, you have created the staging site successfully. You can login to see the exact same posts and images you imported earlier.
Step 2: No-index your site
Okay, now that you have created the staging site, which is essentially a copy of your fresh WordPress installation, it is time that you prevent the actual WordPress installation from being indexed.
To do this, head over to your Applications list in Cloudways dashboard and click on the actual application (not the staging site).
On the application management window, find the menu which reads Application Settings. This is what I mean:
On the Application Settings page, turn off Application Access you see on the right side of the screen. Simply toggle the switch to disable it. It will be enabled by default.
Cloudways will ask for a confirmation through a popup. Agree to it and proceed. Once the access the disabled, you can click on the temporary URL from the Access Details tab. You will notice this notice when you try to access the URL:
Now you can rest assured that no search engine can access your WordPress installation. Your staging site remains inaccessible to everyone else without the password.
It is time you work on your staging site. This brings us to Segment 4. Let’s go through it!
Segment 4 – Copy theme settings from your live or production site
If you are using a premium theme, there is a possibility of exporting the theme settings. Unfortunately, most themes will not have this. The theme I use is GeneratePress which gives this function.
Export theme settings:
Login to your live or production site that is currently sitting on some other server. If the theme you are using doesn’t have the settings export options, you can install a plugin named Customizer Export/Import.
Once you install the plugin, go to WordPress Dashboard >> Appearance >> Customize. This will take you to the live customizer segment where you can export the settings of the theme that you are currently using on your website.
If you are using GeneratePress, you can export the settings by going to Dashboard >> Appearance >> GeneratePress and then click on the Export button.
If you are using any other theme that has an export/import option, use that.
Import theme settings:
Once you have exported the theme settings, head over to your staging site and log in using the credentials of the actual WordPress installation on Vultr (Cloudways).
Once you login, install the theme (and the plugin if that is what you used) and then import the settings that you download from your production site.
Once the import is complete, you should see the same site structure as your production site. Remember to remove the plugin (if you have used it) from the staging site. That plugin isn’t really a very healthy plugin and you should not leave it installed on your site.
That’s it! You have replicated the design of your site without breaking a sweat. This opens the path for the next segment, which is segment 5. Let’s go through it.
Segment 5 – Copy SEO settings
This is very important! If you have hundreds of articles on your live or production site that you imported to the new server, you will definitely not want to manually perform SEO for all of them. That will be ridiculously laborious (but definitely a good idea if you want to redo all the SEO).
Assuming that you want to just copy the SEO settings that include keyphrase, SEO meta title and meta description, and other settings of your SEO plugin, there is always a possible way out.
Luckily, every SEO plugin offers the option of importing and exporting settings include all the meta data.
If you are using Yoast SEO:
Export the settings:
Go to your production website’s Dashboard >> SEO >> Tools. This is what I mean:
Clicking on the Tools option will take you to Yoast SEO’s tools segment where you can see the Import and Export option right on the top. Click on it.
Clicking on the Import and Export option will take you to a new page with three tabs. Click on the Export settings tab and then on Export your Yoast SEO settings button.
Clicking on the button will give you some code that you need to copy. This is what you will see:
Copy the code and save it on a text document (notepad or something similar).
Import Yoast settings:
Now go back to your logged-in staging site and install Yoast SEO plugin from the plugin repository.
Then from Dashboard >> SEO >> Tools >> Import and Export, go to the Import settings tab. This is what you will see:
Copy the code you pasted in the text file and paste it in the blank area you see. Click on the Import settings button. This will import your Yoast settings including the metadata from your production site to your staging site.
If you are using RankMath
Export RankMath settings:
If you are using RankMath for your SEO on your production site, go to your WordPress dashboard and from there click on RankMath >> Dashboard.
Once you reach the dashboard of RankMath, you will see the Import & Export tab. It is the last tab.
Click on that and you will see another two tabs – one for import and the other for export. Click on Export settings tab and select everything that you want to export.
Once you select everything you want to export, click on the Export button. This will export the settings and download a file to your local disk.
Import RankMath settings:
Login to your staging site and install RankMath from the plugin directory. Once you install it, go to Dashboard >> RankMath >> Dashboard >> Import & Export >> Import settings.
Choose the RankMath settings export file you downloaded from your production site and then hit the Import button and wait for the import to complete.
This will ensure that all the SEO settings from the production site is pulled on to your staging site. The settings will include not only the RankMath plugin configuration, but also the post metadata for all your posts.
That’s it! You have successfully completed Segment 5. At this stage, your staging site’s database has information only about your posts, comments, tags, categories, etc., your theme and your SEO plugin. Nothing more this there.
If you are using other plugins like contact form, subscription form, something else, it is time to install them on the staging site.
Segment 6 – Install the plugins on staging site.
At this stage, you need to install the necessary plugins one-by-one. Before you proceed, it is important that you cross-check the performance of the plugin and how it impacts your website’s speed.
To do that, open your Google Chrome browser and install an extension called WP Hive. Once you install and activate the extension, go to WordPress plugins repository at https://wordpress.org/plugins/.
Search for any plugin and you will see a separate segment by WP Hive. Here is a quick example:
Definitely, you will not want a plugin that can lead to massive memory usage or impact your website’s page speed.
So, check every plugin that you installed on your production site. If you see a plugin with errors (red cross), discard that and find a better alternative that serves the same purpose.
Install only the necessary plugins. Installing dozens of plugins never makes any sense. They will collectively slowdown your website. Why do you even want to harm your website?
Segment 6.5 – Make design or functional changes (if necessary) on your staging site
I have deliberately put Segment 6.5 here to give you the scope of editing your WordPress site’s design or making some functional changes.
If you don’t want to make any changes, that’s total fine! You can skip this. I, however, wanted to make changes. Here are two screenshots of my staging site and the production site:
Staging site design
Production site design
If you notice carefully, not only did I change the design on the staging site, I also added new menu items and of course, added new functions.
As far as the design is concerned, I used the same them, but only played around with some CSS codes and theme features to get the new look.
It is totally up to you whether you want to make design changes or not. If you are not making those changes, I will still suggest that you go through every post and page and if you see problems like broken links, heavy images, broken shortcodes, etc., fix them!
Assuming that you worked on the design function changes or you simply skipped it entirely, it is time to move on to Segment 7. Let’s go through it.
Segment 7 – Push staging site to production (new WordPress installation on Vultr)
Now that you have your entire site on a new server and a new database, it is time to push it out of staging and roll it on to your actual WordPress installation.
To do that, head over to the Applications list on your Cloudways dashboard and click on the staging site to bring up the staging management segment.
You will notice a menu called Staging Management. Click on that and pull up the options. This is what you will see:
Click on the PUSH button. Clicking on that button will show a popup where you have to select whatever you want to push to the live environment (in this case, the WordPress installation on your Vultr server).
Select everything including Web Application Files, Database (Full DB). If you want to eliminate certain database tables, you can choose Selected Tables.
If you choose the option ‘Selected Table,’ the DB tables will show up in the popup.
If you have installed multiple plugins to test on your WordPress staging and finally settled for a few, it is wise to remove the extra tables that those unused plugins left behind in your database. In that case, you should choose ‘Selected Table,’ and deselect the tables that you don’t want to push.
For instance, if you decided to switch to RankMath from Yoast, you should remove Yoast tables from the database.
Once you have selected the necessary items, select the option for backup and then click on the Proceed button.
This will push your website out of staging into the actual WordPress installation.
Remember that over the years when you keep on adding and removing plugins and themes, DB table entries are created. Removing the plugins or themes often retain those tables and keep increasing the database size.
So, it is wise to remove all the unused tables. Since you are installing your site on a fresh database, it is pointless to have unnecessary tables that only add dead weight.
Bottom line? Remove unnecessary tables!
This brings us to the last segment, which is Segment 8.
Segment 8 – Point domain to new Vultr server
Now that you have moved your site to the new Vultr High Frequency server, it is time you point your domain name to that server and serve your website from there.
Before you do that, make your site accessible by going to Application list and click on the actual application. In the application management segment, click on the Application Settings menu and then enable Application Access by flipping the switch.
Once you have enabled application access and made it indexable and accessible, go to the Domain Management segment of the Application Management area and add your domain name:
Make sure that you are adding only the domain name without http or https. If your domain name is example.com, add example.com instead of http://example.com or https://example.com.
Once you have added the domain, go to the server list from the top menu and copy the server IP address.
Once you have copied the IP address, go to your domain registrar’s domain management segment, and add the IP address in the A record.
Now wait for domain propagation to complete. It can take up to 72 hours.
This will automatically replace the temporary URL across your site with the actual domain name and start serving your website from the new Vultr server.
That’s it! You have moved your website from your existing server to Vultr HF Cloud server.
Things to Do After Moving
Here is a quick checklist of things you should do after moving your site to Vultr HF Cloud:
- Enable HTTPS through Cloudways dashboard (you can find the option in Application Management area).
- Check all URLs of your website to ensure that all URLs are using the domain name and that there are no errors.
- Enable CDN. Use CloudFlare, or you can use Cloudways CDN powered by StackPath CDN. If you use Cloudways CDN, there will be easy integration of the same.
- Delete the staging site, because leaving the staging site will eat up space on server.
- Go to your old hosting company, and close that account so that you are not billed for the server you are no longer using.
Moving your site to Vultr HF Cloud via Cloudways is easy. The process above will ensure that you are eliminating the old database and that the new database is smaller in size with absolutely no unnecessary tables.
With a smaller and leaner database, your site will perform better. Also, Vultr’s High Frequency Compute server will make your website faster.
However, do not forget that you will need a caching plugin and a CDN to improve your website’s speed even more.
That’s it! That’s how you move your site to Vultr HF Cloud.