Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Move WordPress to a New Host or Server With No Downtime

Are you planning to move your WordPress site to a new hosting company or a different server? The biggest risk when switching web hosting or migrating a website to a new server is data loss and downtime.

Both of these can make your website temporarily inaccessible to users and search engines which can result in loss of sales and search engine rankings.

In this step by step tutorial, we will show you how to safely migrate your WordPress site to a new host without any downtime.

We’ll also answer the most frequently asked questions about moving a WordPress site to new hosting provider, so you can avoid making some common mistakes.

Migrating WordPress from one host to another

Important: Before we start, we want you to know that a lot of WordPress hosting companies offer a free migration service. It might not be listed on their website, so all you have to do is ask. Usually it’s free, but some may charge a small fee.

Having that said, let’s take a look at the steps we’ll cover to move WordPress to a new hosting server (without any downtime).

  1. Choose a new WordPress host
  2. Setup the Duplicator Plugin for Easy Migration
  3. Import your WordPress site to the new host
  4. Change the Hosts file to prevent downtime
  5. Create a MySQL database on your new host
  6. Run Duplicator website migration script
  7. Updating your domain name server
  8. FAQs about moving WordPress to new host

Ready? Let’s get started.

Step 1: Choose Your New WordPress Host

If you are stuck with a slow web host even after optimizing WordPress speed and performance, then it’s time to move your WordPress site to a new host that can handle your growing traffic.

When looking for a new WordPress hosting provider, it’s important to choose carefully, so you don’t have to move again any time soon.

Here’s who we recommend:

  • For reliable shared hosting, we recommend going with Bluehost. They’re officially recommended by WordPress.org. Using our Bluehost coupon, WPBeginner users get 60% off and a free domain name.
  • If you’re looking for cloud hosting or location-specific providers, then we recommend you check out Siteground. They have data centers across 3 different continents.
  • If you’re looking for managed WordPress hosting, then we recommend you check out WP Engine. They are the best and most well-known provider in the industry.

After buying your new hosting, do NOT install WordPress. We’ll do that in a later step.

For now, your new web hosting account should be completely empty with no files or folders in your main directory.

Step 2: Setup Duplicator for Easy Migration

The first thing you need to do is install and activate the free Duplicator plugin on the website that you want to move. For more details, see our step by step guide on how to install a WordPress plugin.

Duplicator is a free plugin that we highly recommend. You can also use it to move your website to a new domain name without losing SEO.

However, in this article, we will walk you through how to use it to migrate your WordPress site from one host to another with zero downtime.

Once you have installed and activated Duplicator, go to the Duplicator » Packages page in your WordPress admin area.

Next, you need to click the ‘Create New’ button in the top right corner.

Creating a new package in Duplicator

After that, click the Next button and follow the steps to create your package.

Duplicator create a package wizard

Make sure that your scan results check out (everything should say “Good”), and then click the Build button.

Build package

The process may take several minutes to complete, so leave the tab open as the plugin does its job.

Once the process is complete, you’ll see download options for Installer and the Archive package. You need to click on the ‘One click download’ link to download both files.

Download package files

The archive file is a copy of your complete website, and the installer file will automate the installation process for you.

Step 3: Import Your WordPress Site to the New Host

Now that you have downloaded both the archive and installer files, the next step is to upload them to your new web host.

You can do this by connecting to your new web host using FTP.

If you’ve never done this before, check out our beginner’s guide to uploading files via FTP to WordPress.

Normally, you would enter your website’s domain name as host when connecting your FTP client.

However, since your domain name is still pointing to your old host, you’ll need to connect by entering your server’s IP address or server hostname. You can find this information from your new hosting account’s cPanel dashboard.

Finding server IP or Hostname in cPanel dashboard

If you are unable to find this information, then you can ask for support at your new web hosting company, and they will help you out.

Using the FTP client, you need to upload both installer.php file and your archive .zip file to the root directory of your website.

This is usually /username/public_html/ folder.

