Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

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?

It’s a big decision, and understandably, you probably have some concerns about potential data loss and downtime. In our experience, those are definitely the biggest risks when switching web hosting or migrating a website.

In this step-by-step tutorial, we’ll show you how to safely migrate your WordPress site to a new host without any downtime. We’ll also answer commonly asked questions about moving a WordPress site to a new hosting provider.

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 look at the steps we will cover to move WordPress to a new hosting server (without any downtime):

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 are officially recommended by WordPress.org. Using our Bluehost coupon, WPBeginner users get up to 75% off and a free domain name.
  • For faster shared hosting, we recommend Hostinger. They are among the top WordPress hosting companies and offer faster servers with outstanding customer support.
  • If you are looking for cloud hosting or location-specific providers, then we recommend you check out SiteGround. They have data centers across three different continents.
  • If you are 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 will do that in a later step.

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

Step 2: Set Up Duplicator for Easy Migration

The first thing you need to do is install and activate the 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 the best WordPress migration plugin on the market. It also comes with automated scheduled backups, cloud storage support, 1-click restore, and smart migrations.

Note: Duplicator also has a free version called Duplicator Lite. It can be used to move your website but has limited features compared to the pro version.

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

Next, you need to click the ‘Add New’ button in the top left corner.

Add new backup

This will launch the Duplicator’s backup wizard.

On the next screen, you can enter a name for your backup or you can use the dynamic tags to automatically create a name format, like the date and your site title.

Enter name of backup

Then, you can expand the ‘Storage’ section to select a storage location. For this tutorial, we’ll use the default location, but you can add a new location like Dropbox or Google Drive by clicking the ‘Add Storage’ link.

Simply click on the ‘Next’ button to continue.

Choose storage in Duplicator

Next, Duplicator will scan your system to make sure that everything is in order to prepare the package.

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

After the scan, create the backup

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 ‘Download’ button and then select the ‘Both Files’ option.

Download website backup 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 still points to your old host, you’ll need to connect by entering your server’s IP address or server hostname.

You can find this information in your new hosting account’s control panel dashboard.

Server IP address

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

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

This is usually the /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 that’s done, you need to upload both the archive zip file and the 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 still points 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 will show you how you can temporarily access your new site on your computer without affecting your old site.

This is done with the 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 into 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 the expand stats link in the left-hand sidebar. Your server’s address will be listed as ‘Shared IP Address’.

For instance, on Hostinger, you’ll find your server IP address under your hosting plan details.

Hostinger server IP

If you are using a Windows PC, then you need to open the Notepad app with administrator privileges.

Simply click on the ‘Start; button and then look for the Notepad app. Right-click on the Notepad app icon and then select ‘Run as administrator’.

Run Notepad 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 the hosts file and open it.

If you are using a 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 are 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 the 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 the Databases section, and click on the ‘MySQL Databases’ icon.

You will see a field for creating a new database.

Enter a name for your database, and click the ‘Create Database’ button.

Create 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 User’ button.

Create database username and password

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 the ‘Add User to a Database’ section. Simply select the database user you created from the dropdown menu next to the user, then select the 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 a 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 are 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

The installer will run a few tests and will show you ‘Pass’ next to the 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.

Enter database details

Next, the Duplicator needs to check that it can connect to the database and is able to run the installation.

Click on the ‘Validate’ button at the bottom to continue.

Validate database information

If Duplicator is able to connect, then you will see test results as Pass.

You can now check the terms and notices checkbox and click on the ‘Next’ button.

Accept terms and continue

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 the 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 show you the login button.

Duplicator migration finished

You can now log in 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.

On the other hand, if you use a domain registrar like Domain.com, GoDaddy, or Network Solutions, 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.

For other hosting providers, take a look at our guide on changing domain nameservers.

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 the domain management area and then look for nameservers. If you need assistance updating your nameservers, you can ask your web hosting company.

For GoDaddy, you need to log in 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

Go to the ‘Additional Settings’ section.

Then, you will need to click on ‘Manage DNS’ to continue.

Manage DNS

Next, you need to scroll down to the ‘Nameservers’ section.

