// blog / migrations

How I migrate WordPress to new hosting and check nothing broke for Google

When I migrate WordPress to new hosting and the URLs stay the same, there's no redirect map to build. The risk is what breaks quietly: DNS, email records, a leftover noindex and a slower server. I test the copy on the new server first, then check each of those over HTTP on switch day.

By Muhammad Younus Updated 10 min read Migrations

Migrations and redesigns, SEO side: illustration for "Moving WordPress to a new host"
// 01 - the risk

Does migrating WordPress to new hosting affect SEO if the URLs stay the same?

Not by itself. Google ranks URLs, and a host move leaves every one of them where it was, so there's nothing to redirect. What decides whether Google notices is how the new server answers when Googlebot asks for those same URLs, and checking that is the part of SEO help with a site migration that owners most often skip.

Google has its own guide for moves without URL changes, covering hosting and CDN changes, and the checks below follow it. The problems it guards against are rarely dramatic: an MX record that didn't come across, a test copy that still says noindex, bot protection that treats Googlebot as a scraper, or a server that's slower to answer.

The site moves as it is. If a move also changes URLs, that's a redirect map job, and a domain change has its own Search Console tool. If the new host is for a first launch with no old site, nothing needs protecting yet; that's planning SEO for a new website instead.

// 02 - before the copy

What do I record on the old host before copying anything?

Most host move problems come from something nobody wrote down, so before a file moves I record how the old setup behaves.

What I write down on the old host, and why it matters after the move
What I recordWhere it livesWhy it matters later
Every DNS record: A, AAAA, CNAME, MX and TXTThe DNS provider, which isn't always the web hostMX and TXT records carry email and verification. Lose them and mail stops, and Search Console can't verify
The current TTL on the A recordThe same DNS zoneIt gets lowered well before the switch and goes back up afterwards
Robots.txt, the robots meta tag and any X-Robots-Tag headerThe live site and its response headersThese are the production values the new server has to match
Status codes and response times for 10 to 20 key URLsMeasured with curl and datedWithout a before number, nobody can say whether the new server is slower
Redirects in .htaccess or the server configThe old hosting accountServer level redirects from past moves don't travel with a WordPress export
The Search Console verification methodAn HTML file, a meta tag or a DNS TXT recordGoogle's guide says an HTML verification file has to be copied across

The key URLs are the top pages by clicks in Search Console. The TTL is the only item with a lead time: Google suggests lowering it to a conservative low value, a few hours for example, at least a week before the move. I set it on day one.

I also check who hosts the DNS. If the zone sits with the old host and that account's being cancelled, the zone moves too, and that's where email records get lost.

// 03 - the method choice

Plugin, manual or the host's tool: which migration method do I use?

Whichever copies the site cleanly on that host. The method matters less than people think, because every one of them moves WordPress and none of them checks what Google sees afterwards. That check is my part, whichever tool did the copying.

The three ways to migrate WordPress to a new host, and what each one leaves for me to check
MethodWhen I use itWhat it misses for SEO
A migration plugin: Duplicator, All-in-One WP Migration or UpdraftPlusA small or mid-sized site on ordinary hosting, where one archive is simpler than copying thousands of filesIt packs WordPress, not the server. DNS records, email and server level rules outside the WordPress folder stay behind
Manual: files over SFTP, the database through phpMyAdmin or WP-CLI's wp db export and wp db importLarge sites, stores, or a host that caps upload sizes, since I see every file that movesHidden files such as .htaccess are easy to miss, and old redirects often live there
The new host's own migration tool or serviceA standard install on a host that offers itIt reports the copy as done. Robots.txt, a testing noindex and response time are still unchecked

UpdraftPlus's listing describes a built-in search and replace engine for the new location. On a same-domain move there's nothing to replace, so I check it changed nothing.

Rather have me do this? One person, whole job.

Book a call on Upwork
// 04 - the steps

How I migrate WordPress to new hosting, step by step

