站点改版、栏目合並、域名切換,几乎都离不開 301 跳轉。但跳轉不是配完就完事:A 跳到 B、B 又跳到 C,用戶和蜘蛛每訪問一次都要多等几個来回。這類鏈條在新老结构交替期特別容易出現,短期看不出問题,時間一長就會拖慢抓取效率,也让 URL 發現變得混乱。
跳轉鏈是怎么形成的
大多數跳轉鏈不是一次设計出来的,而是多次改動叠加的结果。常见的来源包括:
- 改版时舊地址跳到新栏目,後来又調整了一次栏目结构,新地址又被重定向到更细的目錄;
- 為修死鏈临时配了一條跳轉,指向另一個同样失效的地址;
- HTTP 到 HTTPS、带 www 到不带 www、末尾斜杠三種跳轉同时生效,一次訪問连跳三次;
- 不同人维護不同配置(服務器、CDN、CMS 插件),彼此不知道對方也寫了跳轉。
這些配置單看都合理,合在一起就成了鏈條。鏈條越長,中間任意一环出错,用戶看到的就是错誤頁。
自查:從日誌和工具两头看
- 先導出站点日誌,筛出返回 301、302 的請求,按被訪問次數排序,重点看那些反复出現的地址。
- 對高频跳轉地址逐個跟一遍,记錄從入口到最终頁面的跳數。超過一跳的,都值得處理。
- 检查跳轉目标是否都是有效頁面,避免跳到 404 或另一條跳轉。
- 確認协议、域名、末尾斜杠三類規范化跳轉是否合並成一步完成。
- 改版前的舊地址清單,和目前跳轉配置做一次對照,删掉已经没必要的規則。
工具上,用命令行带 -L 參數跟一次跳轉鏈,或者直接用浏览器開發者工具看 Network 里的重定向次數,都比凭印象判断可靠。
配置上的几條原則
- 一跳到位:舊地址直接指向最终地址,不要指向中間態。
- 用 301 而不是 302:永久性變更才配 301,临时活動頁、A/B 測試用 302,別混用。
- 不要一律跳首頁:找不到對應頁面时,跳首頁會把無關的抓取都引到首頁,不如给一個真正的 404。
- 保持一對一:多個舊地址指向同一個新地址没問题,但一個舊地址不要指向多個目标。
- 记錄在案:谁在什么时候加過哪條跳轉,最好有份表,避免下一個人重复配置。
跳轉鏈對 URL 發現的影响
蜘蛛發現新 URL 主要靠站内連結和内鏈结构。如果内鏈大量走跳轉,實际到達的地址就會被延後识別,甚至有一部分長時間進不了抓取队列。對于依赖蜘蛛池或主動提交做 URL 發現的站点,跳轉鏈相当于在入口處多加了一道收窄,效率自然打折扣。
另一個容易忽略的点是權重传递。虽然跳轉本身可以传递信号,但每一跳都會衰减,也會消耗抓取资源。把鏈條压到一跳,等于把這部分损耗直接省下来。
改完之後要复查
調整跳轉配置後,至少在一到两周内复查一次日誌:看舊地址的 301 請求量是否在下降,最终頁面的抓取是否在上升,有没有出現新的 404。改版期本身就不稳定,配置改完不看结果,等于没改。
跳轉的作用是收敛地址,不是制造新的中轉站。能一步到位,就別让蜘蛛多绕一圈。