Are you wondering how to switch your WordPress site from one web host to another without downtime? Just like moving to a new house in the physical world, migrating to a new “home” (web host) on the internet comes with a unique set of challenges. One of the most prevalent concerns is whether your site will go down during the move.
In this step-by-step guide, we’ll show you how to move your WordPress site to a new host or server without downtime.
Important: Before you begin, we want to remind you that some web hosting providers offer a free migration service. If you’re not sure whether your hosting provider offers free migration, then ask them first before doing it yourself. If they don’t offer it, then you can go ahead with the tutorial.
Step 1: Choose a New Web Host
Changing your web host is a big decision in itself, so you’ll need to make sure that you’ve put enough effort to optimize your site on your current host before moving to a new one. If it still fails to deliver on speed, security, performance, etc. even after optimizing, then you do indeed need to switch your web hosting.
When choosing a new web host, be aware of the specific features your site needs in its current position and in the future, so you don’t need to change hosts again down the line.
When choosing a web host, here’s what we recommend:
Perfect for those who’re just starting out with a new website and need an affordable hosting solution. Bluehost is the best shared hosting provider that we recommend for shared hosting. They’re officially recommended by WordPress.org. IsItWP users get 60% discount along with a free domain name while purchasing a new hosting account.
It’s the best solution for users who want to lease the entire server for sole use and need full control over the server. We recommend InMotion Hosting for dedicated servers. They let you choose the ideal data center for your site and provide free launch assist for 2 hours.
Managed WordPress hosting: The best choice for WordPress websites that attract high traffic volume. With managed WordPress hosting, you can operate your site in a server that’s uniquely optimized for the security configuration of WordPress. We recommend WPEngine for managed WordPress hosting.
After you buy a hosting plan, do not install WordPress as you usually do when creating a new site. Just keep it empty and let’s move to step 2.
Step 2: Create Your Site Backup for Migration Using Duplicator
Go to the admin area of the site you want to move, and install the Duplicator plugin. It’s one of the best WordPress plugins for migrations and backups. If you don’t know how to install a plugin, please refer to our step-by-step guide on installing a WordPress plugin.
Once you’ve installed the Duplicator plugin, go to Duplicator » Packages in your WordPress dashboard.
Then, click the Create New button in the right-hand corner of the page.
Next, you will see a page like the one pictured below. Click the Next button to start the package building process.
From there, it’ll take you to the second step in the package building process. Make sure that your scan is complete and all the results are Good. Then, click the Build button.
Wait until the process is complete. This may take a while, depending on how large your site is.
Once the process is complete, you’ll see download options for Installer, Archive, and One-Click Download. You’ll need to click on One-Click Download because you need both Installer and Archive files.
The Archive file is a copy of your site, and the Installer file will help you automatically download the installation process.
Step 3: Import Your WordPress Site to Your New Host
Next, you’ll have to upload the downloaded files (Installer and Archive) to your new web host. In order to do so, you can use an FTP client to connect to your new web host. If you’re new to this, you can follow the instructions given in this step-by-step guide to upload files via FTP to WordPress.
Using your FTP client, upload both the Installer and Archive files to the root directory (usually /username/public_html/ folder) of your website.
But before uploading, you’ll need to ensure that the folder is completely empty. Some hosting companies automatically install WordPress when you sign up. You need to delete it if it’s already installed by your host.
Step 4: Change the Host’s File to Prevent Downtime
You’ve already uploaded both the installer.php file and archive.zip file to your new web host in step 3, so try to open the installer.php file in your browser.
You can access the file using a URL like this:
But, when you try to access the file, you will get a 404 error page because your domain is still pointing to the old host.
This implies that you need to change your domain name servers and point to your new host, but we don’t suggest you do so. If you do, it’ll show your users a broken website as you proceed migration.
That’s why we suggest you an alternative method so that users can access your site fully even during migration.
With this technique, you’ll be able to access your new site using your new domain temporarily on your computer. It’s done with a host’s file on your computer which you can use to map domain names to specific IP addresses.
Now, you’ll add an entry for your domain name in the host’s file so that it points to your new host, but only using your computer. Therefore, you can access your files on your new web host while your users will still be accessing your site from the old host. Hence, there’s zero downtime.
First, you’ll need to find out the IP address of your new web hosting server. To find this, open your cPanel dashboard and navigate to Server Information. There, you can see it as Shared IP Address.
Keep this page open as you’ll need to copy the IP address in the later step.
If you are using Windows, go to Programs » All Programs » Accessories and right click on Notepad and select Run as Administrator. Then, a Windows UAC prompt will appear with two options Yes and No, click on Yes to launch Notepad with Administrator privileges.
Now on the Notepad screen, go to File » Open and then go to
C:\Windows\System32\drivers\etc. Select the hosts file and open it.
If you are using Mac, you need to open the Terminal app and enter this command to edit hosts file:
sudo nano /private/etc/hosts
Then, both Windows and Mac users need to enter the IP address you copied and your domain name at the bottom of the hosts file like this:
Then, save your changes. Now you can now access your site files on the new host using your domain name on your computer.
Note: You’ll need to undo the changes you made to the hosts file after you complete the site migration in step 6.
Step 5: Create MySQL Database on Your New Web Host
Now, you’re ready to run the installer.php file on your new host but you need to make sure a MySQL database is created before that.
In order to create a MySQL database, go to your cPanel’s dashboard and navigate to Databases section. Then, you’ll need to click on MySQL Databases section.
Now, you’ll see a field to create a new database. Type in your database name and click Create Database button.
After you have created a database, scroll down the page to MySQL Users section. And, provide a username and password for your new user and then click the Create User button.
Please take a note of your database username and password you just created because you’ll need it on later step.
Now, you have to add your user to the database. In order to do this, scroll down to the Add User To Database section and choose the MySQL database and user you just created. Then, click the Add button.
Now, your database is all set for use in your WordPress site.
Step 6: Start the Duplicator Migration Process
Finally, you’re all set to run the Installer file.
So, go to your browser’s address bar and enter the URL as shown below to run the installer.php.
The installer will run a few tests and will show Pass next to archive and validation tests as in the screenshot above.
Check the terms and conditions box and then click the next button.
From there, you’ll see Duplicator’s Step 2 open. You’ll need to enter your MySQL host, database name, username, and password. Insert localhost in the host field and fill in the database details as you used in step 5.
Now, you can click the Next button to continue. But, we recommend you to first click the Test Database button to ensure that there are no database connection errors.
Then, Duplicator will now import your WordPress database from the archive.zip file into your new host.
Next, Duplicator’s step 3 will ask you to update site URL or path, but you don’t need to change anything here as you’re not actually changing it. So, click the Next button to continue.
Then, Duplicator will run the final steps and show the login button in its 4th and final step.
Now, you’ve moved your WordPress site to a new web host completely. So, you can simply log in and check if everything is okay.
Step 7: Update Your Domain
We’ve come to the final step of switching your WordPress site from one web host to a new one.
In the previous step, you added a copy of all your site files to your new host but your domain still points to your old host, so you’ll need to update your domain as well.
In order to do so, you’ll need to switch your DNS nameservers. If your domain was registered with your hosting company, then it’s best to move the domain to the new web host. If it was registered in a domain registrar company like NameCheap, GoDaddy etc., then you’ll need to update your domain nameservers.
Domain nameservers are usually a couple of URLs, like the ones below, that you’ll get from your new web host.
The steps to changing domain nameservers differ from one domain provider to another; however, the basic concept is the same. So, we’ll show you how to change DNS nameservers with GoDaddy in this tutorial.
First, login to your GoDaddy account and navigate to Domains. Then, click on the Manage button next to the domain name you want to update.
Then, go to Additional Settings and click on Manage DNS.
Now, you’ll need to scroll down to the Nameservers section and click on the Change button.
Next, click the dowpdown and switch the nameserver type from Defaut to Custom. Then, fill in your new nameservers provided by your new web host, and click the Save button.
Now you’ve successfully updated your domain nameservers. Unfortunately, it may take 4 to 48 hours to execute these DNS changes.
In the meantime, you’ll now have the same content on both your old host and new host so users will see no difference and the site migration will be seamless without any downtime.
We hope this guide helped you switch your WordPress site from one web host to another with zero downtime. You may also want to check out our step-by-step tutorial on creating a free business email using Bluehost.