Tutorials

How to Migrate Your WordPress Site to a New Host Without Any Downtime

Why Most Migrations Go Wrong

WordPress migrations have a bad reputation — sites going down for hours, emails breaking, Google deindexing content. Most of these are the result of rushing or skipping the DNS propagation step. The process below has been used on hundreds of migrations without a single case of meaningful downtime.

What You Will Need

  • Access to your current host control panel
  • Your new hosting account set up and ready
  • Access to your domain registrar
  • The Duplicator plugin (free version works for most sites)
  • Approximately 1–2 hours

Step 1: Create a Complete Backup

Install Duplicator on your current WordPress site. Go to Duplicator > Packages > Create New. The wizard creates two files: an installer PHP file and a zip archive of your entire site. Download both to your computer.

Step 2: Set Up Your New Hosting Account

Log into your new host and create a MySQL database and user. Note the database name, username, password, and host. Most hosts use localhost as the database host.

Step 3: Upload and Run the Installer

Upload both Duplicator files to your new host’s root directory via FTP or File Manager. Navigate to yoursite.newhost.com/installer.php. Enter the database credentials when prompted. The installer extracts your site and imports your database.

Step 4: Test Everything Thoroughly

On the temporary URL, verify the homepage loads, multiple posts and pages work, all images display, contact forms submit, and the WordPress admin login works. Do not proceed until every test passes.

Step 5: Lower Your DNS TTL

Go to your domain registrar, find your DNS A record, and change the TTL to 300 seconds. Wait 24 hours for this change to propagate before switching DNS.

Step 6: Switch Your DNS

Update your A record to point to your new host’s IP address. Because you lowered TTL to 5 minutes, most visitors will be on the new server within 10 minutes. Both servers have identical content so nobody notices the switch.

Step 7: Verify and Clean Up

After an hour, confirm the site is loading from the new host. Keep the old hosting account active for 48–72 hours in case of edge-case propagation issues, then cancel it.

zavallcode@gmail.com
Senior analyst and independent reviewer at HostRank. Testing servers since 2017.