Redirect Chains Explained

How redirect chains form, why they're bad for SEO and performance, how to detect them, and how to fix them by pointing all redirects directly to the final destination.

A redirect chain is what happens when URL A redirects to URL B, which redirects to URL C, which redirects to URL D. Instead of one clean hop from old to new, you get a series of hops that wastes time, confuses search engines, and degrades user experience.

For the full picture on redirect types and status codes, see our HTTP Redirect Guide. This article focuses on chains specifically: how they form, why they matter, and how to eliminate them.

What a redirect chain looks like

A single redirect is clean:

https://example.com/old --> https://example.com/new
                            (1 hop, fast, clean)

A redirect chain is not:

https://example.com/page-v1
  --> https://example.com/page-v2
    --> https://www.example.com/page-v2
      --> https://www.example.com/page-v3
        --> https://www.example.com/articles/page
            (4 hops, slow, messy)

Each hop adds latency, burns crawl budget, and dilutes link equity. Three or more hops is a chain. One or two hops is normal.

How redirect chains form

Chains rarely happen on purpose. They accumulate over time through a series of individually reasonable decisions.

1

Initial redirect

In 2020, you move /blog/my-post to /articles/my-post. You set up a 301 redirect. Clean and correct.

2

Domain change

In 2022, you rebrand and move from example.com to newbrand.com. You redirect all old URLs to the new domain following your site migration checklist. Now /blog/my-post redirects to /articles/my-post, which redirects to newbrand.com/articles/my-post. Two hops.

3

URL restructuring

In 2024, you reorganize your content. /articles/my-post becomes /resources/guides/my-post. Now you have three hops.

4

HTTPS enforcement

Your CDN adds an HTTP-to-HTTPS redirect. Now any HTTP link adds yet another hop. Four hops for some users.

Each individual redirect made sense. But nobody went back to update the original redirects to point directly to the final destination. This is the root cause of almost every chain.

Why redirect chains are bad

Performance

Every hop in a redirect chain requires a full HTTP round trip. On a mobile connection with 100ms latency, a 4-hop chain adds 400ms before the user sees any content. That is before DNS resolution, TLS handshakes, and actual content loading.

HopsAdded Latency (100ms RTT)User Impact
1 hop~100msImperceptible
2 hops~200msBarely noticeable
3 hops~300msNoticeable delay
4+ hops~400ms+Users start bouncing

SEO impact

Google follows redirect chains, but with diminishing patience:

  • Crawl budget waste: Googlebot has a crawl budget for your site. [1] Every hop in a chain consumes part of that budget following redirects instead of discovering new content.
  • Indexing delays: Longer chains mean it takes longer for Google to discover and index the final URL. For large sites, this compounds quickly.
  • Link equity: Google has confirmed that 301 redirects pass full ranking signals. [2] But long chains increase the chance of Googlebot encountering an error or timing out before reaching the final URL.

Google's redirect hop limit

Google follows up to 10 redirect hops before giving up. Most browsers stop at 20. But hitting these limits means something is seriously wrong. The real damage happens well before those limits. [3]

User experience

Users on slow connections feel every hop. Users with strict privacy settings or browser extensions may have redirect-following disabled or limited. And if any link in the chain breaks, the entire path fails. One broken hop means every URL earlier in the chain returns an error. See What Happens When Redirects Break for the full impact.

Trace your redirect chains

Find redirect loops, broken chains, and unnecessary hops instantly.

Try Redirect Tracer

How to detect redirect chains

With curl

curl -v -L https://example.com/old-page 2>&1 | grep -E "^< HTTP|^< [Ll]ocation"

This shows every hop with its status code and destination. If you see more than one Location header, you have a chain. For a full cURL redirect guide, see How to Trace Redirects with cURL.

With browser DevTools

  1. Open DevTools (F12)
  2. Go to the Network tab
  3. Check "Preserve log"
  4. Navigate to the old URL
  5. Look for multiple 301/302 responses before the final 200

See How to Check Redirects in Your Browser for a walkthrough with screenshots.

With a redirect tracing tool

For checking more than a handful of URLs, use a tool that can trace chains in bulk and report the hop count for each URL. See How to Check Redirects in Bulk for approaches that scale.

How to fix redirect chains

The fix is conceptually simple: make every redirect point directly to the final destination.

Before fixing:

/page-v1 --> /page-v2 --> /page-v3 --> /current-page

After fixing:

/page-v1 --> /current-page
/page-v2 --> /current-page
/page-v3 --> /current-page

Step-by-step fix process

1

Audit all redirects

Export your redirect rules from your server config, .htaccess, CDN, and CMS. Build a complete map of every redirect. If your rules are in .htaccess or Nginx config, pull them into a spreadsheet.

2

Trace each chain to its final destination

For every redirect, follow the chain to the end. Record the final URL.

3

Update each redirect to point to the final URL

Rewrite every redirect rule so it points directly to the final destination. Do not remove intermediate redirects if external sites might link to those URLs.

4

Test and verify

After updating, trace every redirect again to confirm chains are eliminated. Watch for new chains introduced by CDN or load balancer rules.

Don't delete intermediate redirects

When flattening chains, update the destination of each redirect rather than removing it. External sites, bookmarks, and search engine indexes may still reference any URL in the old chain. Removing a redirect turns it into a 404.

Chains vs loops

A chain eventually reaches a final destination. A redirect loop never does: URL A sends you to URL B, which sends you back to URL A. Browsers detect loops and display ERR_TOO_MANY_REDIRECTS. If you are seeing that error, see How to Fix ERR_TOO_MANY_REDIRECTS.

Preventing redirect chains

The best fix is prevention. Every time you add a new redirect:

  1. Check if the destination URL itself redirects somewhere else
  2. If it does, point your new redirect to the ultimate final destination instead
  3. Check if any existing redirects point to the URL you are redirecting away from
  4. If they do, update those existing redirects to point to the new destination

This takes discipline, but it keeps your redirect map clean and flat. For a structured approach to ongoing redirect management, see Redirect Management Strategy.

When chains are acceptable

A 2-hop chain (e.g., HTTP to HTTPS, then www to non-www) is normal and generally acceptable. These protocol and subdomain normalizations happen at the edge and add minimal latency. Do not obsess over eliminating every single 2-hop sequence.

Focus your effort on chains of 3 or more hops, especially those involving different paths or domains. Those are the chains that cost you real performance and SEO.

References

  1. Google, "Large site owner's guide to managing your crawl budget," Google Search Central, 2024. https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget
  2. Gary Illyes, Google, "30x redirects don't lose PageRank anymore," Twitter/X, July 2016.
  3. Google, "Redirects and Google Search," Google Search Central, 2024. https://developers.google.com/search/docs/crawling-indexing/301-redirects

Never miss a broken redirect

Trace redirect chains and detect issues before they affect your users and SEO. Free instant tracing.

Try Redirect Tracer