Free Template

Site Migration Checklist.

47 items across pre-migration, cutover and post-migration. The same checklist we run every time we migrate a client site — Webflow → Next.js, WordPress → Shopify, domain change, replatform. Battle-tested.

47 items · 3 phases · 100% generic

01 · Why this matters

Migrations are where SEO equity dies.

A bad migration kills 30–80% of organic traffic and takes 6–12 months to recover — when recovery happens at all. The damage is rarely one big mistake. It's a stack of small ones: redirect chains, lost canonicals, a stale sitemap, a robots.txt that ships with Disallow: /, schema that didn't make the cutover, a CDN that breaks image paths.

This checklist exists because every migration looks different on the surface but the failure modes are identical underneath. Run all 47 items, and the worst-case scenario is a 1–2 week dip while Google re-crawls. Skip them, and you ship the dip into a quarter-long recovery project.

02 · The checklist

47 items, 3 phases.

Run pre-migration in the 1–2 weeks before cutover, migration day on the day of, and post-migration across the 30 days after. Skip nothing — the items that look optional are usually where the equity gets lost.

Phase 01

Pre-migration

Audit + capture baseline. 1–2 weeks before cutover.

Lock the migration date

Avoid product launches, major holidays, and your highest-traffic week.

Freeze the dev/staging environment

No content edits, no theme changes, no plugin installs from this point until post-cutover.

Full URL crawl

Screaming Frog or Sitebulb. Export every URL — pages, redirects, parameters, sitemap entries.

Export GSC baseline

Top 1000 pages, top 1000 queries, current sitemaps, current coverage status. 16-month window.

Export GA4 baseline

12-month traffic by source, top conversion paths, top landing pages. Will be the recovery benchmark.

Export backlink profile

Ahrefs / SEMRush / Majestic. Top 1000 referring domains, anchor text distribution, top linked pages.

Capture Core Web Vitals

PageSpeed Insights or CrUX. LCP, INP, CLS for top 50 pages.

Document schema markup

Every page type's JSON-LD. Article, Product, FAQ, Organization, BreadcrumbList — all of it.

Export hreflang inventory

Every language alternate, every region. Symmetric or it breaks during the cutover.

Export robots.txt and sitemap.xml

The current state. Compare against the new state during QA.

Map internal linking

Top 500 internal links — anchor text, source, target. Flag pillar / hub pages.

Snapshot ranking baseline

Top 100 keywords + current positions + monthly volume. Source of truth for recovery tracking.

Snapshot indexed pages count

site:domain query. Will track this daily after cutover.

Identify critical pages

Top 10% by traffic and revenue. These get extra QA on day-of and priority re-crawl post.

Communicate the plan

Stakeholders, content ops, customer support, partner accounts. Everyone knows the cutover window.

Phase 02

Migration day

Cutover. Every step QA'd before sign-off.

Deploy 301 redirect map

Every old URL → new URL. No chains. No loops. Tested in staging first.

QA top 50 redirects manually

Hit each one and confirm it lands on the right new URL with HTTP 301, not 302 or 307.

Update robots.txt

New domain rules. Confirm no accidental Disallow: / from staging config.

Submit new sitemap.xml

Fresh sitemap, new URLs, last-modified timestamps. Submitted to GSC + Bing.

Verify all canonical tags

Self-referential canonicals on every page, pointing to the new URLs.

Verify hreflang symmetric

Every language alternate points to a valid new URL, and the alternates point back.

Confirm schema preserved

Rich-results test on top 20 pages. Article, Product, FAQ, Org, Breadcrumb all parsing.

Confirm SSL valid

HTTPS everywhere. No mixed content warnings. Cert chain valid.

Update internal links

No internal link points to an old URL. Crawler-verified.

Verify image paths and alt text

All images load on the new domain. CDN paths preserved. Alt text not stripped.

Verify tracking codes live

GA4, GTM, GSC, Bing Webmaster, Hotjar — all firing on the new domain.

Confirm GA4 data stream

GA4 property points at the new domain. Test events appearing in real-time view.

Customise the 404 page

Helpful, on-brand, links to top categories. Not a default Apache page.

Validate structured data

Run rich-results test on every page type. Fix anything that throws an error or warning.

Verify meta titles and descriptions

Preserved from the old site, or improved per the new content brief. Never blank.

Final smoke test

Top 20 pages render, top 5 conversion flows complete, search works, forms submit.

Phase 03

Post-migration

Recovery monitoring. 30 days after cutover.