To migrate WordPress to new hosting by hand, back up the files and the database, copy the files to the new server with hidden ones included, import the database into a new one, put its name, user and password in wp-config.php, test through a hosts file, then point DNS at the new server. WordPress's own documentation says that if the database and URL stay the same, you can move by just copying your files and database.

  1. Step 01

    Pick a quiet window and freeze changes

    Anything written to the old database after the export is lost. On a WooCommerce store that's orders, so edits wait until the switch.

  2. Step 02

    Back up both halves

    The whole WordPress directory, uploads included, plus a full database export, kept somewhere that isn't either server.

  3. Step 03

    Copy the files, hidden ones included

    If .htaccess doesn't come across, URLs that used to 301 can start returning 404.

  4. Step 04

    Import the database and fix wp-config.php

    WordPress's documentation says that if the database name or user changes, wp-config.php has to be edited to the new values. That's usually the only edit a same-domain move needs.

  5. Step 05

    Leave siteurl and home alone

    The domain isn't changing, so there's no search and replace. I test through a hosts file instead of editing those two values, so the database stays identical and there's nothing to change back.

  6. Step 06

    Match the server to the old one

    The same PHP version, or a newer one I've tested, a valid HTTPS certificate installed before DNS moves, and the same caching setup. I also resave the permalink settings on the new server, since WordPress's documentation says rewrites have to be reconfigured.

// watch out

Don't cancel the old hosting when the copy's done. Google's guide says to check the old provider's server logs and shut it down once its traffic reaches zero. Until then it's still answering some visitors, and it's the fallback if the new server misbehaves.

// 05 - testing

How do I test the new server before DNS points at it?

I point my own machine at the new server with a hosts file entry: the domain and the new server's IP address, on one line. My browser and curl then load the real domain from the new host while everyone else still gets the old one.

Then I work through every page template, search, a form that has to reach a real inbox, the admin and, on a store, a test checkout.

Some hosts hand out a temporary URL instead. Google's guide says a test copy should carry a noindex rule, and that's the block most likely to follow the site into production, so every block I add goes on a list that's cleared before the switch.

// pro tip

Compare, don't just look. I run the same curl commands against both servers for the URLs on the record sheet: status code, final URL, robots meta tag, X-Robots-Tag header and canonical. A page can look perfect in a browser and still send a noindex header.

// 06 - switch day

What do I check over HTTP on switch day?

Once the records change, I confirm the domain resolves to the new IP address from a few public DNS checkers, then run these checks against the live domain.

  1. i.

    Robots.txt is the production file

    I fetch /robots.txt and compare it with the saved copy. A test copy's Disallow: / that travelled across tells Google to stop crawling the whole site.

  2. ii.

    The indexing setting isn't ticked

    WordPress's Discourage search engines from indexing this site box adds a noindex, nofollow robots meta tag to every page when it's ticked. I read the page source to confirm it's gone.

  3. iii.

    Key URLs answer the way they did

    Every URL on the record sheet returns the status code it had before, and old redirects still 301 in one hop.

  4. iv.

    Response time is no worse than the baseline

    Same URLs, same curl command, compared with the dated numbers. Google's Crawl Stats help says Googlebot throttles back when a site responds slowly, and that's where server response and caching work comes in.

  5. v.

    Googlebot can reach the new server

    I run a live test in the URL Inspection tool on a few key URLs and check the host's firewall or bot protection isn't blocking it.

  6. vi.

    Email and verification still work

    I send mail to and from an address on the domain, then check the Search Console property still shows as verified.

// 07 - common problems

What breaks most often after a WordPress host move?

The same handful of faults, and a check above catches each one.

  1. i.

    Error establishing a database connection

    WordPress's documentation says it's usually caused by an error in your wp-config.php file, so I check the database name, user, password and host.

  2. ii.

    Inner pages 404 while the homepage works

    WordPress's documentation points at a corrupted .htaccess or mod_rewrite not being enabled. Resaving the permalinks and the key URL check catch it.

  3. iii.

    A white screen or a critical error

    WordPress's documentation says PHP errors and database errors can both show as a blank white screen. After a move the usual trigger is a different PHP version, which is why I match it.

  4. iv.

    Certificate warnings

    DNS moved before the new server had a valid certificate, so visitors and Googlebot get an error page. The certificate goes in before the switch.

  5. v.

    Email stops arriving

    The MX records didn't move with the zone. The record sheet has every one of them, so they can be put back that day.

