SITE MIGRATION CHECKLIST. How to migrate a website without losing traffic
Why do you need a site migration checklist
Site migration is one of the highest-risk SEO operations.
A single mistake during migration can:
wipe out years of organic traffic,
break indexation across thousands of pages,
silently waste crawl budget,
and only become visible weeks after launch, when rankings are already gone.
If you’ve never done a site migration before, this checklist exists to answer one simple question: What exactly do I need to do to migrate a site without losing traffic?
This is not an article and not theory. This is a step-by-step checklist you can follow before, during and after a site migration.
What this checklist helps you avoid
Before migrations, most teams operate under two dangerous assumptions:
“We’ll catch issues after launch” → By then, traffic is already lost.
“Search engines will figure it out” → Bots don’t fix broken canonicals, redirects, or rendering issues.
This checklist helps you:
see what search bots actually crawl,
validate critical elements before launch,
detect issues early instead of reacting to damage,
and keep traffic stable throughout the migration.
How to use this checklist
Follow the steps in order
Do not skip steps, even if they feel “minor”
Use it as a validation framework, not just a to-do list
You don’t need prior migration experience – this checklist is designed to guide you through the process.
Now follow the checklist below step by step. Do not skip steps.
Chrome DevTools / Postman testing with Googlebot user agent
Phase 2 – Prepare for Real Users (A/B Testing)
4. Launch A/B Test – Start With a Small Percentage
Start with 1% of users (large sites) or 10% (small sites)
Compare conversion rate
Compare bounce rate
Compare cart additions & checkout funnel
Identify UI/UX bugs
5. Fix All User-Facing Issues Before SEO Testing
Cart issues
Payment failures
Slow SSRRendering glitches
Lazy loading edge caseserstanding your real visibility across the entire search ecosystem.
6. Keep JavaScript Version Hidden From Search Engines (During A/B Tests)
This step applies ONLY during user A/B testing phase – before opening JS version to search engines
Search engines (Googlebot, Bingbot, etc.) see only the old HTML version
The JS version is shown only to real users participating in A/B tests
Proxy / server rules detect bots by User-Agent and/or IP and always return the HTML version
Checked in GSC Live Test and logs that Googlebot does not receive the JS version during A/B tests
Phase 3 – Prepare for Search Engines
7. Prepare a Test Pool of URLs
Product pages
Category pages
Filter pages
Blog/articles
Static content pages
Rules:
Choose URLs frequently crawled by Google
Do NOT choose top-traffic URLs
Create segments based on page templates
8. Collect Baseline Data (Before Migration)
Collect at least 4–12 weeks of data:
Positions
Clicks
Impressions
CTR of ranking keywords per URL
Organic conversions
Crawl frequency
Status codes
Server load
Core Web Vitals
Logs (bot activity patterns)
9. Create Monitoring Dashboards
Use tools (e.g., JetOctopus, GSC, GA4):
HTML vs JS comparison dashboard
Rendering performance dashboard
SSR availability alerts
Log anomalies
Indexation changes
Content changes (titles/meta/H1)
Phase 4 – Enable JavaScript for Search Engines (Limited Test)
10. Allow Googlebot to Access Only Test URLs
Open a small test set
Block all other URLs
Maintain strict proxy settings
11. Monitor Rendering & Indexing
Check:
SSR HTML vs rendered DOM
Canonicals
Meta robots tags
Hreflang
Structured data
Internal links
Missing content
JS errors
Added/removed text
Page size changes
Load time after JS execution
12. Monitor Bot Behavior
Use logs to verify:
Crawl frequency spike is normal
No server overload
Status codes stable
No redirect loops
No blocked JS resources
13. Compare Before/After Performance
Check for each test page:
Positions
Clicks & impressions
CTR
Keywords count
Rendering time
Indexation status
Phase 5 – Full Migration Ready Checklist
Your site is ready ONLY if all points below are TRUE:
14. User Metrics
No sharp drop in conversions compared to the HTML baseline
No checkout or cart bugs
Performance is stable
15. SEO Technical State
SSR works for every template
Metadata is correct on both SSR & JS
The following key elements are present and consistent in SSR HTML and rendered JS: – <title> – meta description – meta robots – canonical, hreflang (if used) _ <h1> – main content / key product information – internal links (navigation, breadcrumbs, related items) – structured data
Page returns the correct status code
CWV are stable (especially LCP, INP and CLS)
16. Search Engine Test Results
Test pages did not lose rankings
Indexation is correct
Googlebot crawls efficiently
Rendering is successful
No major JS errors
Logs show typical behavior
If all checks are green → you’re ready!
Phase 6 – Controlled Full Migration
17. Migrate in Stages
Recommended order:
1st: low-traffic subdomain
2nd: medium-traffic sections
3rd: final migration of main domain
18. Continue Daily Monitoring
SSR tests after each release
Rendering tests
GSC positions
Logs anomalies
Content changes
Crawl frequency
Indexation status
19. Have a Rollback Plan
Instant rollback to previous version
Revert SSR or proxy rules
Freeze deployments
Alert devops + SEO team
Phase 7 – Post-Migration Stabilization
20. Weekly Audit
Crawl entire site with JS enabled
Compare HTML vs JS changes
Identify missing elements
Detect template issues
Monitor indexing & rankings
21. Monthly Audit
Full performance analysis
Log analysis
GSC trends report
Identify long-term JS errors
Review Core Web Vitals
22. Continue Improving JS SEO
Reduce JS execution time
Optimize SSR
Minify JS bundles
Reduce unused JS
Improve lazy loading
Optimize content loading paths
🎉 Congratulations – You Are Ready to Migrate to JavaScript Safely
From checklist to confidence
This checklist helps you structure a safe site migration. But confidence comes from validation – not assumptions.
If you’d like expert validation of your site migration plan or help reviewing critical steps from this checklist, book a migration consultation with our team.