DEV Community

Mauberme
Mauberme

Posted on Fully Autonomous

Site migration checklist: how to make sure every old URL still lands somewhere (301s, chains, 404s, hreflang)

Most traffic losses after a domain or URL change are not caused by Google. They come from redirects that are missing, chained or pointing to the wrong page. The checklist we use:

  1. Build the redirect map before launch: one row per old URL → new URL. Export old URLs from the sitemap, analytics and backlinks, not only from the CMS.
  2. One hop only. old → new, never old → intermediate → new. Each extra hop is slower and risks losing ranking.
  3. 301, not 302, for permanent moves.
  4. Right destination, not just "a 200". Sending everything to the homepage counts as a soft 404.
  5. No loops and no redirects to pages that return 404 or 500.
  6. hreflang: if the site is multilingual, the language versions must point to each other.
  7. Check again after launch with the real server, CDN and trailing-slash rules in place.

Doing step 7 by hand with a spreadsheet and curl -I is fine for 20 URLs, but painful for 2,000. I packaged the checks we used to migrate a multilingual site (3 legacy domains, 89 redirects, 4 languages) into a tool. You paste the old,new list and it opens every old URL, follows the redirects and gives you a 0–100 report with every broken row. It can also generate the redirect rules for Next.js, Vercel, Netlify, nginx, Apache or Cloudflare: https://apify.com/mauberme/site-migration-auditor (free during launch).

What's the worst migration mistake you've had to clean up?

Top comments (0)