Migration field notes · Updated 10 November 2026
Redirect chains vs loops: examples and fixes
A chain sends a URL through another redirect before reaching content. A loop revisits a URL and never reaches a final destination. Both can be found in a redirect map, but live testing is still required.
A chain: A → B → C
If A redirects to B and B redirects to C, users and crawlers must follow two hops. When C is the intended equivalent page, change A to point directly to C. Check that C actually returns the desired content.
https://example.com/old → /middle → /new
A loop: A → B → A
A loop never resolves. Remove the rule that sends the visitor back, then point affected sources at the intended final page. A path leading into a loop is also affected.
A self redirect: A → A
A URL mapped to itself is not a useful migration rule. Remove it from the redirect map. Check for differences that may matter before declaring two URLs identical: HTTP and HTTPS, hostnames, path case, query strings and trailing slashes.
A conflict: A → B and A → C
A single source with two destinations makes the intended behaviour unclear. Keep the correct rule, document the decision and verify how your server handles matching precedence.
What a CSV checker can and cannot see
Our free checker follows the rules inside your file. It does not fetch URLs. A clean file can still have a live loop caused by existing application rules, a CDN or a hostname redirect. Test both the map and the deployed site.
Source: Google Search Central’s redirect guidance. For the full workflow, see creating a migration map.