網站收錄

重定向鏈太長时,收錄會在哪一步断掉

換域名、加 www、切 HTTPS、改目錄,都會在站里留下重定向。一两跳通常没問题,但鏈條拉到三四跳、跳向不相關頁面或终点已经失效时,蜘蛛可能在半路停下,頁面迟迟進不了索引流程。這篇文章讲清楚重定向鏈的排查顺序和收敛方法。

網站收錄

重定向鏈太長时,收錄會在哪一步断掉

換域名、加 www、切 HTTPS、調整目錄结构,這些操作都會在站里留下一批重定向。單條 301 是常規做法,問题在于不少站点经過几轮改版後,跳轉被一层层叠起来:舊地址跳中間地址,中間地址再跳目前地址。平时看不出異常,等到收錄迟迟不涨、日誌里某些 URL 反复被抓却始终不進索引,才回头找原因。

蜘蛛跟重定向时,實际發生了什么

重定向本身不是错誤,它是一句「這個地址搬家了」。蜘蛛遇到 301 或 302 时,會按响應头里的 Location 再發一次請求,直到拿到一個最终返回 200 的頁面,或者中途放弃。

關键在于,每一跳都是一次獨立的請求。鏈條短的时候,這点開销可以忽略;鏈條拉到三跳以上,抓取预算就消耗在中間环节上,而這些中間地址本身没有内容,蜘蛛跑一趟拿不到任何可索引的東西。如果鏈條里還夹着 302、meta refresh、JS 跳轉,或者中間某一跳返回 404、超时,蜘蛛很可能停在半路,终点頁面自然也就不會進入索引流程。

所以判断影响时,不要只看终点頁面的质量,還要看蜘蛛到達终点之前绕了多少路。

几種常见的問题鏈

301 與 302 混着用

临时跳轉和永久跳轉混在一起,蜘蛛對二者的處理態度不同。302 表達的是「暂时搬走,原地址還可能回来」,多條 302 串起来时信号會變得含糊,舊地址和目前地址都有机會被抓,收錄狀態也容易摇摆。确定不再回退的跳轉,统一用 301。

所有舊地址一律跳首頁

這是改版後最常见的偷懒做法:把大量詳情頁、栏目頁统统 301 到首頁。對用戶和蜘蛛来说,這等于告诉它「這個内容没了」。原来的頁面不會因此轉移到新頁面,首頁也不會因為承接了這些跳轉就多出收錄。如果内容還在,就應该跳到最接近的新地址;如果内容确實下线,返回 410 比硬跳首頁更干净。

终点本身是 404 或 5xx

鏈條中間的地址配好了跳轉,终点却已经刪除或服務異常,蜘蛛顺着鏈走到底撞上一個错誤頁。這種鏈路表面上是「已處理」,實际上整條路径都是無效的,日誌里會看到同一批 URL 被反复抓、反复失敗。

循环跳轉與自我跳轉

A 跳 B、B 跳 A,或者某個 URL 301 到自己。前者會让蜘蛛在有限次數後放弃,後者属于配置失誤。這類問题通常出現在批量規則里,改版次數越多越容易残留。

怎么把鏈條查出来

  • 抽一批重要 URL,用 curl -IL 看完整跳轉鏈,记錄每一跳的狀態碼和 Location。
  • 在服務器日誌里按 URL 分组,看同一個地址是否被连續抓取多次、後一次带的是不是跳轉後的路径。
  • 把站点地图里的地址和最终落地的地址做一次對照,找出需要多跳才能到達的條目。
  • 關注跳轉终点是否返回 200、是否有 canonical 指向別處,避免跳轉和規范化信号互相矛盾。

收敛顺序:先定终点,再压平鏈路

  1. 确定每個舊地址的唯一终点。 内容還在的,指向最接近的新地址;内容下线的,用 410 明确表達,不要都丢给首頁。
  2. 把多級跳轉压平成一步。 舊地址直接 301 到最终地址,去掉中間的過渡层,让蜘蛛一次請求就到位。
  3. 统一跳轉類型。 不再回退的用 301,避免 301、302、JS 跳轉混用造成信号模糊。
  4. 同步内鏈和站点地图。 站内連結、導航、sitemap 都直接寫终点地址,不要让蜘蛛從站内再走一遍舊鏈。
  5. 改完後持續观察。 看日誌里中間地址的抓取是否减少、终点地址的抓取是否稳定。收敛效果以日誌為准,而不是以配置文件為准。

重定向鏈属于基础设施层面的問题,它不會直接决定一個頁面能不能被收錄,但會决定蜘蛛能不能顺利、低成本地走到頁面面前。鏈路越短、终点越明确,後續的内容质量和内鏈優化才有發挥的余地。

排查顺序建议從终点往回倒推:先確認终点是否正常返回,再數中間有几跳,最後检查跳轉類型和内鏈是否一致。