How to Move WordPress to a New Host or Server (with No Downtime)

So you‘ve decided it‘s time to move your WordPress site to a new web host or server. As a webmaster with over 15 years of experience managing WordPress sites, I know this can be a daunting task.

The biggest risk when switching web hosting or migrating a website to a new server is data loss and downtime. Nothing turns off visitors more than being greeted by a 404 error or a site under construction page.

The good news is that with proper planning and the right tools, you can seamlessly migrate even large WordPress sites without any disruption to your visitors.

In this comprehensive guide, I‘ll share the step-by-step process I‘ve used to safely move dozens of WordPress sites to new hosts with zero downtime.

Why Migrate Your WordPress Site in the First Place?

Before we dig into the actual migration process, it helps to understand why you might want to switch web hosts in the first place. Here are some of the most common reasons:

  • Poor performance: Slow page loads due to limited resources on shared hosting. Upgrading to a managed WordPress host or VPS can improve speed.
  • Frequent downtime: Uptime guarantees vary widely between hosts. 99.9% uptime still means over 8 hours of downtime per year.
  • Lackluster support: Spotty or slow support leads to headaches anytime issues arise.
  • Scaling challenges: Your current host can‘t handle your site‘s traffic growth. Time to upgrade.
  • New features: Managed WordPress hosts offer staging, backups, CDNs and more built-in.

According to statistics from WordPress themselves:

  • Over 41% of all websites run on WordPress.
  • There are over 500 million website running on WordPress.
  • WordPress sites account for 65% of all CMS platforms on the web.

With WordPress powering over a third of all sites on the internet, it‘s no surprise that many site owners eventually outgrow their initial budget hosts.

Migrating to a new host that better fits your needs can provide a big boost in performance, uptime, support and features.

Step 1: Choose a Reliable New Host

The first step when preparing to migrate a WordPress site is selecting a suitable new web host.

Your hosting choice should be based on your site‘s specific needs like monthly traffic, pageviews, number of sites, and budget.

Here are some top providers I recommend considering:

  • Bluehost: Reliable shared hosting, officially recommended by WordPress.org. Solid starting point for most sites.
  • SiteGround: Fast shared hosting plans with exceptional speeds and support.
  • WP Engine: Premium managed WordPress hosting tuned for performance and security.
  • Liquid Web: High-performance fully managed VPS and dedicated hosting. Ideal for enterprise sites and apps.

Make sure to compare factors like:

  • Server speed – Faster hosting improves site performance. Look for hosts with SSD storage.
  • Uptime – Any downtime hurts your business. Aim for 99.9% or higher guarantees.
  • Scalability – Room to grow on hosting plans as your resource needs increase.
  • Security – Protection against hackers, DDoS attacks, malware and other threats.
  • Support – Knowledgeable 24/7 customer service via live chat, phone, and tickets.

You can use online tools like Bitcatcha or HostingBenchmarker to compare the actual speed and uptime of various hosting providers.

Bottom line – take your time selecting a new host that can fully support your WordPress site‘s growth.

Step 2: Use a Migration Plugin to Backup Your Site

Now that you‘ve selected a new web host, it‘s time to backup your current WordPress site.

The easiest way is to use a dedicated WordPress migration plugin like:

  • Duplicator – My top pick and most robust migration plugin.
  • All-in-One WP Migration – No-frills backup & restore tool.
  • WP Migrate DB – Migrates only the database.

These plugins handle all the heavy lifting of backing up your WordPress database, files, uploads, and more. They also make restoring sites fast and easy.

For this guide, we‘ll cover how to use Duplicator, my personal go-to choice for migrating WordPress installs. The free version works great, but Duplicator Pro packs additional features if needed.

Once installed on your current WordPress site, Duplicator creates a full backup containing all your:

  • Database tables
  • Plugins and themes
  • WordPress core files
  • Media uploads

This single backup file makes moving your entire site to a new host a breeze.

Let‘s go over how to create a Duplicator backup package to get started.

Install and Activate Duplicator

  1. Login to your WordPress dashboard at yoursite.com/wp-admin
  2. Go to Plugins » Add New
  3. Search for "Duplicator" and click Install Now
  4. Activate the plugin once installed
  5. Duplicator will now appear in your menu

