SEO migration checklist
Everything to check before, during and after moving a website to a new platform, so the rankings you already earned survive the move. Every check below is shown twice: what it takes by hand, and what
does for you.
Of the 28 checks on this page, Sitejump handles 15 automatically, hands you the files or the report for 8, and 5 stay in your own Search Console and analytics accounts.
| Phase | By hand | ![]() |
|---|---|---|
| Before the move | Crawl, export metadata, record a ranking baseline | Free audit returns the inventory and metadata |
| Mapping | Build the 301 spreadsheet row by row | Redirect map generated, CSV and config included |
| New site | Retype titles, alt text, schema, canonicals | Real values handed to the rebuild |
| Launch day | Spot-check redirects and indexability | Verifier tests the live domain for you |
| Weeks 1-8 | Watch coverage and compare to baseline | SEO & GEO report; Search Console stays yours |
1Before you move: freeze what you already have
Almost every ranking lost in a migration was lost here — nobody wrote down what the old site actually had.
| Check | By hand | ![]() |
|---|---|---|
| Full URL inventory, including paginated and language variants | Crawler licence, run and export — hours on a mid-size site | Crawled and listed in the free audit(Automatic) |
| Title, meta description, canonical and robots per URL | Export from the crawler, clean up by hand | Captured page by page(Automatic) |
| Inventory of images, PDFs and linked downloads | Second crawl pass, manual de-duplication | Asset list extracted with the pages(Automatic) |
| Language and region versions, and how they are signalled | Read hreflang tags URL by URL | Locales detected and listed(Automatic) |
| Structured data already published | Spot-check pages in the rich results test | Existing schema recorded per page(Automatic) |
| Ranking baseline: top pages, queries, clicks, impressions | Export from Search Console | Your Search Console export — we never touch it(Stays with you) |
Full URL inventory, including paginated and language variants
By hand: Crawler licence, run and export — hours on a mid-size site
Crawled and listed in the free audit(Automatic)Title, meta description, canonical and robots per URL
By hand: Export from the crawler, clean up by hand
Captured page by page(Automatic)Inventory of images, PDFs and linked downloads
By hand: Second crawl pass, manual de-duplication
Asset list extracted with the pages(Automatic)Language and region versions, and how they are signalled
By hand: Read hreflang tags URL by URL
Locales detected and listed(Automatic)Structured data already published
By hand: Spot-check pages in the rich results test
Existing schema recorded per page(Automatic)Ranking baseline: top pages, queries, clicks, impressions
By hand: Export from Search Console
Your Search Console export — we never touch it(Stays with you)
2Map every old URL to a new one
One row per old URL. A page with nowhere to go is a 404 waiting for a visitor and a signal Google eventually drops.
| Check | By hand | ![]() |
|---|---|---|
| One 301 destination for every old URL | Spreadsheet built row by row | Redirect map generated for every captured page(Automatic) |
| Merged and split pages routed to the right survivor | Manual judgement per page | Proposed mapping you can edit before launch(Assisted) |
| Retired pages: nearest parent or 410 | Manual decision, easy to forget | Flagged as unmapped so nothing is silently dropped(Assisted) |
| Consistent trailing-slash and lower-case rules | Find-and-replace, then hope | Normalised across the whole map(Automatic) |
| Redirect config your host actually reads | Hand-written rules per platform | CSV plus ready-to-drop redirect config(Assisted) |
One 301 destination for every old URL
By hand: Spreadsheet built row by row
Redirect map generated for every captured page(Automatic)Merged and split pages routed to the right survivor
By hand: Manual judgement per page
Proposed mapping you can edit before launch(Assisted)Retired pages: nearest parent or 410
By hand: Manual decision, easy to forget
Flagged as unmapped so nothing is silently dropped(Assisted)Consistent trailing-slash and lower-case rules
By hand: Find-and-replace, then hope
Normalised across the whole map(Automatic)Redirect config your host actually reads
By hand: Hand-written rules per platform
CSV plus ready-to-drop redirect config(Assisted)
3Carry the on-page signals across
The new site should look new to humans and familiar to crawlers. Same intent, same wording on the parts search engines read.
| Check | By hand | ![]() |
|---|---|---|
| Titles and meta descriptions reused on the new pages | Copy-paste per page | Handed to the rebuild as real values, not placeholders(Automatic) |
| One H1 per page and the same heading hierarchy | Rebuild by eye from the old page | Heading structure captured per page(Automatic) |
| Image alt text and filenames carried with the images | Re-upload and retype alt text | Images and alt text extracted together(Automatic) |
| Structured data re-emitted on the new URLs | Rewrite the JSON-LD by hand | Old schema supplied to the rebuild(Assisted) |
| Self-referencing canonicals and hreflang return tags | Template work on the new platform | Specified in the rebuild brief; you confirm in the new project(Assisted) |
| robots.txt and sitemap.xml regenerated, no staging noindex | Manual review before launch | Checked by the launch verifier after you publish(Assisted) |
Titles and meta descriptions reused on the new pages
By hand: Copy-paste per page
Handed to the rebuild as real values, not placeholders(Automatic)One H1 per page and the same heading hierarchy
By hand: Rebuild by eye from the old page
Heading structure captured per page(Automatic)Image alt text and filenames carried with the images
By hand: Re-upload and retype alt text
Images and alt text extracted together(Automatic)Structured data re-emitted on the new URLs
By hand: Rewrite the JSON-LD by hand
Old schema supplied to the rebuild(Assisted)Self-referencing canonicals and hreflang return tags
By hand: Template work on the new platform
Specified in the rebuild brief; you confirm in the new project(Assisted)robots.txt and sitemap.xml regenerated, no staging noindex
By hand: Manual review before launch
Checked by the launch verifier after you publish(Assisted)
4Launch day checks
Thirty minutes of verification here prevents the slow-burn problems that surface weeks later.
| Check | By hand | ![]() |
|---|---|---|
| Top URLs reach their destination in a single 301 hop | Click through a sample and hope it is representative | Verifier tests your old URLs against the live domain(Automatic) |
| No redirect chains or loops | Manual tracing | Reported by the verifier(Automatic) |
| New pages return 200 and are not blocked or noindexed | Per-page inspection | Checked against the live site(Automatic) |
| HTTPS and www / non-www resolve to one canonical host | Host and DNS configuration | Flagged if it is wrong — the fix is in your host(Assisted) |
| New sitemap submitted in Search Console | Submit and confirm | Your Search Console account(Stays with you) |
| Analytics and tags firing before traffic arrives | Test in the new project | Your analytics setup(Stays with you) |
Top URLs reach their destination in a single 301 hop
By hand: Click through a sample and hope it is representative
Verifier tests your old URLs against the live domain(Automatic)No redirect chains or loops
By hand: Manual tracing
Reported by the verifier(Automatic)New pages return 200 and are not blocked or noindexed
By hand: Per-page inspection
Checked against the live site(Automatic)HTTPS and www / non-www resolve to one canonical host
By hand: Host and DNS configuration
Flagged if it is wrong — the fix is in your host(Assisted)New sitemap submitted in Search Console
By hand: Submit and confirm
Your Search Console account(Stays with you)Analytics and tags firing before traffic arrives
By hand: Test in the new project
Your analytics setup(Stays with you)
5The first weeks after launch
Some movement is normal while search engines re-crawl. What matters is whether it recovers on the usual curve.
| Check | By hand | ![]() |
|---|---|---|
| Coverage errors and new 404s triaged | Watch Search Console weekly | Your Search Console — re-run the verifier any time(Stays with you) |
| Clicks and impressions compared page by page to the baseline | Manual comparison against the export | Your Search Console data(Stays with you) |
| Gaps in metadata, unmapped URLs and thin structured data | Another full crawl and audit | SEO & GEO report with suggested improvements(Automatic) |
| Redirects kept in place permanently | Remember not to delete them | Redirect config lives in your project, versioned(Assisted) |
| Periodic re-crawl for broken internal links | Repeat crawl each month | Re-run a free audit whenever you want(Automatic) |
Coverage errors and new 404s triaged
By hand: Watch Search Console weekly
Your Search Console — re-run the verifier any time(Stays with you)Clicks and impressions compared page by page to the baseline
By hand: Manual comparison against the export
Your Search Console data(Stays with you)Gaps in metadata, unmapped URLs and thin structured data
By hand: Another full crawl and audit
SEO & GEO report with suggested improvements(Automatic)Redirects kept in place permanently
By hand: Remember not to delete them
Redirect config lives in your project, versioned(Assisted)Periodic re-crawl for broken internal links
By hand: Repeat crawl each month
Re-run a free audit whenever you want(Automatic)
Start with the inventory
Step one of this checklist is a crawl of your live site. The free audit does exactly that — URL inventory, per-page metadata, languages and an SEO report — before you decide whether to move anything.
Ask the AI assistant 24/7
Sitejump is built and operated by miPlug, a Helsinki-based AI-native Lovable Studio.