What Is a Redirect Chain?
A redirect chain occurs when a URL redirects to another URL, which redirects to yet another URL — creating a sequence of hops before the browser (or bot) reaches the final destination.
For example:
http://example.com → https://example.com → https://www.example.com → https://www.example.com/home
That's three unnecessary hops to reach one page. Every extra hop adds latency, consumes crawl budget, and dilutes any link equity flowing through the chain.
What Is a Redirect Loop?
A redirect loop is even worse — it's a circular chain of redirects where the browser can never reach a final destination. For example:
Page A → Page B → Page C → Page A (loop!)
Browsers detect loops after a few iterations and show the user an error: "The page isn't redirecting properly" or "ERR_TOO_MANY_REDIRECTS". Search engines stop following the chain and may de-index affected URLs.
How Redirect Chains Are Created
Chains typically build up organically over time:
- A URL is redirected from HTTP to HTTPS
- Later, the non-www version is redirected to www
- Later still, the page slug is changed and a new redirect is added
- Nobody cleaned up the earlier redirects
Result: three hops that could and should be one.
How Redirect Loops Are Created
Loops are usually caused by:
- Misconfigured rewrite rules — an .htaccess or Nginx rule unintentionally redirects a page back to itself
- CMS conflicts — a plugin or CMS setting redirecting canonical URLs while another setting does the opposite
- Mixed HTTP/HTTPS rules — a forced HTTPS rule combined with an SSL certificate issue that downgrades back to HTTP
- Conflicting CDN and server rules — a CDN redirect contradicting a server-level redirect
How to Detect Them
Several approaches work well for detection:
- cURL in terminal:
curl -I -L --max-redirs 10 [URL]— count the number of 3xx responses before you hit a 200 - Screaming Frog: Run a crawl and check the Redirect Chains report
- Browser DevTools: Open Network tab, look for multiple 3xx entries before the final 200
- Google Search Console: Coverage report flags redirect errors for URLs Googlebot can't fully resolve
How to Fix Redirect Chains
The fix is straightforward in principle: flatten the chain so every old URL points directly to the current, canonical URL.
- Use a crawl tool to export all redirect chains
- Identify the true final destination for each chain
- Update each origin redirect rule to point directly to the final URL
- Remove all intermediate redirect rules that are no longer needed
- Verify with cURL or a redirect checker that each old URL now resolves in a single hop
How to Fix Redirect Loops
- Isolate the cause: Check .htaccess, Nginx config, CMS settings, and any CDN redirect rules one layer at a time
- Test in incognito: Clear browser cache to rule out a cached redirect causing false loop symptoms
- Temporarily disable rules: Comment out redirect rules one by one until the loop breaks — that's your culprit
- Fix the conflicting rule and re-test all related redirects before re-enabling
Prevention Tips
- Maintain a redirect map document — a spreadsheet mapping every old URL to its final destination
- When adding a new redirect, always check if the destination itself redirects
- Include redirect audits as part of any deployment checklist
- Set up automated monitoring to alert on new redirect chains or 4xx errors
Conclusion
Redirect chains and loops are almost always preventable with a clear process and regular auditing. The longer they go undetected, the more damage they silently cause to performance and SEO. Treat your redirect infrastructure like any other critical piece of your web stack — document it, monitor it, and clean it up regularly.