改版、換域名、調整栏目路径,都會留下重定向。少量 301 本身没問题,問题在于一层套一层:A 跳到 B,B 又跳到 C,最後才到可訪問頁面。對訪客来说是多等几次;對搜尋蜘蛛来说,每次跳轉都要重新發起請求,抓取预算和時間被消耗在中間环节上。
重定向鏈會带来什么
- 增加請求次數和等待時間,移動端網絡差时更明顯。
- 消耗抓取配額,蜘蛛可能来不及訪問真正的新内容。
- 中間地址若被外部引用,權重和連結信号经過多次传递容易衰减。
- 鏈條里任何一個环节失效,整條路径就断了,产生 404 或 5xx。
常见的鏈條来源
歷史改版没有收尾
舊域名跳到新域名,新域名又改過栏目路径,于是舊 URL 到舊域名新路径,再到新域名舊路径,最後到新域名新路径,四跳才落地。每一次改版如果只做临时跳轉,逐次叠加就會形成長鏈。
http 到 https 再带 www
http://example.com 跳到 https://example.com,再跳到 https://www.example.com,這本身可以合並成一步。如果服務器配置分散在 CDN、负载均衡和源站三處,很容易出現两到三次跳轉。
尾斜杠、大小寫與參數
有些系統對 /page 和 /page/ 分別跳轉一次,對大小寫 URL 再跳一次。參數版 URL 跳轉到静態版,静態版又跳到带斜杠版,同样會拉長鏈條。
怎么自查
- 從日誌或站点地图中提取訪問量較高、被外鏈較多的舊 URL。
- 用 curl 或浏览器開發者工具查看响應头,重点看 301/302 的 Location 指向。
- 记錄每條路径的跳轉次數,把超過两次的列出来。
- 检查跳轉目标是否最终返回 200,還是返回另一個 3xx。
- 抽样移動端和不同 UA,確認 CDN 與源站規則一致。
處理原則
能直達就不要中轉。把舊 URL 直接指向最终地址,取消無意义的中間跳轉。對于确實需要保留的临时跳轉,定期复查,別让临时變成長期。
统一一種規范形式。選定 https、是否带 www、是否带尾斜杠,然後用服務器或 CDN 規則一次性收敛,而不是在每個栏目里各寫一套。
循环跳轉要立刻處理。A 跳 B、B 跳 A 會让蜘蛛和訪客都陷入死循环,通常出現在規則冲突或程序逻辑错誤时。
別忽略的几個细节
- 301 與 302 语义不同,長期迁移用 301,不要因為是临时活動就一直挂 302。
- 跳轉鏈修复後,舊地址不必马上刪除,保留一段時間减少外部連結失效。
- 更新站点地图和内鏈,让蜘蛛從正常入口就能到達新頁面,而不是依赖跳轉。
- 修复後观察日誌中的 3xx 比例,確認鏈條數量下降。
重定向是過渡手段,不是長期结构。鏈條越短,訪客和蜘蛛到達内容的速度越快。
這類自查不需要复杂工具,從訪問量最高的舊地址開始,逐條確認跳轉终点,就能發現大部分問题。把它纳入改版上线前的检查清單,比事後從日誌里翻找要省事得多。