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 TrackingYour 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.