Again, if you are not sure, then ask your web hosting company.

Make sure that your root directory is completely empty. Some web hosting companies automatically install WordPress when you sign up.

If you have WordPress installed in your root directory, then you need to delete WordPress first.

Once done, you need to upload both the archive zip file and installer.php file to your site’s root directory.

Step 4: Change The Hosts File to Prevent Downtime

Once you’ve uploaded both files to your new host, you need to access the installer.php file in a browser.

Normally, this file can be accessed using a URL like this:

http://www.example.com/installer.php

However, this URL will take you to your old web host, and you will get a 404 error. This is because your domain name is still pointing to your old web host.

Normally, other tutorials might tell you to change your domain nameservers and point it to your new hosting company, but that’s wrong.

If you do this now, then your visitors will see a broken website as you migrate it.

We’ll show you how you can access your new site temporarily on your computer, without affecting your old site.

This is done with a hosts file on your computer.

The hosts file can be used to map domain names to specific IP addresses. In other words, it lets you trick your computer in thinking that the website is moved even though it’s not.

Let’s take a look at how to add an entry for your domain name in the hosts file, so that it points to your new hosting company.

Making these changes will allow you to access the files on your new host using your own domain name, while the rest of the world will still be accessing your site from the old host. This ensures 100% uptime.

The first thing you need to do is find the IP address of your new web hosting server. To find this, you need to log into your cPanel dashboard and click on expand stats link in the left-hand sidebar. Your server’s address will be listed as Shared IP Address.

On some web hosting companies, you will find this information under ‘Account Information’ heading.

Find shared IP address

In the next step, Windows users need to go to Programs » All Programs » Accessories, right-click on Notepad and select Run as Administrator.

A Windows UAC prompt will appear, and you need to click on Yes to launch Notepad with administrator privileges.

On the Notepad screen, go to File » Open and then navigate to the C:\Windows\System32\drivers\etc folder. From this folder, select hosts file and open it.

If you’re using Mac, then you need to open the Terminal app and enter this command to edit hosts file:

sudo nano /private/etc/hosts

For both Windows and Mac users, at the bottom of the hosts file, you need to enter the IP address you copied and then enter your domain name. Like this:

192.168.1.22 www.example.com

Make sure that you replace the IP address with the one you copied from cPanel, and example.com with your own domain name.

Once you’re done, save your changes.

You can now access your files on the new host using your domain name on your computer.

Important: Don’t forget to undo the changes you made to hosts file after you have finished the migration (step 6).

Step 5: Creating MySQL Database on Your New Host

Before we run the installer on the new host, you will need to create a MySQL database on your new hosting account. If you have already created a MySQL database, then you can jump to the next step.

Creating a Database in cPanel

Go to your new hosting account’s cPanel dashboard, scroll down to Databases section and click on MySQL databases icon.

MySQL databases in cPanel

You will see a field to create a new database. Enter a name for your database, and click “Create Database” button.

Creating new database

After creating the MySQL database, you need to scroll down to the MySQL Users section.

Next, provide a username and password for your new user and click on the ‘Create a user’ button.

Create a MySQL user

After that, you need to add this user to your database. This will give the username you just created, all the permissions to work on that database.

You can do this by scrolling down to ‘Add User to a Database’ section. Simply select the database user you created from the dropdown menu next to user, then select database, and click on the add button.

Add user to database

Your database is now ready to be used with WordPress. Be sure to make note of the database name, username, and password. You’ll need that information in the next step.

Step 6: Begin the Duplicator Migration Process

Now we’re ready to run the installer. Navigate to the following address in your browser window, replacing example.com with your domain name:

http://www.example.com/installer.php

Duplicator installer initialized

The installer will run a few tests and will show you ‘Pass’ next to archive and validation tests.

You need to check the terms & conditions checkbox and continue by clicking on the Next button.

Now, you will be asked to enter your MySQL host, database name, username, and password.

Your host will likely be localhost. After that, you will enter the details of the database you created in the previous step.

