How to Migrate WordPress to a New Host Without Downtime: A Complete Guide

How to Migrate WordPress to a New Host Without Downtime

wordpress, blogging, blogger, editor, blog post, cms, blog, write, publish, publication, social media, wordpress, wordpr
Photo by pixelcreatures on Pixabay

If you run a WordPress site, migrating hosts is something you know you should do but probably keep putting off. Maybe your site has outgrown shared hosting, support quality has slipped, or it’s a cost issue. The main fear is always the same: downtime. A few minutes offline can cost you traffic, sales, and search ranking. I’ve migrated dozens of sites over the years—some simple, some painfully large—and the process is manageable if you follow the right steps. This guide covers how to migrate WordPress to a new host without losing a single visitor or page view. It’s written for site owners, not developers, but you should be comfortable logging into cPanel or similar control panels. Let’s get into the mechanics of a zero-downtime migration.

WordPress migration cPanel dashboard showing file manager and database tools

Why Downtime Happens During a Migration (And How to Avoid It)

Downtime during a WordPress migration typically stems from one of three technical issues: DNS propagation, file transfer delays, or database sync problems. The most common cause is DNS propagation—the time it takes for your domain to point from the old server to the new one. Even if you pre-load all files, when you update the nameservers, some visitors might hit the old server while others hit the new one. If the configurations aren’t identical, someone sees a broken site. File transfer is another culprit, especially on large sites with thousands of image files. A slow FTP method can take hours, leaving your old host still serving traffic while you wait. Database sync is trickier. If you export the database before finishing the file transfer, any new comments or orders made in the meantime get lost. The solution is methodical execution: preparation, testing, and then the actual cutover. Take shortcuts and you’ll face problems. Do it right, and your visitors won’t even know you moved.

What You Need Before Starting the Migration

Before touching anything, make sure you have the following access and tools ready. Hunting for credentials mid-migration is a recipe for mistakes.

  • Access to your current host – cPanel, FTP credentials, and phpMyAdmin access. If you don’t have phpMyAdmin, your host should offer an alternative database tool.
  • Access to your new host – Control panel login, FTP/SFTP details, and an empty database ready to go. Most hosts will set up the database for you if you ask.
  • A reliable FTP client – I strongly recommend FileZilla. It’s free, stable, and handles large transfers well.
  • A backup plugin – Even if you do a manual migration, a plugin like UpdraftPlus adds a safety net. The free version works fine for most sites.
  • External storage – Save a copy of your full backup to an external drive or cloud service. A portable hard drive is reliable and affordable for this purpose.

Step 1: Choose the Right New Hosting Provider

Not all hosts are equal when it comes to migration support. If you’re moving from one budget shared plan to another, the process is straightforward. But if you’re switching to managed WordPress hosting, VPS, or dedicated, you need to evaluate a few things. First, check if the host offers free migration services. Many premium hosts like WP Engine or Kinsta will migrate your site for you, handling all the technical details. That alone is worth paying for if you’re not technical. If you’re going the budget route, look for hosts that offer one-click staging and let you test your site before switching DNS. Otherwise, you’ll be doing everything manually. Second, consider performance and scalability. A CDN like Cloudflare can offload traffic and speed up your site regardless of your host, and a free Cloudflare plan during migration can help smooth out DNS issues. For sites under 5GB with moderate traffic, a good shared host with strong support is fine. For anything larger, lean toward a VPS or managed WordPress host. Don’t forget SSL certificates—most modern hosts include free Let’s Encrypt SSL, or you can buy one through providers like Namecheap or Comodo.

WordPress backup plugin settings panel showing backup options

Step 2: Create a Full Backup of Your Current Site

A backup isn’t optional—it’s your safety net if something goes wrong during the migration. For a manual migration, you need two parts: files and the database. Start with the files. Use your FTP client to download the entire public_html directory (or whatever your WordPress install folder is called). This can be slow for large sites, so consider using your host’s file manager or a command-line tool like rsync if available. Next, export the database. Go into phpMyAdmin, select your WordPress database, and choose ‘Export.’ Use the ‘Quick’ method and SQL format. That’s your raw backup. If you’re using a backup plugin, this process is automated. UpdraftPlus is my go-to for this step—it compresses everything into a single archive and can send it to remote storage automatically. I recommend saving backups in at least two places: one on the new host’s server once you’re set up, and one off-site. A simple USB external hard drive like the Western Digital My Passport works perfectly. If you prefer cloud storage, Amazon S3 is reliable but has a learning curve for setting up access keys. For non-technical users, a Google Drive folder connected via UpdraftPlus is simpler.

