HTTP Redirect Chains and Their Impact on SEO
Redirect chains happen when a request passes through multiple intermediate 301/302 hops before reaching the final URL. Example: http://example.com/page → https://example.com/page → https://www.example.com/page → https://www.example.com/page/. That is 4 requests instead of one — slow, inefficient, and bad for SEO.
Why Chains Are a Problem
- SEO equity leaks. Google officially passes PageRank via 301, but each hop loses 10-15% of equity in practice.
- Crawl budget is wasted. Googlebot burns requests on redirects instead of real pages.
- Speed suffers. Each hop = +100-300ms latency. 4 hops = +500ms to TTFB.
- PageSpeed анализ degrade. LCP grows, the page "appears" slower.
- Mobile users suffer most. On 3G, each hop = +1 second.
- Browser caching is ineffective. 302s are not cached; 301s are, but chains break optimization.
Typical Chains and How They Emerge
HTTP → HTTPS → www → trailing slash
http://example.com/page
↓ 301 (HTTPS redirect)
https://example.com/page
↓ 301 (www redirect)
https://www.example.com/page
↓ 301 (trailing slash)
https://www.example.com/page/
= 3 extra hops!Old URLs after migrations
/old-category/article
↓ 301
/new-category/article
↓ 301 (another rename)
/articles/modern/article
↓ 301
/blog/articleHow to Find Chains
Use the Enterno.io HTTP Header Checker — it displays the full redirect chain with codes, URLs, and per-hop timing in one view.
Or via curl:
curl -sLI http://example.com/page | grep -iE '^(location|http)'
# Verbose trace
curl -v -L http://example.com/page 2>&1 | grep -E '^> GET|^< HTTP|^< location'Bulk audit tools:
- Screaming Frog — site crawl, "Redirects → Redirect Chains" report
- Sitebulb — similar, with visualization
- Google Search Console → Coverage — shows redirect errors
Correct nginx Setup: One Redirect
# Bad (4 hops):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
# + trailing slash redirect in location
# Good (1 hop):
server {
listen 80;
listen 443 ssl;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri; # go straight to canonical
}
server {
listen 443 ssl;
server_name www.example.com;
# Trailing slash in one directive
rewrite ^([^.]*[^/])$ $1/ permanent;
# ...
}Eliminate Double Redirects
# Bad (redirect to a redirect):
location = /old-product {
return 301 /products/old; # but /products/old itself redirects to /shop/old
}
# Good (straight to final):
location = /old-product {
return 301 /shop/old;
}Rule: every 301 must point to a 200, not to another 301.
WordPress: Redirect Audit
Use the Redirection plugin — it detects chains automatically and offers to flatten them. Look for "redirect to a redirect" in its logs.
Quick DB check
-- For Redirection plugin
SELECT r1.url_from, r1.url_to, r2.url_to AS final
FROM wp_redirection_items r1
JOIN wp_redirection_items r2 ON r1.url_to = r2.url_from;
-- Results need to be flattenedCDN Specifics: Cloudflare, Fastly
- Cloudflare Page Rules can add hidden redirects (Always Use SSL/TLS проверку, www/non-www).
- HSTS Preload eliminates the HTTP→HTTPS redirect on the client.
- Always check real hops with
curl -vthrough the Cloudflare proxy.
HSTS to Remove the HTTP→HTTPS Hop
# After first visit, browser never goes to HTTP again
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# For maximum effect — preload list: https://hstspreload.org/See our HSTS and preload guide.
Impact on Core Web Vitals
Each redirect adds to TTFB (Time To First Byte). Google uses TTFB indirectly via LCP. A 3-hop chain on 3G adds ~1 second to LCP, potentially pushing a site from "Good" (≤2.5s) to "Needs Improvement" (≤4s).
Check via Enterno.io PageSpeed Check — get full Core Web Vitals and recommendations.
Chain Elimination Checklist
- Crawl the site with Screaming Frog or similar.
- List all chains in a spreadsheet with intermediate and final URLs.
- Update 301 rules: old URL → final URL (skip intermediates).
- Enable HSTS to remove the HTTP→HTTPS hop.
- Pick one canonical form: www or non-www, trailing slash or not.
- Update internal links to final URLs — removes one redirect even for singletons.
- Update sitemap.xml to only final URLs.
- Verify via Enterno.io HTTP Checker.
Frequently Asked Questions
Q: How many 301s in a row are acceptable?
A: Ideally 0. Max 1 hop. Google recommends no more than 5, but stops following beyond that.
Q: Does SEO equity get lost in chains?
A: Google officially — no. In practice 10-15% is lost per hop due to crawl inefficiency.
Q: www or non-www — which is better?
A: No SEO difference. What matters: pick one, make it canonical. Mixing = chains and duplicates.
Q: How fast does Googlebot update knowledge of chains?
A: Days to months. Force it via Search Console "URL Inspection" → "Request Indexing".
Conclusion
Redirect chains are a free SEO win you can capture in half a day. Audit via the HTTP Header Checker, fix nginx config, enable HSTS, and update internal links to eliminate 90% of chains. Monitor Core Web Vitals and watch TTFB.
Check your website right now
Check now →