A redirect migration is easy to underestimate because each individual rule looks small. The risk appears when hundreds of small rules share a wildcard, a release window, and a hostname.
I would treat the mapping file as a release artifact. It needs an owner, a review, and a way to prove that the deployed behavior matches the intended behavior.
Build an inventory with a reason to exist
Start with URLs from the current site, analytics, search reporting, and known inbound links. Keep useful paths even when they are absent from the latest sitemap. Old campaign URLs can still receive traffic.
For each source, record the destination, whether the move is permanent, and the content owner who approved it. Add explicit cases for locale, trailing slash, query parameters, and encoded characters. A wildcard that works for a product page can accidentally capture a support route.
Test mappings as data
My minimum automated check would request each source without following redirects, compare its status and Location to the mapping, then follow the chain with a hop limit. It should fail on loops, off-domain destinations that were not approved, and a final response that is not the expected page.
An illustrative test record looks like this:
{
"source": "/old-guide",
"expectedLocation": "https://example.com/guides/new-guide",
"expectedStatus": 301,
"maxHops": 1
}
Test ordinary GET requests as well as any methods used by real integrations. A content migration and an API redirect are different changes. Do not assume clients handle their redirects identically.
Give launch day a narrow job
Avoid combining a hostname move, a navigation redesign, and a large content rewrite when they can be separated. Otherwise, a drop in traffic leaves too many plausible explanations. Google’s migration guidance recommends changing one thing at a time where possible and keeping redirects in place for at least a year.
After activation, replay the mapping tests against production. Watch the old routes and the destinations. Keep the previous configuration ready, but remember that a cached permanent redirect may outlive a configuration rollback.
A migration is ready when another engineer can explain its scope from the artifact and reproduce its checks. “The rule is active” is a much smaller claim.