站点在改版、換域名、調整栏目路径之後,常常會留下一些重定向。單條重定向本身不是問题,問题是它們容易叠加成鏈:A 跳到 B,B 又跳到 C,用戶和搜尋蜘蛛都要跟着走完。跳數一多,响應時間變長,抓取预算被消耗,日誌里也會多出一批看起来像“正常訪問”的中間請求。
重定向鏈指的是從起始 URL 到最终落地頁之間经過两次或更多跳轉的情况。短鏈看似無害,但在站点規模變大後,影响會逐渐顯現。
重定向鏈是怎么長出来的
常见来源並不复杂,多數是几次調整叠加的结果:
- HTTP 升級到 HTTPS 时,舊地址先跳 HTTPS,再跳新域名;
- 換域名後,舊域名跳新域名,新域名又跳 www 或非 www;
- 栏目合並,舊栏目頁跳新栏目頁,新栏目頁又跳向更细的分類頁;
- URL 命名規范調整,大小寫、结尾斜杠、參數顺序各产生一次跳轉;
- 服務器、CDN、應用层各自配置了跳轉規則,規則叠加後形成多跳。
這些規則單獨看都有理由,放在一起就可能让一個舊連結绕三四個弯才到终点。
自查:先看單條 URL 的完整跳轉路径
排查重定向鏈不需要复杂工具,關键是完整记錄每一跳,而不是只看最终能否打開。
- 選样本:首頁、主要栏目頁、詳情頁、已知舊 URL、带參數 URL 各取几個。
- 用 curl -IL 或浏览器開發者工具的網絡面板,查看每次响應的狀態碼和 Location。
- 把跳轉路径按顺序记下来,标出總跳數。超過一跳的地址單獨列出。
- 確認最终落地頁返回 200,並且内容與用戶预期一致。
- 把這份清單和 sitemap、站内連結、外部連結中的舊地址做比對。
如果站点使用 CDN 或反向代理,最好绕過缓存再测一次,避免只看缓存层的跳轉结果。
常见問题與處理
鏈式跳轉:A → B → C
最直接的處理方式是让 A 一次性指向 C。B 可以保留,但不要让 A 繼續经過 B。改完後复测,確認 A 只跳一次。
循环跳轉:A → B → A
循环會让搜尋蜘蛛在几個地址之間反复請求,最终可能放弃。检查服務器規則、CDN 規則和應用层跳轉,找出互相指向的两條配置,保留一條即可。
最终跳轉到 404 或错誤頁
舊連結跳到已经不存在的目标,等于把用戶和蜘蛛送進死胡同。该恢复頁面就恢复,该更新目标就更新目标,确實没有對應内容的,考虑 410 或合适的替代頁面。
全部统一跳首頁
把大量舊 URL 集中跳首頁,省事但不够准确。用戶找不到原内容,蜘蛛也难以判断新舊頁面的關系。能對應到相近栏目或专题頁的,尽量對應過去。
把跳轉层級收敛下来
- 建立重定向清單,记錄源地址、目标地址、狀態碼和生效時間,改版後定期复核。
- 站内連結直接指向最终地址,不要為了“兼容舊地址”让内鏈也走跳轉。
- sitemap 只提交最终可訪問地址,不要把跳轉地址一起放進去。
- 检查服務器、CDN 和應用层的跳轉規則,按優先級整理,避免多层規則重复處理同一批 URL。
- 長期使用的跳轉優先用 301,临时活動或短期調整再用 302,並設定复核時間。
- 外鏈不可控,但可以通過 301 把常见舊地址一次性指到最终目标,减少中間跳。
日誌里怎么看重定向
搜尋蜘蛛日誌中,301 和 302 同样會占用請求。如果某個舊地址每天被請求很多次,通常說明站内還有連結或 sitemap 没更新。把高频跳轉地址按請求量排序,優先修正内鏈和導航,往往比繼續加跳轉規則更有效。
重定向不是越少越好,而是每一跳都要有明确目的。能一次到位,就不要分成两步。
小结
重定向鏈属于隐形成本:用戶多等一点,抓取预算多花一点,日誌多一批中間记錄。把常規跳轉控制在 1 跳以内,特殊情况不超過 2 跳,改版後做一次完整巡检,基本就能避免它變成長期問题。