Submit GSC change-of-address

Only if the domain itself changed. Use the Change of Address tool, not just a redirect.

Submit fresh sitemap to GSC

New sitemap URL, request indexing.

Submit fresh sitemap to Bing

Bing Webmaster Tools. Often forgotten — Bing now powers ChatGPT search results.

Request indexing of priority pages

URL Inspection tool, top 50 priority pages. Manually queue them for re-crawl.

Day 1: 404 monitoring

GSC + server logs. Any new 404s get a redirect added the same day.

Day 1: 5xx error monitoring

Server logs and uptime monitor. Hosting overload during re-crawl is common.

Daily indexation count (week 1)

site:domain query each morning. Should climb back to baseline within 7–14 days.

Daily ranking checks (week 1–2)

Top 100 keywords. Expect a 1–2 week dip; flag anything that hasn't recovered by week 3.

Daily traffic comparison (30 days)

GA4 vs baseline, segmented by channel. Organic recovery is the headline metric.

Week 1: redirect chain audit

Re-crawl, confirm no chains and no loops. Fix any chain longer than 1 hop.

Week 1: outreach to top referrers

Top 20 referring domains. Ask for direct-link updates so equity passes faster.

Week 2: schema validation pass

Rich-results test on top 50 pages. Fix anything that broke during the cutover.

Week 2: Core Web Vitals re-check

Should be same or better. If worse, ship perf fixes this week, not next.

Week 4: GSC coverage review

Full Coverage report. Resolve every error and warning before closing the migration.

Month 1: full recovery confirmation

Traffic + rankings vs baseline. Document the gap and the path to closing it.

Document lessons learned

What broke, what worked, what the next migration adds to this checklist. The checklist evolves.

47 items

Critical mistakes

The 4 ways migrations actually fail.

Redirect chains

Old URL → intermediate → new URL. PageRank dilutes at every hop. Audit and flatten before launch.

Staging robots.txt shipped to production

Disallow: / on staging. Forgotten on cutover day. Site disappears from Google in 48 hours.

Schema dropped during the cutover

New theme, new template — old structured data not ported. Rich results vanish, AI engines lose citation hooks.

No baseline = no recovery proof

If you didn't snapshot rankings and traffic before cutover, you can't prove recovery to anyone — including yourself.

FAQs

How long should a recovery dip last?

1–2 weeks of mild ranking volatility is normal as Google re-crawls and re-indexes. By week 3, baseline rankings should be back. By week 4, traffic should be back. Anything beyond that is a sign one of the 47 items got missed — usually redirects, robots.txt, or schema.

Do I need GSC's Change of Address tool?

Only if the root domain itself is changing (example.com → newexample.com). For path or theme changes on the same domain, the 301 redirect map is enough. The Change of Address tool tells Google to consolidate the entire property; redirects tell it to consolidate URL-by-URL.

Can I split the migration into phases?

Yes — and you should, for big sites. Migrate by content type or section. Run the post-migration phase for each batch. The risk of a big-bang migration is that if something breaks, you're recovering on the entire site at once. Phased migrations limit the blast radius.

What's different about an AI-search-era migration?

Two things. First, schema validation matters more than ever — AI engines parse JSON-LD to decide what to cite, and a broken schema kills your AI mention rate. Second, brand-term resolution: if AI engines were already citing your old domain, give the rebrand 60–90 days to propagate through their training and retrieval before the citations re-stabilise.

How do I monitor AI engine citations through a migration?

GA4 catches AI traffic via referrer (see our Track AI Traffic in GA4 template). For citations themselves — when AI engines mention your brand without sending a click — you need a dedicated tracker. SEOTopSecret's AI Visibility Tracker watches citation volume across ChatGPT, Gemini, Claude, Perplexity and AI Overviews so you can confirm the brand survived the rebrand on the AI surface, not just on Google.

After the cutover

Monitor recovery without spreadsheet hell.

The post-migration phase is 16 daily checks for 30 days. SEOTopSecret's Rank Tracking + Success Metrics turn that into one dashboard — daily ranking deltas vs your baseline, indexation velocity per URL, and AI citation tracking across the 5 engines. The recovery you'd be eyeballing in spreadsheets shows up as a single chart.

See Rank Tracking
Ready to start?

Your Growth Operating System Starts Here

Connect GSC + GA4. See your data in the OS. Your first content brief, technical audit, and rank baseline — ready within hours.

7-day free trial
Cancel anytime
Live in under 2 minutes