Here, 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 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. How do I migrate my WordPress website to another host?

You can migrate your WordPress website by moving your WordPress files and database from your old host to the new hosting provider.

Some hosting companies offer free website transfer services as well, but you’ll need to ask them. Alternatively, you can do it yourself by transferring files using an FTP client and importing the database via phpMyAdmin.

2. Can I migrate my WordPress site to another hosting provider?

Yes, you are free to migrate your WordPress site to another hosting provider.

3. Can I sign up for the new hosting account without registering a domain name?

Yes, you can absolutely sign up 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 a 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 have one.

4. 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 they work.

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

If you are seeing an error connecting to the database or the database connection error in Duplicator, then you likely 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.

6. 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.

7. Do I need to delete any files or data from the 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.

8. 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.

9. How do I move a WordPress site with SSL/HTTPS?

You will need to install an 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

10. Bonus: Free Site Migration by Your New Host

If you are 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, Hostinger, and WP Engine offer free website migration for WPBeginner users.

We hope that this tutorial helped you move WordPress to your new host with no downtime whatsoever. You may also want to see our expert picks of the best cheap WordPress hosting or our guide on the most common WordPress errors and how to fix them, if you come across any issues with your WordPress migration.

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. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

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

303 CommentsLeave a Reply

  1. Dennis Muthomi

    Excellent guide!
    The hosts file modification technique is particularly valuable – I’ve used this method countless times when migrating sites.

    ONE thing would share is to always thoroughly test the migrated site before fully switching over, checking plugins, themes, and content to confirm everything is working as expected.
    Thorough testing is crucial to delivering a successful migration experience for clients.

  2. Jeff Bloom

    I’d be careful about recommending Bluehost. I’ve been with them for years, but something changed dramatically over the past year. They went from great to awful overnight. Things that used to work, no longer work. This includes cPanel functions to “Chat” and to “search” functions. Their support people used to be extraordinary, now they’re mostly “friendly” and clueless. And, they change their “rules” and jack up their prices without notice. I’m presently in the midst of moving to a new host.

    • WPBeginner Support

      Thank you for sharing your feedback on your experience with them!

      Admin

    • Dayo Olobayo

      Wow, that sounds frustrating because I’ve heard good things about Bluehost in the past. I guess a hosting provider’s service can change over time. You might want to consider Hostinger though. I can particularly attest to their fast service and ever helpful customer support team.

    • Jiří Vaněk

      Thank you for the heads-up. We’re planning to switch to a new web hosting solution, and Bluehost is one of the options. I’m quite surprised by your experience, as I’ve heard quite a bit of praise. But it could be subjective. What bothers one person may not be an issue for someone else. Nevertheless, I’ll definitely take a look at more reviews to be fully convinced about the quality of all the selected providers, including Bluehost, and thanks for sharing your experience.

  3. Moinuddin Waheed

    Hands down the best guide for migrating a website from one host to another without any downtime.
    I used to think it’s impossible to do without having some lag but no, it’s possible and with easy to follow steps.
    Thanks wpbeginner for this detailed guide. I need to do this very often and had no clue that it can be done with no compromise on website downtime.

  4. THANKGOD JONATHAN

    Thank you for the helpful article.
    But how about someone who wants to migrate his reseller hosting to a new reseller account and want to move all his clients websites to the new host? Do you have any article for that? I will really apprecite it.

    • WPBeginner Support

      We do not have a specific article for bulk movement at the moment but if you reach out to the hosting provider they may have a tool to assist.

      Admin

  5. Jiří Vaněk

    The best practice that has proven successful for me:

    Download data from FTP.
    Create a database dump.
    Upload both to the new server.
    Test functionality using the HOSTS file.
    Switch DNS.
    An efficient, functional, and quick method for migrating WordPress to another server.

  6. AC

    Hello,

    I have built a new website on a subdomain using we’ll call it hosting server A, could I also use this process to move that website to a new hosting server (B) and update the path to the new domain (noted in step 6), if the new domain is already connected to a live wordpress site on an entirely different server (C)?

    Or would I be better to move current website from server C to server B exactly as you have outlined above and get that going, then copy the files from updated website on server A to current hosting server B? Hope that makes sense. Just want the most seamless approach!

    For a little bit of an explanation… Business has a website that needs updating that is hosted with another company, I have built the “new” website on my own subdomain. Business owns domain, and wants new website to live on new hosting that they control under same account as domain for easier access to everything moving forward.

    • WPBeginner Support

      Either method can work, if you are already updating the site then you would want to use the first method and move the new site then update the domain to point toward the correct hosting provider to prevent you from having to do extra work on a live site.

      Admin

  7. D Lewis

    Another great tutorial, WPBeginner!

    Is this the same process used for simply downloading a Wordpress.org blog from an old computer onto another one (keeping the same hosting company)?

    Thank you,
    D Lewis

    • WPBeginner Support

      If you are keeping the same host you can normally check with your hosting provider to have them change it to the new server. If they do not offer this then changing your hosts file will likely not work but the other steps would be the same.

      Admin

  8. lse

    Do you find it better to create a fresh install of WordPress latest and migrate to this my existing WordPress website – import – data only, rather than the old WordPress – I update from 2011 – migrate all files/data/database, and Not create a fresh install…?

    • WPBeginner Support

      It would depend on how you want the site’s content. If you are looking to do major changes to the site then creating a new site and importing the content would be good. This guide is for reducing downtime and keeping the site the same which is why we recommend importing all of the files and data. :)

      Admin

  9. KubaP

    Cool. Best tutorial. Works like gem in 2023! I’ve done my first smooth migration with the help of this awesome article

    • WPBeginner Support

      Glad our guide was helpful!

      Admin

  10. Darda

    Thank you so much for this tutorial! It works great!

    • WPBeginner Support

      Glad our guide was helpful!

      Admin

  11. Mr. Akhil

    I am in the stage of 2. it doesn’t show all good but “Size check notice” is not showing good result how can i solve it, what if some scanning process is not good ???

    • WPBeginner Support

      From the sound of the error, the plugin is warning you that you have a large site and it may have trouble depending on your host for exporting your content. It would depend on the specific error if you are seeing other errors for the steps to follow but the plugin’s support should be able to assist.

      Admin

  12. Carlos Almazan

    Thank you very much for this tutorial, it´s amazing!

    I would like to ask you if possible, what steps of this tutorial should I skip if I just want to duplicate the first website? In other words, i want to leave the first website as it is and just create a new one (a new copy) in an another hosting provider.

    Thank you very much in advance!
    Regards!

  13. Emma

    Good day, thank you for this wonderful tutorial. Please how do i migrate to my new host and use the domain on my new host, without using the old host domain

  14. Emmanuel

    Good day, thank you for this wonderful tutorial. Please how do i migrate to my new host and use the domain on my new host, without using the old host domain

  15. Spear

    Thank you so much for the informative guide!

    I’d like to know if possible, how long does it take to migrate wp project to the server?
    Currently the files are in the same server and trying to install wp script via Softaculous.

    thank you!

    • WPBeginner Support

      It would depend on how much content you had on your old site for how long it takes to transfer your content.

      Admin

  16. Milan

    What will happen with my mailboxes on old host? How to manage this transfer and keep e-mails and related stuff?

    • WPBeginner Support

      That would depend on your hosting providers, some have the option to export your mailboxes and import them on the new host while others do not have the option. If you check with your hosting providers they would be able to let you know the options you have available.

      Admin

  17. Mandy Steinhardt

    You are the MVP. Thanks for this guide, it worked!

    • WPBeginner Support

      Glad our guide was helpful :)

      Admin

  18. Cristiano

    Hi! Thanks for this great tutorial.
    I’ve moved 1 website and it was flawless.

    I tried to move a 2nd website. The content folder was really heavy, so i excluded it from the duplicator. I moved these folder manually.
    What I’ve noticed is that the new website is not loading any images.
    How can I solve this?
    Thanks in advanced. :)

  19. Adam

    Im having issues with the host file.
    Changed it to the correct settings but still seeing the old host site,

Leave A 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.