Redirect chains: how to find and fix them before they hurt your SEO
Every mature site accumulates redirect chains the way a ship accumulates barnacles. You migrate to HTTPS, then change a slug, then restructure a folder — and three years later /old-page hops through four URLs before a visitor (or Googlebot) sees any content. Each hop costs latency, leaks link equity, and burns crawl budget. The fix is mechanical once you can see the chains. Here's how.
1What a redirect chain actually costs you
A single 301 from an old URL to its replacement is fine. The damage starts at hop two:
| Cost | Why it matters |
|---|---|
| Latency | Each hop is a full round trip — on mobile, 100–300ms each. Three hops can add a second to page load. |
| Link equity dilution | Every redirect passes slightly less authority than the one before. Long chains measurably weaken the ranking signal from your backlinks. |
| Crawl budget waste | Googlebot follows a limited number of hops (roughly five) before giving up — and every hop spent on chains is a hop not spent indexing real pages. |
| Fragility | If any middle URL breaks (an expired domain, a deleted rule), the entire chain 404s and every backlink pointing at the start of it dies with it. |
2See the chain with one command
You don't need a crawler to diagnose a single URL. curl shows every hop and its status code:
curl -sIL -o /dev/null -w '%{url_effective} -> %{http_code}\n' \
--max-redirs 10 https://example.com/old-page/
# or print each hop explicitly:
curl -sIL https://example.com/old-page/ | grep -iE '^(HTTP|location)'
The output tells you everything: how many hops, which status codes (301 vs 302 vs 307), and where the chain lands. If it ends in a 404 or loops back on itself, you've found a bug, not just an inefficiency.
ERR_TOO_MANY_REDIRECTS — the classic loop, usually caused by an HTTP→HTTPS rule fighting a www↔non-www rule, or by WordPress's WP_HOME disagreeing with an .htaccess rewrite.3Know your status codes — 301 vs 302 vs 307
| Code | Meaning | SEO behavior |
|---|---|---|
| 301 | Moved permanently | Passes link equity to the target; Google consolidates signals. The default choice for migrations. |
| 302 / 307 | Temporary | Google keeps the original URL indexed. Fine for A/B tests or short-term moves — harmful if left in place for months. |
| Meta refresh / JS redirect | Client-side | Slow, unreliable for equity passing, and a common hiding place for chains you didn't know you had. |
4Map the chains across the whole site
Single-URL checks find known problems; a crawl finds the ones you forgot. Feed your full URL list — sitemap URLs plus every backlink target from Search Console or your backlink tool — through a crawler (Screaming Frog's "Redirect Chains" report, or a script looping curl) and export every URL where the hop count is 2 or more. Prioritize by backlink equity: a 3-hop chain on a page with 200 referring domains matters far more than one on an orphan page.
5Fix them: collapse every chain to one hop
The rule is simple — every redirect should point directly at the final destination. If A→B→C→D, rewrite the rules so A→D, B→D, and C→D. Practical cleanup workflow:
- Export all chains with hop count ≥2, sorted by backlink count and organic traffic.
- Rewrite each rule to point at the final URL — in
.htaccess, nginx config, or your CDN's edge rules. Never redirect to another redirect. - Update internal links so they reference the final URL directly; internal links that rely on redirects are self-inflicted chains.
- Convert stray 302s that have been live for months into 301s.
- Re-crawl and verify: every URL returns either 200 or exactly one 301 to a 200. Then re-submit the affected URLs in Search Console.
The honest limits
Collapsing chains won't transform rankings overnight — it removes friction, it doesn't add authority. But it's one of the few technical SEO fixes that is unambiguous: every hop you remove is latency returned to users and crawl budget returned to Googlebot. Re-audit after every migration, slug change, or HTTPS tweak, because chains are created by exactly those events.
SITEDOCTOR crawls your site and flags redirect chains, loops, stray 302s and mixed-content hops automatically — alongside SSL, security headers, broken links and Core Web Vitals. Free instant scan, no signup.
Get a free scan →