security, protection, antivirus, software, cms, wordpress, content management system, editorial staff, contents, backup,
Photo by pixelcreatures on Pixabay

Step 3: Set Up Your New Hosting Environment

Your new host will have its own control panel with a WordPress installation option or a manual setup process. The goal is to create a staging area that mirrors your old environment. Start by checking the PHP version. Your old host might be running PHP 7.4 while the new one defaults to 8.1. In most cases, that’s fine, but if you use older plugins or themes, test compatibility first. Then create a MySQL database and user. Most control panels have a ‘MySQL Databases’ wizard that handles permissions for you. Write down the database name, username, and password—you’ll need them soon. Next, add your domain as an add-on domain or park it temporarily. Some hosts give you a temporary URL (like temp.yourhost.com or server.ip.address/~username) to preview the site before DNS changes take effect. Use this temporary URL if available; it’s the easiest way to test. If your host doesn’t offer one, you can modify your local hosts file—more on that in Step 6. Finally, install a fresh WordPress site on the new server. This might feel counterproductive, but it gives you a clean database structure to work with. You’ll overwrite it later with your backup.

Step 4: Transfer WordPress Files and Database

Now you’re ready to copy your old site over. Start with the files. Use your FTP client to connect to the new host and upload all the files from your old public_html directory. For large sites, a client like FileZilla helps because it supports parallel transfers and can resume if the connection drops. If your site is over 10GB, look into rsync via SSH—it’s faster and more reliable, but requires command-line knowledge. Once the files are uploaded, import the database. Go to phpMyAdmin on the new host, select the empty database you created, and click ‘Import.’ Choose the SQL file you exported earlier. This can time out on large databases. If it does, split the SQL file into smaller chunks using a tool like BigDump, or use the command line: mysql -u username -p database_name < file.sql. After import, update the wp-config.php file with the new database name, username, and password. Keep the same table prefix unless you're merging with an existing installation. If you're using a managed migration service like Jetpack's migration tool, most of this is handled automatically. But for manual migrations, attention to detail matters here.

Step 5: Update the wp-config.php File and Troubleshoot Common Issues

If the wp-config.php file isn't configured correctly, your site won't load. At minimum, update the DB_NAME, DB_USER, and DB_PASSWORD constants to match the new database. Also check the DB_HOST—on some hosts it's 'localhost,' on others it's a specific IP or socket path. Your new host will provide this. Common issues at this stage include a blank white screen, database connection errors, or missing table errors. A white screen often means a plugin conflict caused by PHP version differences. Try disabling all plugins by renaming the plugins folder via FTP. If the site loads, rename it back and reactivate plugins one by one. Database connection errors usually come from wrong credentials or a missing database user—double-check that the database exists and the password is correct. Missing table errors usually mean the import didn't complete properly, so try re-importing the SQL file or splitting it into smaller parts. If your site uses object caching or a CDN, clear those caches after migration. Otherwise, old cached data might interfere with the new setup.

DNS propagation test results showing successful server change

Step 6: Test Your Site on the New Host Before Switching DNS

Before making the DNS switch, verify everything works from the new server. If your host provides a temporary URL, browse your site from that URL. Check all key pages, posts, and contact forms. Test any e-commerce functionality if you have a store. Verify that images and assets load correctly. If you don't have a temporary URL, use the local hosts file trick. On Windows, open Notepad as administrator and edit C:\Windows\System32\drivers\etc\hosts. On Mac or Linux, edit /etc/hosts. Add a line like: 123.456.789.0 yourdomain.com www.yourdomain.com (replace with your new server's IP). Save the file and visit your domain normally—it will load from the new server only on your computer. This lets you test without affecting anyone else. During this phase, test SSL too. Make sure the certificate is installed and the site loads over HTTPS without mixed content warnings. Tools like SSL Checker (free online) are helpful here. If you use a CDN like Cloudflare, set it to development mode during testing so your changes take effect immediately. This testing step is where most people find hidden issues—broken shortcodes, missing CDN assets, incorrect file permissions. Fix them now, not after DNS switches.

