The redirect map is the single artefact that determines whether a migration preserves what you have built. Everything else can be rebuilt; the map is what carries a decade of accumulated value across.
It is also usually left until last, produced under deadline pressure, and generated by pattern rather than by value.
Build it from three sources
Any one alone leaves gaps.
- A full crawl of the current site — every URL that exists and is linked.
- Search Console data — every URL receiving impressions, including ones your crawl misses because nothing links to them any more.
- Server logs or analytics — URLs that still receive traffic or crawler visits, including old ones you had forgotten.
The second and third are what separate a complete map from a plausible one. Pages with no internal links can still hold value from external links, and a crawl will never find them.
Classify before mapping
Sort every URL by what should happen to it:
- Direct equivalent exists — the bulk of the map, one to one.
- Merged — several old pages into one new one. Legitimate, and be deliberate rather than lazy about it.
- Genuinely retired with nothing comparable — 410, not a redirect somewhere irrelevant. See soft 404s.
- Already redirecting — update these to point at the final destination, not at an intermediate URL.
The rules that matter
- One to one wherever possible. Blanket rules are efficient and produce wrong destinations for the pages that matter most.
- Never map in bulk to the homepage.
- No chains. If A already redirects to B and B is moving to C, update A to point at C directly. See redirect chains.
- Preserve the query-string behaviour you actually need, and drop what you do not.
- 301, not 302, for a permanent move. See 301 vs 302.
Prioritise by value, not by count
On a large site you cannot hand-check everything. Rank URLs by impressions, traffic and external links, then verify the top few hundred individually and generate the rest by rule.
This is the step that most distinguishes a good map. Pattern rules are fine for the long tail and wrong often enough that your highest-value pages should never depend on them.
Verify before launch
- Run the full old-URL list against the staging environment and confirm every one resolves.
- Check that each resolves in a single hop.
- Confirm destinations return 200, not 404 or another redirect.
- Spot-check that destinations are genuinely equivalent, not merely plausible.
A map that has not been tested against the actual new site is a spreadsheet, not a redirect map.
Frequently asked questions
How long should redirects stay?
At minimum a year, and indefinitely where the cost is trivial. Old links keep being followed long after search engines have reprocessed.
Can I generate it automatically?
Partly. Slug matching handles the long tail; the commercially important URLs need checking.
What about URLs with no equivalent?
410 them. Forcing a redirect to something unrelated is worse than an honest gone status.
Where should redirects be implemented?
At server or CDN level for speed and reliability. Plugin-level works and adds overhead on every request.
Consulting CTA
If you are planning a migration, book an SEO consultation. See also SEO migration.