Generate Full Site Backup

  1. Go to Duplicator » Packages
  2. Click Create New to launch the backup wizard
  3. Accept the default package name or enter your own
  4. Click Next to run an initial scan of your site
  5. Once the scan finishes, click Build to package up your site

This process could take several minutes depending on your site size. Let the backup process run to completion.

Once done, you‘ll see Download options for the installer script and archive .zip of your site.

Download Backup Files

  1. Click Download and choose to download Both Files
  2. Save the installer-backup.php script and .zip archive to your computer

You now have everything you need from your current WordPress site to migrate to a new host.

Time to head over to your new hosting account and start the migration process.

Step 3: Migrate Your Site Files and Database

Your new web hosting account should be completely empty at this point – a blank slate.

If the new host has already installed WordPress, delete those files. We‘ll do a fresh WordPress install.

Now you need to upload the backup archive and installer script from Duplicator to your new host.

The easiest way is to use FTP, or file transfer protocol.

Connect to New Host via FTP

Here‘s how to connect to your new host‘s server over FTP:

  1. Gather your new host‘s server IP, FTP username, and password
  2. Open your FTP client and enter the server IP
  3. Login using the provided credentials
  4. Navigate to the root folder for your new site

The root folder is usually /public_html/ or /htdocs/. Check with your new host if unsure.

Once connected via FTP, you‘re ready to upload your backup.

Upload Backup Files to New Host

  1. Upload both the .zip archive and installer-backup.php script
  2. Place these two files in your new host‘s root folder
  3. Confirm the files show up by browsing your new host‘s file manager

Next, we need to kick off the restoration process by running the installer script.

Time to make some temporary DNS tweaks to access the new host directly until we‘re ready to switch over fully.

Update Local DNS to New Host

  1. Lookup your new host‘s server IP address
  2. Edit your local hosts file by adding:
    123.123.123.123 yourdomain.com
  3. Save changes and clear DNS cache
  4. Local requests for your domain will now hit the new host

Temporarily overriding your DNS locally makes sure visitors are unaffected by the migration.

Now you can run the installer and migrate your actual site database and files.

Step 4: Migrate Your WordPress Site

With your backup files uploaded and local DNS pointing to the new server, it‘s go time!

Follow these steps carefully to fully migrate your WordPress site to the new host.

Create New Database

First, we need an empty database for the migration:

  1. Login to your new host‘s control panel
  2. Navigate to Databases » Create Database
  3. Give your new database a name, with username and password
  4. Make a note of the database details

Run Duplicator Installer

Now launch the installer script from your browser:

  1. Visit http://yourdomain.com/installer-backup.php
  2. The installer will automatically detect your backup archive
  3. Agree to the terms of service
  4. Enter your new Database Name, DB User, Password, and DB Host when prompted
  5. Click test to confirm your new database details work
  6. Finally, click Deploy to migrate your site data!

Give the installer some time to migrate your database, files, and WordPress settings.

Once done, you‘ll see a success notice with a link to visit your migrated site.

Update DNS to New Host

Almost there! The final step is pointing your domain‘s DNS to the new host:

  1. Login to your domain registrar account
  2. Look for Nameservers or DNS Records in the control panel
  3. Switch to using your new host‘s nameservers
  4. Save changes and let them fully propagate

And that‘s it – your WordPress migration is complete!

To be safe, give DNS changes 24-48 hours to rollout worldwide. But your site should show up on the new host for you immediately.

Now you can cancel your old hosting account. Just be sure to test thoroughly first.

Migrating WordPress without Downtime is Possible!

As you can see, moving a WordPress site between hosts doesn‘t have to result in any downtime or interruptions at all.

With the right planning and tools like Duplicator, you can execute a smooth transition that your visitors won‘t even notice.

Here are a few final best practices when migrating WordPress sites:

  • Have your new hosting account created in advance
  • Select a reputable managed WordPress host if possible
  • Use a dedicated migration plugin to backup your entire site
  • Override DNS locally to access new host before cutting over fully
  • Follow the steps carefully to avoid any gaps in the process

Switching web hosts no longer has to be a nerve-wracking experience. Just take it slow and use this guide to migrate your WordPress site to a better host with zero downtime.

Let me know if you have any other questions! I‘m always happy to help fellow webmasters with WordPress migration advice.

Written by Jason Striegel

C/C++, Java, Python, Linux developer for 18 years, A-Tech enthusiast love to share some useful tech hacks.