Redirects · Explainer

Redirect chains & loops

A clean redirect passes nearly all your ranking authority to the new URL. Chain several together and you add latency, waste crawl budget, and risk leaking equity. Loop them and the page breaks entirely. Here's how to find and collapse them.

Why chains and loops happen

Redirects accumulate over a site's life, every migration, rename, and protocol change adds a rule, and the rules start tripping over each other.

No one sets out to build a redirect chain. They emerge: you move a page, then move it again a year later, and now the original URL hops twice. You add an HTTPS redirect, then a trailing-slash redirect, and a URL passes through both. Over a few years you get a tangle of multi-hop redirects, and occasionally two rules that point back at each other and form a loop. Here's the difference, and the fix:

Chain (bad): three requests to reach the page/old-post 301 → /blog/old-post/blog/old-post 301 → /blog/new-post/blog/new-post 301 → /articles/new-post # finalCollapsed (good): every old URL points straight to the final/old-post 301 → /articles/new-post/blog/old-post 301 → /articles/new-post/blog/new-post 301 → /articles/new-post

The audit flags both chains and loops because both cost you: chains add latency and risk equity loss at each hop, and a loop never resolves at all, taking the page completely offline for users and crawlers.

What chains and loops cost you

One degrades performance and authority; the other breaks the page completely.

Chains: latency, crawl waste, and equity risk

Every hop in a chain is an extra round-trip for the user (slower page loads) and an extra request for the crawler (wasted crawl budget). While Google follows several hops and consolidates signals, each hop adds risk, a chance of equity loss, a chance the chain breaks if one hop later 404s, and slower indexing of the final page. There is never a benefit to a chain: only downside to minimise.

Loops: the page becomes unreachable

A loop never resolves. The browser eventually shows a "too many redirects" error and the crawler abandons the URL. The page is effectively offline: no users, no indexing, no rankings. Loops are almost always caused by conflicting rules (an HTTPS rule and a trailing-slash rule each undoing the other) and are urgent, they take a live page completely out of search.

Common rule pairingUsually causesFix
HTTPS-enforcement + trailing-slash ruleLoop, if each rule rewrites in a way that re-triggers the otherRun one rule to completion before the other applies
www ↔ non-www rule + HTTPS redirectChain (two hops) or loop if the order conflictsCombine into a single rule that sets scheme and host together
Old URL rename layered on a newer renameChain, each migration adds one more hopPoint the oldest URL straight at the current final destination
CMS/plugin redirect + server-level redirect for the same pathChain, both rules fire in sequenceKeep the redirect in one place only, remove the duplicate

How to fix chains and loops

Collapse, then point links at the final URL.

Step 1, Map the hops. Crawl the site and identify every redirect and where it ultimately lands. The audit surfaces redirect chains and the pages whose internal links point to a redirect. Step 2, Collapse each chain. Rewrite the redirect rules so the first URL goes straight to the final destination: turn A→B→C into A→C and B→C. Step 3, Break loops at the source. Find the conflicting rules and fix the order or logic so the cycle resolves to a single final URL. Step 4, Update internal links. Change internal links so they point at the final URL directly, not at a redirecting one, this removes the hop entirely for crawlers and users. Step 5, Use the right status code. Permanent moves should be 301s; see 301 vs 302.

Chains, links and loops in detail

How many hops are acceptable

Aim for zero unnecessary hops: every redirect should go straight to the final URL. There is no hop count that is actively good, only a number you have not got around to removing.

Google follows several hops in practice, so a two-step chain is unlikely to be catastrophic, but anything more than one is worth collapsing, and long chains risk being abandoned before the crawler reaches the destination. The simplest rule to work to: one redirect, directly to the destination.

Internal links pointing at redirects

Internal links should never point at a URL that redirects. If you know the final URL, link to it directly.

Linking to a redirecting URL wastes a hop on every crawl and every click, adding latency for users and requests for crawlers, and it is entirely avoidable since you control both ends of the link. The audit flags internal links pointing to redirects for exactly this reason: the redirect rule can stay as a safety net for external links and bookmarks, but your own pages should bypass it.

What causes most redirect loops

Redirect loops are almost always caused by conflicting server rules, most often an HTTPS-enforcement rule and a trailing-slash rule, or a www against non-www rule, that each rewrite the URL in a way that re-triggers the other.

Each rule is correct in isolation, which is why loops survive review: the fault only appears in the interaction. Fixing the order and conditions of those rules, so that one runs to completion before the other applies, resolves the loop.

Where chains and loops usually hide, by platform

The pattern is the same everywhere: an old rule and a new rule stacked instead of one rule replacing the other.

nginx

Look for more than one rewrite or return directive that can match the same path, especially across separate server blocks for HTTP and HTTPS, or a location block matching both www and non-www. Combine scheme, host and path normalization into a single rule instead of layering separate ones, and test with curl -IL to see every hop before reloading.

Apache (.htaccess)

Chains here usually come from stacked RewriteRule lines left behind by successive migrations, or a hosting-level HTTPS redirect combined with your own www redirect. Check the file top to bottom in the order Apache applies it, and collapse anything that fires twice into one rule using [R=301,L] so it stops evaluating further rules once it matches.

Cloudflare

A page rule or redirect rule set at the zone level can chain with an origin-level redirect from your CMS if both are active for the same path. Check Rules → Overview for anything that also matches URLs your origin already redirects, and keep the redirect in one layer, either the edge or the origin, not both.

WordPress and Shopify

Chains commonly form when a redirect plugin's rule and a permalink or handle change both apply to the same old URL. Check the plugin's redirect list for an entry whose destination is itself another entry in the list, and repoint it at the final URL directly rather than leaving the two chained.

Redirect chain questions, answered

What is a redirect chain in SEO?

A redirect chain is a URL that redirects to another URL which itself redirects again before reaching a live page, for example A to B to C. Chains build up gradually as a site goes through multiple migrations, each new redirect layered on top of an older one that was never removed. The fix is to collapse every step in the chain so it points straight at the final destination.

How many redirects in a chain is too many?

There is no count that is actively fine, only a number nobody has removed yet. One direct redirect is the goal. Search engines follow several hops in practice, so a short chain is unlikely to be catastrophic on its own, but every additional hop adds latency, wastes crawl budget, and increases the chance that one link in the chain later breaks and turns the whole thing into a dead end.

What causes a redirect loop?

Redirect loops are almost always caused by two rules that each undo the other, most often an HTTPS-enforcement rule and a trailing-slash rule, or a www versus non-www rule, that keep rewriting the URL back and forth. Each rule is correct on its own, which is why loops survive review: the fault only shows up in how they interact. Fixing the order or conditions so one rule finishes before the other applies breaks the cycle.

How do I find redirect chains on my site?

Crawl the site and follow every redirect to see where it ultimately lands rather than just its first hop. A crawler that stops at the first redirect cannot tell a clean 301 from the start of a four-hop chain. A full-site audit surfaces every chain along with the pages whose internal links point at a redirecting URL instead of the final destination.

Does Google still follow long redirect chains?

Google follows a number of hops before giving up, but there is no reason to test that limit. Long chains risk being abandoned before the crawler reaches the destination, and even when fully followed, every added hop is pure downside: more latency, more crawl budget spent, and more surface area for one hop to break later. Collapse chains rather than relying on how many hops get followed.

Collapse the chains leaking your authority

Free to start. Find redirect chains, loops and links pointing to redirects across your site.

Start my free audit