You decided to move your website to a better server? Congratulations, you are making a good move. Investing in a better hosting is one of the best investments you can do for your website.
Sadly, the popular way of migrating WordPress websites comes with a downtime.
Yes, if you don’t take care about it prior to approaching for the move, you are very likely experience some downtime.
I am going to show you the way to transfer your WordPress sites, which does not just assure you Zero downtime but is also the easiest method.
You don’t need an FTP, or don’t have to fiddle with database or deal with wp-config.php file or what not. We will avoid all that stuff, and do it very smoothly step by step. Let’s dive in.
- Problem with the regular method of migration
- 6 steps to Migrate WordPress site to a new hosting with no downtime
- Website Migration Best Practices
- Site Migration checklist
Problem with the regular method of migration
The common procedure website migration involves –
- Backing up of your website from the old server/host
- Installing WordPress in the new server, but you cannot just access the site or dashboard yet
- Updating the nameservers (DNS) in domain registrar account, the updation will take 1-24 hours after you update it
- Once the update takes place then you can access the site and WordPress dashboard in new server and upload the backup, set other necessary setting to make the site ready in new host
This is Bad. Because –
You are able set it up completely only after the nameservers updation takes place, which takes time (generally 1hour to 24 hours) and you don’t know when exactly it is going to happen. Till then you cannot access your website frontend and the WordPress dashboard in the new server or hosting.
There is an option to upload the backup files and database manually, but the process is not so easy. You need take backup and upload the files and database (SQL) manually, connecting database and users to WordPress files, fiddle with wp-config.php file and the MySQL.
And even you have no problem doing so, you must access WordPress dashboard in new host at least once – to “save permalink” settings. It is very important, if you forget it your sites pages and posts may not be accessible.
So no matter what you do there will be some downtime even at the best scenario.
In the worst case, there is a small mistake and you don’t know about it until you are able to access the website and dashboard in your new hosting or server. Or thing doesn’t go well, your site doesn’t work and you take 2-3 days to fix it.
Your audience will be served with an empty website or nothing at all. Which may even hurt your SEO if Google crawlers crawls the site at this time.
But here I am going share How to do a site migration, in such a way that you can first make a backup and Upload it to the new server – Access the website frontend and the WordPress dashboard – set the things up (like save permalink) and make sure everything works fine. And once you are confident then only update the nameservers with your domain registrar.
You can relax cause whenever the nameservers takes place, your site will be completely ready (maybe except few things like contact form).
6 steps to Migrate WordPress site to a new hosting with no downtime
Step 1: Take back of the website in your Old host
Install a WordPress Backup/Migration plugin of your choice.
I am going to use All in one WP migration, because I found this to be the easiest. Most of the other plugins comes up with many features for website backup which are unnecessary for this purpose. All in one migration solely focuses on site migration and makes the job a lot easier.
You may use other plugins like BackupBuddy, Duplicator, ValtPress etc or even can take manual backup.
For free All in one allows you to Migrate site of 512 MB size, which is enough for small to medium sized websites, especially because All in one weeds out crap automatically, making the size much small. To give you an idea if you take Backup of blank WordPress site, which is about 40 MB, the All in One Backup would take like 3-5MB including the database.
Also, if you follow along, we will clean up your WordPress before taking the backup for migration.
Take backup of the site. Just for sake of having an extra backup, but mostly we would not use this one. Better if you take backup from cPanel.
Clean up your site as much as possible.
Delete inactive plugins, delete post and pages in trash and unwanted post drafts. Install WP Sweep to clean the database, it will delete pages revision which takes up huge amount of space if you have made serious amount of revisions. In one of the sites I was able to achieve 30% reduced size just by one click of button on WP Sweep. Clear cache if you are using any cache plugin like WP Rocket, WP Super Cache etc.
Now create the backup again and download. I hope this backup was a little smaller than the previous one.
To take a backup with All in one WP Migration –
Find All in one migration menu. It will be near the bottom of the Nav menu on the right of WordPress Dashboard > Select Export > Click “Export to” and select File from the drop down > It will prepare a backup which may take several minutes depending on the size of your site, download it once it is ready.
Step 2. Install WordPress to the new server or host
First you need to add the domain to the cPanel if it is already not your primary domain then Install WordPress with one click.
Login to the cPanel of the new host.
(Skip this below paragraph if you already have the domain as primary domain while purchasing this hosting)
Search for Domain section, click on “Addon Domain” > Type the domain name and folder > Click create. It should appear in the domain list below.
Search for WordPress. It might be available under Scripts or Application Section, sometimes even inside Softaculous. Different hosting provider has it in different places, in case you are not able to see it, make a search for your hosting.
Click on Install > Select the domain name, you want to select http or Https whichever you had before > Make sure empty the folder
Give the username password and domain. You can give anything now, because the backup will keep the usernames and passwords you had before. But just remember it till the migration is complete.
Same for the all other settings, these will be reset by the backup to the settings you had before. You want to send the Installation information by mail though. Hit “Install”.
Now WordPress is installed in your new server, but you still cannot access the website or WordPress dashboard. Follow the next step for that.
Step 3. Set up the Access to site without changing nameservers
This step is the key to achieve zero downtime.
Go to this website https://hosts.cx/ – provide the domain name and the your new server’s IP address.
IP can be found in the Server Information Section in cPanel.
The site will provide temporary URL, something like – http://dk525.hosts.cx/. You can access your website frontend by going to this URL, and the WordPress Dashboard here: http://dk525.hosts.cx/wp-admin/.
You can login to this dashboard and do whatever the hack you do in WordPress dashboard. In our case we need to upload the backup.
Step 4. Upload the backup to new hosting
With the newly generated URL access the WordPress Dashboard, install the same backup plugin which you have used to create the backup in the old server.
In our case it is All-in-One WP Migration, so install and activate the plugin.
Now if you check All-in-One WP Migration > Import you will see it shows max limit something 20 MB, or 8 MB or 2 MB – any obscure number, which is never more than 50 MB.
Don’t worry, just download the All-in-One WP Migration Extension plugin from this URL: https://import.wp-migration.com/. Install and Activate it will make the limit to 512 MB. If your website is bigger than that, then you need to purchase the paid plan.
Is it showing, “The country is not supported at the moment?” Don’t worry, use a simple VPN chrome extension like Tunnelbear, it will take you to any country in minute. Choose first world country and you should not see any issue.
You should now see 512 MB in Import page.
Drag and drop the file from your download folder into the box provided and it will start getting uploaded.
Once upload is complete, it will ask you if you want to the file. The backup will get decrypted and imported.
You should be able to access everything in the dashboard now. All the pages, posts, plugin media WordPress setting you had, all will available now.
Step 5. Save the permalink and test if everything else works fine
This is really a small task, takes 5 sec, but it is so important that I dedicated an entire step to this.
Go to Settings > Permalinks > Save Permalink
If you don’t do it after migration your websites pages and posts may not be accessible to people and search engines.
Also consider checking all the pages and posts if they are accessible, if images are all loading properly. Just check some of the important page to know if all in ok.
Your contact form may not work now, it will require the domain. Don’t worry.
Step 6. Update the Nameservers
Once you are confident that everything has imported nicely, now is the time to update the Nameservers (DNS).
Check you’re the emails you have received after purchasing the new hosting. One of which will contain two Namesevers. Or ask the hosting support team for it.
Then login to account with the domain registrar and check for where the domain is listed. Different registrars have different. So, if you are not able to find it yourself connect with the domain registrar support to help you.
I have my domain with Godaddy. So here’s how you can do it with GoDaddy.
Login to GoDaddy account, in product click on domains > find the domain in the list > click Nameservers. Update the nameserver with the 2 provided by the new host > Update.
Now seatback and relax as it may take 1 hour to 24 hours to be updated.
You can check if the nameserver updation has taken place by dropping the URL in this website : it will tell the IP where the site is hosted. If you the IP address of the new host, that means the updation is complete and you can delete the files and database from the old host.
Now set up the contact form SMTP set up. And enjoy.
Website Migration Best Practices
- Always start the migration process at least 7 days prior to the date when the old hosting expires. If any difficulty appears, you have some time of fix that.
- Make sure to save the permalink settings once the migration is complete. Also, manually check if the pages, blogposts and other post types are all accessible to the audience.
- Always take back up of your website using 2-3 methods, in case one doesn’t work, you have the other ways to do it. Preferably this methods are lot different, for example you can take using plugin, but don’t take backup using 2-3 plugins instead take manual back up of the files and database, and take backup tool available in cPanel.
- Take screenshot of the DNS of the old server. You mostly won’t need it, but make sure that you can go back to as it was if something happens. It is very but I had faced an issue once, thankfully I was capturing my screen while doing the work
Site Migration checklist
- Clean up unnecessary posts, pages, plugins and Database entries in the new old host
- Install a backup plugin (All-in-One WP Migration) and take the backup. Or manually take the backup of website files, database, wp-config.php file separately
- Add your website’s domain as an addon domain in the new host’s cPanel. Ignore this step if it is your primary domain while purchasing the new hosting package
- In new host, Install WordPress on the domain you just added
- Go to https://hosts.cx/, enter the domain name and your new host’s IP. It will provide a temporary URL to access you website and WordPress dashboard
- Login to the WordPress dashboard using the temporary URL install the same backup plugin. If you are using All-in-One WP Migration plugin you need to also install an extension available here: https://import.wp-migration.com/
- Upload the backup file that you have downloaded from the old host. Import the backup
- Login to your WordPress dashboard again as you may have logged out, then “save permalink” setting
- Check the website if everything works fine (except form, or anything that requires sending email from your server)
- Once everything all right change the nameservers in your domain registrar account. It may take few ours, you check this website if your IP has updated
- Once the IP is updated the migration process is complete, you will be served the website in you new server when you visit your domain
- Fix the form and SMTP setting, SSL settings in the cPanel of new host if you are using one
- You may delete the files and dashboard from the old host. Uninstalling the WordPress will do.