Moving WordPress to a new host without losing rankings

The order of operations that keeps every URL, the DNS trick that means zero downtime, and the checks to run before you cancel the old host. Rankings don't drop because you moved; they drop because of what got skipped.

Founder of RoundBorders · WordPress since 2012

Published 11 min read

The short answer

Rankings stay put when every indexed URL still returns the same content, quickly, over HTTPS. Record what works first, build and test the copy on a temporary address, install SSL before you switch DNS, check everything after the switch, and only then cancel the old host.

  1. 01Inventory before you touch anything
  2. 02Build the copy on the new host, on a temporary address
  3. 03Test it like a visitor and like Google
  4. 04SSL before DNS
  5. 05Lower the TTL, then switch DNS
  6. 06The checks after the switch
  7. 07Only now cancel the old host

Rather hand it over? Get a fixed price for the whole job, from $499.

Google doesn’t care which server your site lives on. It cares whether the URLs it indexed still return the same content with a 200 status, quickly, over HTTPS. A host move done in the right order changes none of that, and rankings don’t move. The drops people blame on “the migration” come from a handful of skipped steps: a changed URL structure, a lost redirect file, a staging copy that got indexed, an SSL certificate that lapsed for a day. Here’s the order I use, with the checks.

Step 01 Inventory before you touch anything

Take a full backup (files and database) and keep it off both hosts. Then record what “working” looks like so you can compare later:

  • Export the list of indexed URLs: Search Console → Pages, and your XML sitemap.
  • Save your .htaccess (or nginx rules) and any redirect plugin’s list. Old redirects are rankings; losing them is the number-one cause of a post-move drop.
  • Note the PHP version, the cron jobs, and any server-level things: mail routing, SSL, wp-config.php constants, cache settings.
  • Run a crawl (Screaming Frog, or Ahrefs’ free tools) and keep the report. This is your “before”.

Step 02 Build the copy on the new host, on a temporary address

Copy the files and import the database onto the new host, reachable at a temporary URL (most hosts give you one) or via your computer’s hosts file, which lets you see the new server at the real domain without changing DNS for anyone else. Do not set the site to a temporary domain with search-and-replace; keep the real URLs in the database and use the hosts-file trick. That way nothing has to be replaced back.

Keep the staging copy out of Google If the temporary URL is public, set Settings → Reading → “Discourage search engines” on the copy, or password-protect it at the host. An indexed duplicate of your whole site is a real ranking problem.

Step 03 Test it like a visitor and like Google

On the new server (via the hosts file): click through the site, submit a form, log in, place a test order if it’s a store, check images and uploads load, run the crawl again and compare against step 01. Every URL that was 200 before must be 200 now. Confirm the redirect rules from step 01 are in place on the new server; nginx hosts need .htaccess rules translated, and that’s where old redirects quietly die.

Crawl matches, forms work, orders work?

Move on to the cutover. Everything from here is about the switch itself.

Differences in the crawl?

Fix them on the new host before DNS. Nobody is looking yet; this is the free window.

Step 04 SSL before DNS

The new host must serve a valid certificate for your domain before traffic arrives, or every visitor (and Googlebot) gets a warning for however long issuance takes. Most hosts can issue via DNS validation ahead of the move, or you can copy the existing certificate. Test at the new IP with curl --resolve. An hour of certificate errors is the most common self-inflicted “migration drop”.

Step 05 Lower the TTL, then switch DNS

A day before the move, set the DNS record’s TTL to 300 seconds, so the change propagates in minutes instead of a day. Then, at a quiet hour:

  1. Put the old site into read-only for stores (a maintenance notice on checkout only; browsing continues). For a blog, skip this.
  2. Take a final database export from the old host and import it into the new one, so the last comments and orders come across.
  3. Point the DNS A record (or Cloudflare proxy) at the new host.
  4. Watch the new host’s access log. Traffic appears within minutes.

Leave the old host running, untouched, for at least a week. Some resolvers ignore TTLs; those visitors quietly land on the old server, which still works.

Zero downtime, honestly Browsing never stops in this sequence. For stores there is one pause: checkout is frozen for the fifteen to thirty minutes between the final export and the DNS switch, so no order is created on a server that’s about to be retired. That pause is the price of not losing an order, and it’s worth paying.

Step 06 The checks after the switch

  • curl -I https://yourdomain.com should show the new server and a 200.
  • Search Console → URL Inspection on three URLs: live test, confirm “URL is available to Google” from the new host.
  • Resubmit the sitemap. Not required, but it prompts a recrawl.
  • Check that email still sends (contact form, order emails). Mail is the thing most often left pointing at the old host.
  • Watch Search Console’s Pages report for a week. A blip of “server error (5xx)” for one day is normal; a growing number is not.

Step 07 Only now cancel the old host

After a week of clean logs, no 5xx in Search Console, and email confirmed, take a last backup from the old host and cancel. If you cancel on day one and something was missed, the backup you need is gone.

That’s the whole method. It’s not hard, but there are eleven places to skip something, and each skip has a ranking attached. If you’d sooner have it done for you, the migration service is exactly this list with a receipt at the end, and the only thing you do is approve the cutover time.

From the RoundBorders team

Rather have it moved for you?

Tell us where the site is and where it’s going. We plan the move and send a fixed price, usually within a few hours.

  • From $499
  • Every URL checked after the move
  • Nothing to pay until you approve a price
No passwords needed to quote

Write as much as you like: what's happening, what you want, links, errors. The more we know, the more exact your fixed price.

How a zero-downtime move works

Share this post

Know someone planning a move? Send it their way.

Bishoy Awad

Written by

Founder of RoundBorders. Building and fixing WordPress sites since 2012; our work is listed in the WooCommerce, Pressable and Jetpack partner directories.

Found a mistake? Write to me.