Skip to content
← All articles

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/pagehttps://example.com/pagehttps://www.example.com/pagehttps://www.example.com/page/. That is 4 requests instead of one — slow, inefficient, and bad for SEO.

Why Chains Are a Problem

  1. SEO equity leaks. Google officially passes PageRank via 301, but each hop loses 10-15% of equity in practice.
  2. Crawl budget is wasted. Googlebot burns requests on redirects instead of real pages.
  3. Speed suffers. Each hop = +100-300ms latency. 4 hops = +500ms to TTFB.
  4. PageSpeed анализ degrade. LCP grows, the page "appears" slower.
  5. Mobile users suffer most. On 3G, each hop = +1 second.
  6. 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/article

How 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:

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 flattened

CDN Specifics: Cloudflare, Fastly

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

  1. Crawl the site with Screaming Frog or similar.
  2. List all chains in a spreadsheet with intermediate and final URLs.
  3. Update 301 rules: old URL → final URL (skip intermediates).
  4. Enable HSTS to remove the HTTP→HTTPS hop.
  5. Pick one canonical form: www or non-www, trailing slash or not.
  6. Update internal links to final URLs — removes one redirect even for singletons.
  7. Update sitemap.xml to only final URLs.
  8. 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 →
More articles: HTTP
HTTP
HTTP 301 vs 302 Redirect: Differences and When to Use Each
15.04.2026 · 5 views
HTTP
HTTP Status Codes: Complete Reference with Examples
10.03.2025 · 64 views
HTTP
HTTP 429 Too Many Requests: Rate Limiting Explained
15.04.2026 · 6 views
HTTP
HTTP 502 Bad Gateway: What It Means and How to Fix
15.04.2026 · 4 views