// 08 - the week after

What should Search Console show in the week after?

The report that matters most after a host move is Crawl Stats, under Settings, and it's only available for root-level properties. Its host status section checks robots.txt fetching, DNS resolution and server connectivity, which are exactly the three things a host move changes.

In the crawl requests chart I expect a dip right after the switch; Google's guide calls a temporary drop in crawl rate normal. What isn't normal is server errors climbing, or a response time that jumps and stays up.

In the Pages report nothing should change status, because no URL changed. New entries under Excluded by 'noindex' tag or Blocked by robots.txt mean a testing block survived, and I remove it that day. Important pages sliding into Discovered, currently not indexed usually point back at the server. I won't put a date on when everything settles.

// when to hand this over

Changing hosts soon? I can take the Google half of it: the record sheet, the switch-day checks and a week of Crawl Stats watching. The copy can stay with your host or developer, and I'll check their work at each stage.

Book a call on Upwork

Is this your site? Send me the URL.

Book a call on Upwork
// questions - migrations

What else do people ask about this?

Does changing WordPress hosting hurt SEO?

Not by itself, because the URLs don't change. What hurts is a side effect: a noindex left from testing, a firewall that blocks Googlebot, or a slower server. Google's guide says a short dip in crawl rate after the move is normal.

How do I export my entire WordPress site?

Export the files and the database: the whole WordPress folder plus a database dump, or one archive from a migration plugin. Tools, Export isn't enough, since its XML file holds posts, pages, comments, terms and users, not your theme, plugins or uploads.

Is All-in-One WP Migration free?

The plugin is, with limits. Its wordpress.org listing says it's free but offers additional paid commercial upgrades or support, and its own FAQ says the paid Unlimited Extension removes all file size restrictions set by your host. On a bigger site, the import can stop at the host's upload limit.

Do I need the Change of Address tool when I change hosts?

No. Google says the tool isn't for moves where the URL stays the same and only the hosting provider or CDN changes. It's for moving to a new domain, so a host move follows the no URL change guide instead.

Can a WordPress host move have zero downtime?

I don't promise that. Lowering the TTL early and keeping the old server running until its traffic reaches zero keeps any gap small, but DNS caches around the world aren't something anyone controls.

// sources - checked

Where do these rules come from?

Platform and Google documentation, opened and read on the day this was written. Everything else is how I work.

  1. Google Search Central: site moves without URL changes
  2. WordPress Developer Resources: moving WordPress
  3. WordPress Developer Resources: common WordPress errors
  4. WordPress Developer Resources: WordPress backups
  5. WordPress.org documentation: Tools Export screen
  6. WP-CLI: wp db export
  7. WordPress.org plugin directory: All-in-One WP Migration
  8. WordPress.org plugin directory: Duplicator
  9. WordPress.org plugin directory: UpdraftPlus
  10. Search Console Help: Crawl Stats report
  11. Search Console Help: Change of Address tool
  12. WordPress.org documentation: Settings Reading screen
Muhammad Younus, WordPress technical SEO consultant
// who wrote this

One consultant, writing down his own method

I'm Muhammad Younus, a WordPress technical SEO consultant with 8+ years of experience and 100+ client sites fixed. Top Rated Plus on Upwork with a 100% Job Success Score. Every post here is the way I actually do the job, written in the first person because it's one person doing it, remotely, with no team behind the name.

Nothing in these posts is a client I can't name or a number I can't show. Where a figure comes from a client's Search Console, it's from a published case study, and where a rule comes from Google or a platform, the source is linked at the bottom of the post.

// the service behind this post
Muhammad Younus with his arms folded and a relaxed, confident smile
// next step

Want this done on your own site?

Book a call on Upwork, send the URL and read-only Search Console access, and you'll get a written scope for the search side before any work starts. One person does the whole job, remotely.

Book a call on Upwork