Pre-Migration Redirect Checklist
50 items · the order matters · tick each before going live
From kunaldabi.com/301-vs-302-redirections/ · Kunal Singh Dabi · KD Digital · WhatsApp +91 96366 50036
Phase 1 · Discovery (do this 2 weeks BEFORE move)
- Crawl current site with Screaming Frog and export all live URLs (status 200).
- Pull last 16 months of GSC top-1000 URLs by clicks + impressions (the URLs Google still ranks).
- Export GA4 top-100 landing pages by sessions (the URLs that still matter).
- Export Ahrefs/SEMrush top-500 URLs by referring domains (the URLs with backlinks worth saving).
- Dedupe + merge the 4 lists into a master URL inventory CSV.
- Note any URLs with non-trivial backlinks (DR>20 referring domain) — these are PRIORITY redirects.
- Map every old URL → new URL in redirect-map.csv (keep blanks for "drop completely").
- Flag any 1:many or many:1 mappings — these need editorial decisions, not automation.
- Identify URLs that will 410 (gone forever) vs 301 (moved) — be explicit, don't default to 301 for deleted content.
- Stakeholder sign-off on the redirect map (CEO/founder, marketing lead, dev lead).
Phase 2 · Server-side prep (1 week before)
- Confirm hosting allows .htaccess (Apache) or nginx config (you'll need different syntax).
- Backup current .htaccess / server config to a dated file.
- Write redirect rules in a STAGING .htaccess (not production yet).
- Use 301 (permanent) for everything except A/B tests and seasonal pages — those use 302.
- Group rules: canonical-host first, then specific 301s, then wildcards/regex last.
- Avoid chains: if /a/ → /b/ existed and now /b/ → /c/, change /a/ to point AT /c/ directly.
- Use the htaccess-starter.txt in this kit as your scaffold.
- Test the staging .htaccess with curl -I against 10 random URLs before deploying.
- Force HTTPS at the canonical-host block (don't leave a 2-hop chain http → https → www).
- Confirm robots.txt and sitemap.xml will still resolve after the move.
Phase 3 · Internal links (1 week before)
- Update header / footer / nav links to point at NEW URLs (not via redirects).
- Update sitewide CTAs / buttons / banners to NEW URLs.
- Update internal cross-links in the top-100 traffic pages to NEW URLs.
- Update canonical tags on the new URLs (each page's canonical = its own NEW URL).
- Update hreflang tags if the site is multilingual — every alt-lang URL must move too.
- Update Schema.org JSON-LD: url, mainEntityOfPage, sameAs all point at NEW URLs.
- Update Open Graph + Twitter Card og:url + canonical to NEW URLs.
- Update XML sitemap with ONLY new URLs (drop old ones).
- Update RSS feeds with new URLs.
- Search the codebase for the old domain literal — kill any hardcoded references.
Phase 4 · External signals (during launch)
- Email top-50 highest-value backlink owners asking for a link update (often gets ~30% pickup).
- Update social profiles (LinkedIn, X, FB, IG) with new URL.
- Update Google Business Profile + Bing Places with new URL.
- Update email signature templates company-wide.
- Update partner directories where you're listed.
- Update DNS TTL to 300 seconds 24h before launch (so reverts are fast if needed).
Phase 5 · Launch day
- Push the redirect map to production (deploy .htaccess).
- Run redirects-test.sh against the full redirect-map.csv — must be 100% green.
- Smoke-test 5 random old URLs in incognito browser — confirm 301 + final URL + correct content.
- Submit new sitemap to Google Search Console (and Bing Webmaster Tools).
- Submit a Change of Address in GSC (only valid for full-domain moves, not URL renames).
- Trigger a re-crawl request in GSC for the homepage + top 5 pages.
- Confirm GA4 / Tag Manager / Pixel all fire on new URLs (no double-count from redirected URLs).
- Update GSC's URL inspection on 5 high-value old URLs — confirm Google shows the redirect.
Phase 6 · Post-launch monitoring (first 30 days)
- Day 1: Re-run redirects-test.sh — log results.
- Day 7: Check GSC Coverage report for spike in 4xx errors.
- Day 7: Check GSC Performance report — clicks should NOT drop more than 15% week-over-week.
- Day 14: Re-crawl with Screaming Frog, check the redirected URLs are returning 200 at the final URL.
- Day 30: Compare GA4 organic sessions vs the equivalent period before launch — target ≤ 10% dip.
- Day 30: Archive (don't delete) the old .htaccess + redirect-map.csv. You'll need them in 18 months.