Redirect Chain Analyzer
Paste a redirect map and see every chain and every loop it contains, how many hops each one takes, and the flattened one-hop rules that replace the whole lot.
Nothing you type here is uploaded, stored or sent anywhere. It all runs in your browser.
What a chain actually costs
Not much per hop, and more than you would like in aggregate. Three things are going on, and they are usually confused with each other.
- Crawl budget, which is the real one. Every hop is a request. A site with forty thousand redirects, each two hops long, is asking Googlebot to spend eighty thousand requests arriving at forty thousand pages. On a large site that is the difference between your new URLs being indexed this month and next quarter.
- A limit on how far anything follows. Google's documentation describes Googlebot following up to ten redirect hops in a single crawl attempt; past that it records a redirect error and picks the trail up on a later crawl, if it comes back. A browser is more patient and still gives up — Chrome stops at twenty and shows the visitor an error. So a long enough chain is not slow, it is broken.
- Equity, which is the one everyone leads with and the one with the least evidence. The widely repeated "15% lost per redirect" is not a figure Google has ever confirmed, and Google's own people have said publicly that 301s do not lose PageRank. Assume the loss per hop is small or zero, and fix chains for the first two reasons.
The fix never varies: point every old URL directly at the final destination. Not at the next link in the chain — at the end of it. That is what the flattened rules above are.
Loops, and where they come from
A loop is a chain with no end. The browser bounces until it gives up and shows an error, the page is uncrawlable, and nothing about it appears in a report that only checks status codes, because every response in a loop is a perfectly valid 301. They almost always come from two rules written months apart by two people, or from a rule that redirects a URL to itself in a form the server then rewrites back.
The second case is the one to watch: a rule sending /pricing to /pricing/ on a server that strips trailing slashes is an infinite loop, and it looks completely reasonable in the config file. That is why this tool treats a trailing-slash difference as the same URL by default and tells you where the difference is, rather than quietly walking past it.
Mixed relative and absolute is not a style question
Half a redirect map written as /old-page and half as https://www.example.com/old-page means the rules cannot see each other, so a chain that exists in production looks like two unrelated one-hop rules in the file. Resolving everything against one root, as this tool does, is what makes the chain visible. Do the same in the config: pick one form and convert the whole map to it.
After you have the flattened map
Two things. Keep the intermediate rules in place — an old URL you dropped from the map is a 404 for anyone who still has the link, and the chain you flattened was only reachable because those rules existed. And turn the flattened list into real config with the 301 redirect generator, which writes the Netlify, Apache, Nginx or WordPress syntax for you.
Questions people ask
How many redirect hops is too many?
One is the target and two is tolerable. Google's documentation describes Googlebot following up to ten hops in one crawl attempt before it records an error and tries again later, so three or more is a problem worth fixing on a schedule rather than an emergency — unless the chain is long, in which case the URL is effectively unreachable.
Do redirect chains lose link equity?
Less than the folklore says. The "15% per hop" figure has never been confirmed by Google, and Google's search engineers have stated publicly that 301 redirects do not lose PageRank. The costs that are demonstrable are crawl budget, latency for the visitor, and the hop limit. Fix chains for those reasons.
Should I delete the intermediate redirects after flattening?
No. The middle URLs may still be linked from somewhere you cannot see, and removing their rules turns those links into 404s. Add the flattened rules, keep the old ones, and only retire a rule once its source stops appearing in your logs — which for a link that once mattered can be years.
Why does the tool call a trailing-slash difference a loop?
Because on a server that normalises trailing slashes it is one: the rule sends /a to /a/, the server rewrites /a/ back to /a, and the browser bounces forever. Switch the trailing-slash setting to strict if your server genuinely treats the two as distinct URLs, and the same map is read as an ordinary chain.
Is my redirect map uploaded anywhere?
No. It is parsed and walked in your browser, and nothing is sent, logged or stored. A redirect map is a fairly complete history of a site's structure, so this is not a small point.
Related tools
Chains usually appear during a migration
And a migration is when the links you spent years earning are easiest to lose. If one is coming, get the redirect map reviewed before it ships, not after.