covid, testing, corona test, covid-19, corona, coronavirus, sars-cov-2, concept, quick test, pcr, pcr-test, covid test,
Photo by analogicus on Pixabay

Step 7: Switch DNS and Go Live Without Downtime

Once testing passes, it's time to switch the DNS. The key to zero downtime here is the TTL (Time to Live) setting. A few days before the migration, lower your DNS TTL to 300 seconds (5 minutes). This makes DNS changes propagate faster. If your TTL was set to 86400 seconds (24 hours), you'd be waiting a day or more for all visitors to see the new server. After lowering the TTL, change your nameservers or A record to point to your new host. Most registrars take effect within minutes, but global propagation can still take up to an hour. During this period, some visitors will hit the old server, some the new one. To avoid displaying different content, keep the old server running and serving the exact same content until the DNS switch is fully complete. Don't delete your old site until you're sure all traffic is on the new host. After DNS propagation, test your site from multiple locations using a tool like Pingdom or GTmetrix. If everything looks good, you can delete the old hosting account, but hold onto the backup for at least a week in case you need to roll back.

Common WordPress Migration Mistakes to Avoid

I've seen plenty of migrations go wrong, typically from the same few mistakes. First, forgetting to lower the TTL. If you keep a 24-hour TTL, even a perfect migration takes forever to propagate, and visitors see inconsistent results. Second, skipping the testing phase—you can't trust that everything works just because files copied over. Third, not checking SSL. If your SSL certificate isn't installed or configured properly, visitors see security warnings immediately. Fourth, deleting the old site before DNS propagation is complete. This causes downtime for anyone still hitting the old server. Fifth, ignoring file permissions. Incorrect permissions can break file uploads, plugin updates, and even page loads—set your directories to 755 and files to 644 after migration. One more: don't assume your host's migration tool works perfectly. Even if they offer free migration, double-check everything afterward. No one cares about your site as much as you do.

Manual Migration vs. Plugin Migration: Which Should You Choose?

You have two main approaches: manual migration and using a dedicated plugin. Manual migration gives you full control and doesn't rely on third-party code. It's the most reliable method, but requires technical comfort with FTP, phpMyAdmin, and file editing. It's best for developers or site owners who want no surprises. Plugin migration tools like Duplicator, All-in-One WP Migration, and UpdraftPlus simplify the process. Duplicator is excellent for cloning a site to a new server—it packages everything into a single file and includes an installer script that handles the database and URLs automatically. All-in-One WP Migration is great for small to medium sites and has a 'Find and Replace' feature for URLs. UpdraftPlus is more of a backup tool but can also migrate if you install it on both hosts. For non-technical users, I recommend using a plugin. For technical users or sites over 10GB, manual is safer because plugins can have file size limits or timeout issues. Premium versions of these plugins remove restrictions and add features like database find/replace. Duplicator Pro costs around $59, and All-in-One WP Migration has extensions starting at $19. If you want a one-time purchase, consider a manual migration with a backup plugin for safety.

Recommended Tools and Products for a Smooth Migration

Having the right tools makes the difference between a stressful migration and a smooth one. Here's what I'd recommend:

  • FileZilla Pro – Reliable FTP client with SFTP support. The Pro version supports cloud storage connections if you want to transfer directly from S3 or Google Drive.
  • UpdraftPlus Premium – Best backup and migration plugin. Supports remote storage, scheduled backups, and one-click restoration.
  • Cloudflare – Free CDN with DNS management. Use it to speed up your site and manage TTL easily.
  • Western Digital My Passport External Hard Drive – For off-site backups. Reliable and portable.
  • Seagate Backup Plus Hub – Larger capacity for network backups if multiple sites are involved.
  • Transmit for Mac – Premium FTP client with a clean interface and fast file transfers.

Final Thoughts: Migrate with Confidence

Migrating WordPress to a new host doesn't have to be stressful. Plan ahead, back up thoroughly, test before switching DNS, and avoid the common mistakes I outlined, and you can move your site without losing a single visitor. The steps I shared here are the same ones I follow every time, whether I'm moving a small blog or a high-traffic ecommerce site. Take your time with testing—it's where most hidden problems surface. And remember, your new host's support team is there to help if you hit snags. Now you know exactly how to migrate WordPress to a new host without downtime. Pick a weekend, prepare your tools, and get it done.