Connect to the database

You can click on the ‘Test Database’ button to make sure you entered the correct information.

If Duplicator is able to connect, then you will see a string starting with Pass. Otherwise, you will see the database connection error details.

Click on the next button to continue.

Duplicator will now import your WordPress database from the archive zip into your new database.

Next, it will ask you to update site URL or Path. Since you are not changing domain names, you DON’T need to change anything here.

Simply click on the next button to continue.

Duplicator will run the final steps and will show you the login button.

Duplicator website migration finished

You can now login to your WordPress site on the new host to make sure that everything is working as expected.

Step 7: Update Your Domain Name Servers (DNS)

At this point, you’ve created a complete copy of your WordPress database and files on your new hosting server, but your domain still points to your old web hosting account.

To update your domain, you need to switch your DNS nameservers. This ensures that your users are taken to the new location of your website when they type your domain into their browsers.

If you registered your domain with your hosting provider, then it’s best to transfer the domain to a new host. If you used a domain registrar like Domain.com, GoDaddy, Network Solutions etc, then you need to update your nameservers.

You will need the DNS nameserver information from your new web host. This is usually a couple of URLs that look like this:

ns1.hostname.com
ns2.hostname.com

For the sake of this guide, we will be showing you how to change DNS nameservers with GoDaddy.

Depending on your domain registrar or web host, the screenshots may look different. However, the basic concept is the same.

You need to look for domain management area and then look for nameservers. If you need assistance with updating your nameservers, then you can ask your web hosting company.

For GoDaddy, you need to login to your GoDaddy account and then click on Domains.

After that, you need to click on the Manage button next to the domain name you want to change.

Manage domain

Under the ‘Additional Settings’ section, you will need to click on ‘Manage DNS’ to continue.

Manage DNS

Next, you need to scroll down to the Nameservers section and click on the change button.

Change nameservers

First, you will need to switch the nameserver type dropdown from ‘Default’ to ‘Custom’. After that, you can fill in the your new hosting provider’s information under Nameservers.

Updating DNS nameservers

Don’t forget to click on the save button to store your changes.

You have successfully changed the nameservers on your domain. DNS changes can take 4 – 48 hours to propagate for all users.

Since you have the same content on your old host and the new host, your users wouldn’t see any difference. Your WordPress migration will be seamless with absolutely no downtime.

To be on the safe side, we recommend that you wait to cancel your old hosting account until 7 days after your migration.

Frequently Asked Questions

Here are a few questions many of our users ask while moving WordPress from one host to another.

1. Can I signup for the new hosting account without registering a domain name?

Yes, you can absolutely signup for a hosting account without registering a domain name.

Domain name and hosting are two different services, and you don’t necessarily need to register a domain name when signing up for new host. For more details see our guide on the difference between domain name and web hosting.

Some hosting providers will ask you to select a domain name as the first step when purchasing hosting. They will also allow you to enter a domain name if you already got one.

2. Do I need to transfer my domain name to the new host?

No, you don’t need to transfer your domain name to the new host. However, transferring your domain name to your new hosting will make it easier to renew and manage under the same dashboard as your new hosting account.

For more on this topic, see our ultimate guide on domain names and how do they work.

3. How do I fix error establishing database connection error in Duplicator?

If you are seeing an error connecting to the database or database connection error in Duplicator, then the most likely reason for this is that you entered incorrect information for your database connection.

Make sure that your database name, MySQL username, and password are correct. Some web hosting companies do not use localhost as the host for their MySQL servers. If this is the case, then you will need to ask your web host’s support staff to provide you with the correct information.

4. How do I check if my website is loading from the new host?

There are several online tools that allow you to see who is hosting a website. After you have transferred your website to the new host, you can use any of these tools, and they will show you the name of the web hosting company hosting your website.

If it hasn’t been long since you migrated your website and made changes to your domain name server (DNS), then chances are that your site may still load from your old host. Domain name changes can take up to 48 hours to fully propagate.

