Redirect Chain
A redirect chain occurs when a URL goes through multiple 301/302 redirects before reaching the final destination. Learn how redirect chains impact SEO, site speed, and crawl efficiency, plus how to detect and fix them.
Definition
A Redirect Chain happens when a URL requires multiple 301 or 302 redirects to reach its final destination (e.g., A→B→C→D). Each hop adds HTTP round-trip time, slows page loading, and wastes search engine crawl budget. Google recommends collapsing redirect chains to a single hop (A→D) for optimal crawl efficiency and user experience. Redirect chains commonly occur during site migrations, URL structure changes, or when multiple marketing tracking parameters accumulate.
Why it matters
- Increases TTFB (Time to First Byte) by 100-500ms per redirect hop
- Wastes Googlebot's crawl budget, reducing crawling of valuable pages
- May cause PageRank dilution (approximately 10-15% loss per hop)
- Degrades Core Web Vitals scores, especially LCP and FCP
- Complex chains make debugging and traffic source tracking difficult
- Chains longer than 5 hops may be abandoned by search engines
- Hurts mobile UX, especially on slower network connections
How to implement
- Use Screaming Frog, Sitebulb, or Ahrefs Site Audit to scan for redirect chains
- Point directly to final URL in .htaccess or nginx: RewriteRule ^old-url$ https://example.com/final-url [R=301,L]
- Update all internal links to point to final destination URLs
- Only submit final URLs in sitemap.xml, exclude redirected URLs
- Use Google Search Console URL Inspection tool to verify redirect behavior
- Maintain a redirect map document tracking all redirect rules
- Regularly audit old redirect rules and remove unnecessary ones
Examples
apache
# .htaccess - Avoid redirect chains, point directly to final URL
# Wrong: A → B → C (redirect chain)
# RewriteRule ^page-a$ /page-b [R=301,L]
# RewriteRule ^page-b$ /page-c [R=301,L]
# Correct: A → C (single hop)
RewriteRule ^page-a$ https://example.com/page-c [R=301,L]
RewriteRule ^page-b$ https://example.com/page-c [R=301,L]nginx
# nginx.conf - Correct single-hop redirect configuration
server {
# Redirect all old URLs directly to final destination
rewrite ^/old-page-1$ https://example.com/new-page permanent;
rewrite ^/old-page-2$ https://example.com/new-page permanent;
# Use map for bulk redirects
# map $uri $new_uri { include /etc/nginx/redirects.map; }
}Related
Tutorials
Tools
FAQ
Common questions about this term.