SEO-09
Redirect chain
What the check measures
The finding goes to a page reached through a redirect chain longer than 2 hops. The threshold lives in config/ under seo.SEO-09 as max_, is marked PROPOSAL, and the report gives the actual hop count.
The number happens to match ACC-04 in the core set, but it is a separate value in a different file. That is deliberate, so it can be changed independently. The difference between the two findings is the lens: ACC-04 talks about availability to an AI crawler, SEO-09 about crawl budget and speed for a search engine.
When the check does not know, it stays quiet. If the module runs over stored HTML without a fresh crawl, the redirect chain is unavailable, and the check then reports nothing rather than pretending zero. So it does not mean you have no chains; it means we did not see them this time.
What the check does not do: it does not distinguish 301 from 302, does not count redirects off-domain, and cannot see redirects performed by JavaScript or by <meta http-. The finding is page-level; severity is warning.
How strong the evidence is
We recommend it because it does no harm or has some other benefit, but we promise nothing about whether it makes language models cite you. Nobody has demonstrated that yet.
For visibility in AI answers we have no documented effect. And there is one more thing to admit, because this is exactly the place where it would be easy to lie.
Google's documentation on redirects states no limit on chain length (verified on 2026-09-12 by reading the whole page, not from memory). It describes redirect types and how to implement them; on how many hops is too many it says nothing.
So the threshold of 2 is our setting and we do not claim anything flips past it. What we can claim: every hop is one more request: it slows the page for a visitor and consumes part of what a search engine spends on your site each day. On a fifty-page site that does not matter; on a fifty-
The practical conclusion: treat it as hygiene, not as a fault. And when you do shorten chains, do it first where people actually travel. The difference between one and three hops is measurable for a visitor on a phone.
How to fix it
Chains accumulate in layers, and they are nearly always these three stacked on each other:
http://→https://- no
www→www(or the reverse) - the old URL structure → the new one after a rebuild
The fix is the same in every case: redirect from the original URL straight to the final destination, not via waypoints. Rules can be merged into one that handles scheme and domain at once, instead of two rules in sequence.
Verify from outside, not in your configuration; a browser shows only the result and you will miss the intermediate steps:
curl -sIL https://your-domain/old-url | grep -iE '^HTTP/|^location'- A permanent move is a 301. A
302says “come back here next time” and preserves the chain. - Do not delete old redirects. Inbound links still use them; just shorten them to a single hop.
- Check for loops after editing: rewritten rules create them easily, and
SEO-35only spots them when the crawl eventually escapes.
What the report says about it
Finding description
The crawler followed [hops] redirects before reaching the final response (the recommended maximum is [max]). Each hop costs time and one extra request. Do not add lost “authority” to that: Google has repeatedly stated that 3xx redirects lose no PageRank at all. This is a standard recommendation for classic search engines (Google/Bing); we have no evidence it affects visibility in AI assistant answers.
Recommendation
Shorten the chain to a single direct redirect (301) from the original URL straight to the final destination.
Sources
- Google Search Central: Redirects and Google Search (accessed 2026-09-12)
Text verified 2026-09-12