Learn
Redirect Chains: Why They Accumulate and How to Collapse Them
Nobody designs a three-hop redirect. They appear when three separate rules each add one, and none of their authors knew about the others.
Run a fresh DomainLens audit and use the report as your priority list.
How a chain forms
Each rule is reasonable on its own. Force HTTPS. Strip www. Add a trailing slash. Redirect the old URL structure. Applied independently, a request that violates all four takes four hops before it reaches content.
That is why chains are almost always an accident of layering rather than a design decision, and why the fix is usually one combined rule rather than four adjusted ones.
http://www.example.com/old-page
-> 301 https://www.example.com/old-page (HTTPS rule)
-> 301 https://example.com/old-page (www rule)
-> 301 https://example.com/old-page/ (slash rule)
-> 301 https://example.com/new-page/ (content rule)
-> 200
# What it should be:
http://www.example.com/old-page
-> 301 https://example.com/new-page/
-> 200
What a chain actually costs
Google follows chains — up to a limit, generally cited as around five hops before it gives up and treats the URL as an error. So a three-hop chain is not usually fatal.
The costs are real and modest: each hop is a full round trip, so users wait longer and Googlebot spends more of its budget per page. On a large site, thousands of URLs each taking three fetches instead of one is measurable crawl waste.
| Hops | Verdict | Action |
|---|---|---|
| 1 | Correct | None |
| 2 | Tolerable | Collapse when convenient |
| 3+ | Worth fixing | Combine the rules |
| 5+ | Google may stop following | Fix now |
| Loop | Page unreachable | Fix immediately |
Loops, and what causes them
A loop means the page is completely unreachable — browsers report too many redirects and the URL is effectively deleted from the web. The causes are usually a disagreement between two layers.
The classic is a CDN or proxy terminating HTTPS and forwarding to the origin over HTTP, while the origin has its own rule forcing HTTPS. The origin redirects to HTTPS, the proxy forwards over HTTP again, and neither side is wrong from its own perspective.
- Cloudflare Flexible SSL against an origin that forces HTTPS — the single most common cause.
- A trailing-slash rule that adds and a framework rule that removes.
- Two www rules pointing in opposite directions in different config files.
- A redirect rule matching its own output because the pattern is not anchored.
Finding and collapsing them
- 1Follow each old URL and record every hop, not just the final destination.
- 2Group the chains by pattern — they will share two or three underlying rules.
- 3Write one rule that jumps to the final form, handling scheme, host and path together.
- 4Update your own internal links to point at the destination directly, so they never enter a redirect at all.
- 5Re-run the check from a cold cache and from outside your network.
# Every hop, with its status
curl -sIL https://example.com/old-page \
| grep -Ei '^(HTTP|location)'
# Count the hops
curl -sIL https://example.com/old-page -o /dev/null \
-w '%{num_redirects} hops -> %{url_effective}\n'
Fix the links, not just the chain
Collapsing a chain to one hop is the right fix for outside visitors and old bookmarks. It is not the fix for your own site: internal links should point at the final URL so they never redirect at all. A site whose navigation points at URLs that redirect is paying a round trip on every click for no reason. See internal linking strategy and HTTP status codes .
How DomainLens contributes
DomainLens reports the full redirect chain and hop count for the URLs it audits, so a rule that quietly added a hop is visible rather than inferred. Trace one URL with the redirect checker .
- How many redirects is too many?
- One is correct, two is tolerable, three or more is worth collapsing. Google generally stops following at around five hops.
- Do redirect chains lose link equity?
- Google has said no PageRank is lost through redirects. The cost is latency and crawl budget rather than lost authority.
- What causes a redirect loop?
- Two layers disagreeing — most often a proxy forwarding over HTTP to an origin that forces HTTPS. Each side is behaving correctly in isolation.
- Should internal links point through redirects?
- No. Update them to the final URL. Redirects exist for outside visitors and old bookmarks, not for your own navigation.