Skip to main content

    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

    FAQ

    Common questions about this term.

    Back to glossary