TrueURL
TrueURL

選單

免費重新導向工具

重新導向鏈檢查

追蹤網址到最終目的地之間的每個躍點。找出多餘的重新導向、暫時性狀態碼和緩慢的躍點,再將重新導向鏈簡化為單次重新導向。

什麼是重新導向鏈?

重新導向鏈是瀏覽器或爬蟲在抵達有內容的頁面之前,必須依序經過的一連串重新導向。一個躍點(例如從 /old-page 到 /new-page)是正常的。但規則多年來不斷累加,重新導向鏈就會越拉越長:先是從 HTTP 導向 HTTPS 的規則,接著是 www 規則,再來是結尾斜線規則,最後是上次網站改版留下的規則。下面這條重新導向鏈有四次重新導向,其實一次就夠了:

http://example.com/shop          301
https://example.com/shop         301
https://www.example.com/shop     301
https://www.example.com/shop/    302
https://www.example.com/store/   200

過長的重新導向鏈有什麼壞處

  • 速度:每個躍點都是一次獨立的要求,通常還各自需要 DNS 查詢和 TLS 交握。在行動網路上,頁面開始載入前,每個躍點都可能多花數百毫秒。
  • 檢索:Google 檢索器(Googlebot)最多追蹤 10 個躍點,之後就會回報重新導向錯誤。在大型網站上,每多一個躍點,也會占用原本可以留給實際網頁的檢索資源。
  • 可靠性:每多一個躍點,就多了一個可能故障、形成迴圈或過期的伺服器、規則或憑證。
  • 訊號:只要重新導向鏈中任何一處出現暫時性狀態碼,就會削弱您希望搜尋引擎看到的永久性訊號。

如何解讀重新導向鏈

每一列代表一個躍點。狀態顯示重新導向的類型:301 和 308 是永久性的,302、303 和 307 則是暫時性的。方法顯示 POST 在哪裡變成了 GET,就像瀏覽器遇到 301、302 或 303 時的做法。原始的 Location 值會原封不動地呈現伺服器送出的內容,方便您找出相對路徑、缺少的斜線或多餘的查詢字串。標示為 meta refresh 或 JavaScript 的躍點,是在頁面 HTML(或 Refresh 標頭)中找到的用戶端重新導向,而不是來自 Location 標頭。

重新導向鏈會以下列四種方式之一結束:在最終網址得到正常回應、形成重新導向迴圈、達到最大躍點數上限,或在特定躍點發生錯誤,例如 DNS 解析失敗、逾時或憑證問題。

如何簡化重新導向鏈

  1. 記下這條重新導向鏈最終應該抵達的網址。
  2. 修改第一條重新導向規則,讓它以單一 301 或 308 直接指向該最終網址。
  3. 在伺服器或 CDN 上將通訊協定、主機和斜線規則合併成一條規則,讓 http://example.com/page 直接導向 https://www.example.com/page/。
  4. 將內部連結、canonical 標記和 Sitemap 更新為最終網址,讓訪客和爬蟲完全不會碰到重新導向。
  5. 回到這裡再次檢查舊網址,確認重新導向鏈只剩一個躍點。

相關指南

  • 閱讀時間 12 分鐘

    如何檢查網址轉址,並看懂重新導向鏈

    一步步用 TrueURL、curl 與 DevTools 檢查網址轉址,看懂重新導向鏈的每個躍點,並找出及修正重新導向迴圈、過長的重新導向鏈與 301/302 混用等常見問題。

    閱讀文章

常見問題

重新導向鏈中有幾次轉址算太多?

目標是讓任何舊網址只經過一次重新導向就抵達最終網址。在無法避免時,兩次也還可以接受,例如先從 HTTP 升級到 HTTPS,再變更主機名稱。TrueURL 會標示超過三次重新導向的重新導向鏈。Googlebot 在 10 個躍點後就會放棄,瀏覽器則大約在 20 次後停止,並顯示「重新導向次數過多」錯誤。

轉址鏈會流失連結權重嗎?

Google 表示 3xx 重新導向不會流失 PageRank,因此重新導向鏈不會直接稀釋排名訊號。實際的問題在於網頁變慢、浪費檢索要求,以及鏈中某個躍點失效或屬於暫時重新導向的機率提高。請把重新導向鏈視為技術債,並加以簡化。

重新導向鏈和重新導向迴圈有什麼不同?

重新導向鏈最後一定會結束在某個最終網址。迴圈則永遠不會結束,因為它會回到先前已經造訪過的網址,瀏覽器會顯示錯誤而不是頁面。TrueURL 兩者都能偵測;重新導向迴圈檢查頁面說明了迴圈的常見成因與修正方式。

可以檢查以 POST 要求開始的重新導向鏈嗎?

可以。在進階設定中將「HTTP 方法」設為 POST,並加入要求主體。接下來重新導向鏈會遵循瀏覽器的規則:在 POST 之後,301、302 或 303 會改以不含主體的 GET 繼續,307 或 308 則會以相同的主體重送 POST。

結果中的「跨網域」是什麼意思?

表示最終網址的主機名稱和您輸入的不同(開頭的 www. 不列入比較)。對短網址和網域搬遷來說,這是正常現象。但如果您自己網站上的網頁意外跑到其他網域,就要仔細檢查:這可能代表規則設定錯誤、網站遭到入侵,或是存在開放式重新導向(open redirect)。

重新導向鏈會包含 meta refresh 和 JavaScript 轉址嗎?

會,這是預設行為。TrueURL 會掃描 HTML 回應中的 meta refresh 標記和簡單的 JavaScript 重新導向,從那裡繼續追蹤重新導向鏈,並標示這些躍點,方便您和 HTTP 重新導向區分。您可以關閉這項功能,只查看伺服器端重新導向,或使用 Meta Refresh 重新導向檢查工具查看詳細資訊。

為什麼某個躍點顯示錯誤,而不是狀態碼?

表示該躍點的要求在收到任何 HTTP 回應之前就失敗了:主機名稱無法解析、連線遭拒或逾時、TLS 憑證無效,或是重新導向指向無效或遭封鎖的位址。該躍點的錯誤訊息會說明是哪一種情況。在它之前的躍點仍會顯示,因此您可以清楚看出重新導向鏈是在哪裡中斷的。