跳至主要內容

    Redirect Chain

    轉址鏈(Redirect Chain)是指 URL 經過多次 301/302 跳轉才到達最終目的地。了解轉址鏈如何影響 SEO、網站速度與爬蟲效率,以及如何用工具檢測並修復。

    定義

    Redirect Chain(轉址鏈)指一個 URL 經過多次 301 或 302 重定向才到達最終目的地(例如 A→B→C→D)。每一次跳轉都會增加 HTTP 請求往返時間,拖慢頁面載入速度,並讓搜尋引擎爬蟲浪費抓取資源(crawl budget)。Google 建議將轉址縮減到單一跳轉(A→D),以確保最佳的抓取效率與使用者體驗。轉址鏈常見於網站改版、URL 結構變更、或多次行銷活動追蹤參數疊加時產生。

    為什麼重要

    • 增加 TTFB(首位元組時間),每次跳轉約增加 100-500ms 延遲
    • 浪費 Googlebot 的 crawl budget,減少有價值頁面被抓取的機會
    • 可能導致 PageRank 傳遞損失(每次跳轉約損失 10-15%)
    • 造成 Core Web Vitals 指標下降,特別是 LCP 和 FCP
    • 複雜的轉址鏈增加除錯難度,難以追蹤流量來源
    • 過長的轉址鏈(5+)可能被搜尋引擎放棄追蹤
    • 影響行動裝置使用者體驗,特別是網路較慢的環境

    怎麼做(實作重點)

    • 使用 Screaming Frog、Sitebulb 或 Ahrefs Site Audit 掃描全站轉址
    • 在 .htaccess 或 nginx config 中直接指向最終 URL:RewriteRule ^old-url$ https://example.com/final-url [R=301,L]
    • 更新所有內部連結指向最終目的地 URL,避免經過轉址
    • 在 sitemap.xml 中只提交最終 URL,不要包含會被轉址的 URL
    • 使用 Google Search Console 的「網址檢查」工具驗證轉址行為
    • 建立轉址對照表(redirect map)文件,追蹤所有轉址規則
    • 定期審核舊的轉址規則,移除不再需要的轉址

    範例

    apache
    # .htaccess - 避免轉址鏈,直接指向最終 URL
    # 錯誤:A → B → C(轉址鏈)
    # RewriteRule ^page-a$ /page-b [R=301,L]
    # RewriteRule ^page-b$ /page-c [R=301,L]
    
    # 正確:A → C(單一跳轉)
    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 - 正確的單一跳轉設定
    server {
        # 將所有舊 URL 直接導向最終目的地
        rewrite ^/old-page-1$ https://example.com/new-page permanent;
        rewrite ^/old-page-2$ https://example.com/new-page permanent;
        
        # 使用 map 處理大量轉址
        # map $uri $new_uri { include /etc/nginx/redirects.map; }
    }

    相關連結

    常見問題

    關於這個詞彙的常見問答。

    回到詞彙表