5. Do I need to delete any files or data from old host?

When switching hosting companies, we recommend that you keep your old website for at least a week. After that, you can delete files from your old web host. If you are canceling your account, then your web hosting provider will delete all your data according to their policy.

6. How long should I keep my account active on the old host?

Once you have migrated your website to the new host, and if you don’t have any other websites hosted with your old web host, then you can cancel your old web hosting account.

However, in some cases, you may have already paid them for yearly hosting. You should check their refund policy to see if you are eligible for any refund upon cancellation.

7. How do I move a WordPress site with SSL/HTTPs?

You will need to install SSL certificate on your new hosting provider. After that, you can follow the same steps mentioned above. Just make sure that you use HTTPs in the URLs, like https://example.com

8. Bonus: Free Site Migration by Your New Host

If you’re looking to switch your web hosting, but the steps above sound too complicated, then you can choose the following providers, and they will migrate your website for you.

SiteGround, InMotion Hosting, and WP Engine offer free website migration for WPBeginner users.

We hope that this step by step guide helped you move WordPress to your new host with no downtime whatsoever. If you come across any issues with your WordPress migration, then check out our guide on the most common WordPress errors and how to fix them.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

282 CommentsLeave a Reply

  1. Hello,

    thanks for the article.

    I am moving an HTML website to WordPress changing everything; host, design, etc…

    Can I build the new WordPress website and then just set the new DNS when the website is ready in order to have it online?

    Or should I also follow step 4?

    Thank you

    Claude

    • If you’re changing the DNS then you wouldn’t need to change your hosts file but when you change the DNS your site visitors would see the new site as well.

      Admin

  2. I got to step six and I could not open the installer page in my browser

    I just got a 404 not found page.

    I did change the web address to my web address.,

    • You would want to check with your hosting provider that you placed the file in the correct location

      Admin

  3. Hi, I just scan and Got Notice in File Size.
    It turns out the File Size was more than 1GB,
    do you have advice for it?

    Thank you so much for this great tutorial

    • For a site that large, you would want to reach out to your hosting provider to let them know about it and they can normally assist.

      Admin

  4. Three days in to my first go with WordPress working toward an on line shop scenario to go live in the new year. Just used this to move wp between to vm’s in a lab. Did exactly what it said it would on the label. Will definitely use this when I move to a go live on my hosted domain space.

  5. After running the plugin, only the archive file is being downloaded without the installer. How may I correct this?

    • If you reach out to the plugin’s support they should be able to take a look and help solve the issue. You could also try checking with your hosting provider to ensure they’re not preventing the file from being downloaded for some reason.

      Admin

  6. Hi, Thanks for the tutorial. I followed it and worked well. I am able to access the migrated website from new hosting account. Only issue I am facing is, I am not able to access wp-admin page while browsing to /wp-admin Can you please provide any guidance on what should I check or look for? Thanks in Advance

  7. Tried today for migrating a website from an old provider to a new one.

    BANG! everything got well and smoooth :-)

    I have used the free version, also, but I think I will upgrade because the guys deserve it.

  8. I don’t use FTP, I just simply browse to public html folder and directly upload the file. It works fine.

  9. I am moving multiple websites to a new host, you say above that the files need to be uploaded to the root, is this still true for multiple websites or can a folder be created for each one? Or will this have to be done manually?

    Thanks
    Brandon

    • If it is multiple sites then it would depend on how your new host handles multiple domains. If they create folders for your different domains then you would put each site’s content in the folder for that site.

      Admin

  10. Everything worked up until I tried to install on the new site. Then all I get is “502 Bad Gateway”

  11. Re the ‘Hosts’ file amendment.
    I see directions for Windows and Mac in the tutorial. Can you help me find this file in a Linux/Ubuntu set up please.

    • In Linux, it would be similar to the Mac where you would use: sudo nano /etc/hosts

      Admin

  12. Wonderful tutorial. I have not yet transferred my website but this tutorial has given me a lot of courage. Thanks and will let you know how I get on.

  13. Great tutorial, followed all steps and everything worked correctly the first time, can’t ask for anything more than that!

  14. First, thanks so much for sharing this. I am totally new to site migration. Second, HELP!

    I’m all the way to Step 6- Duplicator Step 2 of 4 and the Validation failed. It was not able to verify the host connection. I have no idea what to do next. I double checked my database info and it’s all correct unless my host is something other than “localhost” and if it is, what would it be?

    Thank you in advance for any guidance one this :)

    • If you reach out to the support for the Duplicator plugin with the entire message they should be able to assist. You may also want to check the plugin’s FAQ section to ensure there isn’t a host-specific setting that needs to be set up.

      Admin

  15. This is a great tutorial! I have followed each step perfectly, until I get to the step to access the installer.php. I can see in my hosts file that I have the entry correct, but when navigating in the browser, it sends me to the existing site with a 404 error. What could be wrong? Do I need to reboot my computer?

  16. Thank you so much, this guide worked perfectly! I actually already had moved to the new host and was stuck when I came across your guide and did the reverse of step 4 to install Duplicator (Edited the Host file to look at the old host address) and continued with the rest of the guide, which worked seamlessly.

  17. Hi and thank you yet again for such good information (which I’ll need some time to absorb). But for the immediate future

    For reasons too numerous to detail, I have done nothing with my site to date, really, other than play around with settings. And I want to try a different host IF I decide to go forward. SO….Do I need to do much beyond cancelling my current hosting contract? Though I’ll renew the domain name because hope floats etc.

    Thank you for any assist, and for your site generally.

    • If you have no content, other than keeping your domain you want active, you can close your hosting account until you find a host you want your site on. You shouldn’t need to do more normally.

      Admin

  18. I have done everything right but when I try to go to mywebsite.com/installer.php I get a 404 not found from the server. I have uploaded the files on public_html

    • You may want to ensure you are looking at the correct hosting provider when trying to locate that file and that the file’s filetype was not changed for some reason.

      Admin

  19. Hi, I’m just about to move my site from Siteground to Bluehost. I need to delete WordPress at Bluehost. Do i just delete files at public_html folder or is there a different way ? Thanks !

    • We would recommend creating a backup in case there are any hiccups with the transferred site but as long as your site is set up on your new host you would be able to remove the files in that folder to remove the site

      Admin

  20. hello and thank you for this great tutorial
    i am beginner in wordpress and have a question :
    how i can detect wordpress site theme name ?

  21. Excellent, helpful article. Please note that some of the plugins cited in the article may not work with WordPress version 5.0 and up.

    • Thank you for stating this, some may have not been tested with 5.0 and up but we will certainly keep an eye out for if one of the recommended plugins no longer works :)

      Admin

  22. I really appreciate the level of detail in this tutorial. Good stuff! But I do think it should have been mentioned that if your site is a store or has any user interaction that gets entered into the database, then a “down for maintenance” page may be the ticket. Other wise you migrate but may be missing a user order or sign up etc from your admin on the new host. Any advice on how to smoothly handle that kind of migration? As in how would you migrate without having to block user interaction during the migration process?

    • If you want to prevent that issue from happening and not use a maintenance page as you suggested then you would want to find when your store has the least amount of traffic and change the nameservers then.

      Admin

  23. This process only works if your current host is not a WordPress.com site ie a Free hosting (note I had purchase the business upgrade, but the system wasn’t coping). Duplicator & Duplicator Pro wont work for wp.com sites. Nothing works unless you use one of two host sites that they recommend. Duplicator after lots of help, ended up giving me a refund. I tried many a plugins all could not migrate a WP.com site. I now find ,myself having to start all over. This is not a good situation to be in.

  24. I moved my website from Hostgator (using a WordPress website) to Wix. The domain remained with Godaddy. I thought I would still be able to get into WP Admin, but the page doesn’t appear. Is there any way to get access to the site via wordpress? I need to get some content off the old site.

    Mel

  25. Thanks for creating this detailed tutorial saving me hours of time. However, I notice that if you move a site with SSL certificate (https), you need to make sure you install a SSL certificate after the move, otherwise, it simply won’t work. Also, for some shared hosting customers, they may not have cPanel available to them and they need to rely on some backup plugins such as BackupBuddy or WpDraftPlus to create a complete backup for them. For some reasons, I need to deactivate my security plugins to let BackupBuddy performs a Complete Backup, otherwise, it’ll fail.

  26. Hi,

    I just went through the entire process. When I go to enter my website with the installer.php it’s still giving me a 404 error. Any thoughts on how to troubleshoot this?

  27. It tells me

    You don’t have permission to access /dup-installer/lib/dup_archive/daws/daws.php on this server.
    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

    What can I do please?

  28. I followed the guide step by stem and all I got was a new WordPress site, none of my pages or data migrated. Any ideas?

  29. hi,
    i have successfully transfered my domain name and wordpress from godaddy to aws.
    now the problem is i have access to the frontend and as an admin i can login, but as i want to go to backend dashboard it says “install wordpress” why it is like so?
    and when i click on any menu link or any other link on site it shows 404 error
    why?
    any help would be much appreciated.
    thanks in advance

  30. This made my site migration and launch so extremely easy. I couldn’t believe there was no downtime and how seamless it really was. Thanks for the great tutorial. You just saved me from having a dreadful GoDaddy panic support call. :)

  31. Great tutorial, works just fine.
    However on a site with SSL cannot get it to work.

    Firefox or any other browser won’t contact to the new host. I get the following errors.

    “ Your connection is not secure
    The owner of domain.com did not configure his or her website correctly. To protect your data against theft, Firefox has not connected to this website.

    This website uses HTTP Strict Transport Security (HSTS) to indicate that Firefox can only make a secure connection. This makes it impossible to add an exception for this certificate. “

    Does anyone have suggestions on how to tackle this issue.

    Thanks

    • If you move a site with SSL certificate, you’ll need to install a new SSL certificate again in order to make it works.

  32. Thanks for the detailed guide!

    What about sites with SSL – currently my website has a Let’s Encrypt certificate and the new host provides AutoSSL – can downtime/error be avoid since the latter needs the website to resolve from the new host in order to set up the certificate? And this means there will be a period when the website will load from the new host but the SSL will be missing thus resulting in an error (I think).

    What is you advice in such a situation?

    Regards

  33. Hey, great guide as always. Love your guides actually haha. One thing I’m a bit unsure of is when uploading the php and zip file via FTP, do I drop those files directly into the /username/public_html/ folder or do I create a folder that refers to my site name within the public_html folder and drop the files there? Thanks for any help!

    • Hi Pete,

      It depends on your host. If your host needs each domain to have its own directory, then their servers will automatically create one when you add a domain to your hosting account. Otherwise you can upload directly to /public_html/

      Admin

  34. if I setup in localhost, how to run installer.php in step 6? I can run index.php. I tried localhost/installer.php and myipaddress/installer.php. They weren’t work. nothing in page and no error displayed in page

  35. God bless I was able to upload my site but am seeing parent directory on my new website although i havenot delete the old site. pls direct me to how to delete old site after uploading new site

  36. Thanks for the detailed walkthrough. What if the site you are transferring to already has wordpress content with a domain?

  37. Thanks so much. along with the amazing Duplicator plugin, I moved hosts without any issues. I did things offline for a few days as wasn’t too concerned about being 100% online but the process was perfectly workable.

    Appreciate your guides so much!

  38. Hello, after transferring the host, post link will remain same or not. Means, would I have to do changes in my post link .

  39. Great article, thank you!
    The only confusion I got is when you said that the root folder should be empty. I got my domain name there already. So, the question is where should I upload my package and installer file? I guess domain folder makes more sense?

Leave a Reply to Willy Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.