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)

  1. Crawl current site with Screaming Frog and export all live URLs (status 200).
  2. Pull last 16 months of GSC top-1000 URLs by clicks + impressions (the URLs Google still ranks).
  3. Export GA4 top-100 landing pages by sessions (the URLs that still matter).
  4. Export Ahrefs/SEMrush top-500 URLs by referring domains (the URLs with backlinks worth saving).
  5. Dedupe + merge the 4 lists into a master URL inventory CSV.
  6. Note any URLs with non-trivial backlinks (DR>20 referring domain) — these are PRIORITY redirects.
  7. Map every old URL → new URL in redirect-map.csv (keep blanks for "drop completely").
  8. Flag any 1:many or many:1 mappings — these need editorial decisions, not automation.
  9. Identify URLs that will 410 (gone forever) vs 301 (moved) — be explicit, don't default to 301 for deleted content.
  10. Stakeholder sign-off on the redirect map (CEO/founder, marketing lead, dev lead).

Phase 2 · Server-side prep (1 week before)

  1. Confirm hosting allows .htaccess (Apache) or nginx config (you'll need different syntax).
  2. Backup current .htaccess / server config to a dated file.
  3. Write redirect rules in a STAGING .htaccess (not production yet).
  4. Use 301 (permanent) for everything except A/B tests and seasonal pages — those use 302.
  5. Group rules: canonical-host first, then specific 301s, then wildcards/regex last.
  6. Avoid chains: if /a/ → /b/ existed and now /b/ → /c/, change /a/ to point AT /c/ directly.
  7. Use the htaccess-starter.txt in this kit as your scaffold.
  8. Test the staging .htaccess with curl -I against 10 random URLs before deploying.
  9. Force HTTPS at the canonical-host block (don't leave a 2-hop chain http → https → www).
  10. Confirm robots.txt and sitemap.xml will still resolve after the move.

Phase 3 · Internal links (1 week before)

  1. Update header / footer / nav links to point at NEW URLs (not via redirects).
  2. Update sitewide CTAs / buttons / banners to NEW URLs.
  3. Update internal cross-links in the top-100 traffic pages to NEW URLs.
  4. Update canonical tags on the new URLs (each page's canonical = its own NEW URL).
  5. Update hreflang tags if the site is multilingual — every alt-lang URL must move too.
  6. Update Schema.org JSON-LD: url, mainEntityOfPage, sameAs all point at NEW URLs.
  7. Update Open Graph + Twitter Card og:url + canonical to NEW URLs.
  8. Update XML sitemap with ONLY new URLs (drop old ones).
  9. Update RSS feeds with new URLs.
  10. Search the codebase for the old domain literal — kill any hardcoded references.

Phase 4 · External signals (during launch)

  1. Email top-50 highest-value backlink owners asking for a link update (often gets ~30% pickup).
  2. Update social profiles (LinkedIn, X, FB, IG) with new URL.
  3. Update Google Business Profile + Bing Places with new URL.
  4. Update email signature templates company-wide.
  5. Update partner directories where you're listed.
  6. Update DNS TTL to 300 seconds 24h before launch (so reverts are fast if needed).

Phase 5 · Launch day

  1. Push the redirect map to production (deploy .htaccess).
  2. Run redirects-test.sh against the full redirect-map.csv — must be 100% green.
  3. Smoke-test 5 random old URLs in incognito browser — confirm 301 + final URL + correct content.
  4. Submit new sitemap to Google Search Console (and Bing Webmaster Tools).
  5. Submit a Change of Address in GSC (only valid for full-domain moves, not URL renames).
  6. Trigger a re-crawl request in GSC for the homepage + top 5 pages.
  7. Confirm GA4 / Tag Manager / Pixel all fire on new URLs (no double-count from redirected URLs).
  8. Update GSC's URL inspection on 5 high-value old URLs — confirm Google shows the redirect.

Phase 6 · Post-launch monitoring (first 30 days)

  1. Day 1: Re-run redirects-test.sh — log results.
  2. Day 7: Check GSC Coverage report for spike in 4xx errors.
  3. Day 7: Check GSC Performance report — clicks should NOT drop more than 15% week-over-week.
  4. Day 14: Re-crawl with Screaming Frog, check the redirected URLs are returning 200 at the final URL.
  5. Day 30: Compare GA4 organic sessions vs the equivalent period before launch — target ≤ 10% dip.
  6. Day 30: Archive (don't delete) the old .htaccess + redirect-map.csv. You'll need them in 18 months.