搜尋抓取

頁面下线之後:404、410 與内鏈清理怎么配合

頁面下线不只是删掉一個文件,蜘蛛還會顺着舊入口回来。本文從响應狀態、内鏈清理、Sitemap 同步和服務器返回几個角度,梳理下线頁面的處理顺序,並對 404、410 與 301 的取舍给出判断依據,减少無效抓取。

搜尋抓取

頁面下线之後:404、410 與内鏈清理怎么配合

内容下线在站点运营里很常见:活動結束、商品下架、栏目合並,都會留下一批不再维護的 URL。對运营来说這只是删掉一個頁面,對蜘蛛来说却是另一回事——它记住的是地址和上次抓到的内容,下一次訪問才會知道這個頁面發生了變化。

蜘蛛再訪时,先看响應狀態

当蜘蛛再次請求一個已经下线的地址,服務器返回的狀態碼决定了它接下来怎么做。常见的几種處理方式,效果並不一样:

  • 404:頁面不存在。适合临时下架、可能恢复的内容,也适合结构上已经不再使用但外鏈較多的地址。
  • 410:頁面已永久移除。语义比 404 更明确,适合确定不會再上线的地址。它不會让蜘蛛立刻清空记錄,但能减少反复回訪的意愿。
  • 301:永久跳轉到新地址。只有当新舊頁面内容高度對應时才用,比如文章改版後換了一個 URL。
  • 200 空頁面:最容易被忽略的一種。頁面還能打開,但正文没了、只剩模板壳,蜘蛛會把它当作可用頁面繼續抓取,這類地址往往長期占着抓取份額。

為什么下线之後還會被反复訪問

蜘蛛不會主動记住某個地址已经作废,它靠的是重新訪問。如果站内仍然留有指向该地址的連結,蜘蛛就會顺着這些入口一次次回来。常见的原因有几類:

  • 導航、面包屑、侧邊栏里還挂着舊連結;
  • 列表頁、归档頁、相關推荐模块没有同步更新;
  • Sitemap 里仍然保留了已经下线的 URL;
  • 站内搜尋、标簽頁等動態入口還在生成這些地址。

這些入口不清理,狀態碼改成 404 也只能减少一部分回訪。抓取路径上的入口比狀態碼更靠前。

清理顺序:先断入口,再改狀態

比較稳妥的做法是按下面的顺序處理,避免蜘蛛在改動過程中抓到一半舊结构、一半新结构:

  1. 先確認這批 URL 是真的要下线,還是只需合並到其他頁面;
  2. 從導航、列表頁、推荐位、标簽頁中移除指向它們的連結;
  3. 更新 Sitemap,把下线地址從中去掉,不要只留一個長期不更新的舊文件;
  4. 根據内容情况設定 404、410 或 301,並保持狀態稳定,不要今天 404 明天 200;
  5. 观察一段時間服務器訪問记錄,確認這些地址的訪問量是否在下降。

跳轉不要都指向首頁

下线頁面统一 301 到首頁,看起来省事,但蜘蛛會認為大量不同地址最终都指向同一個頁面,容易和重复内容混淆,也不利于判断哪些舊地址可以放弃。更常见的做法是:有對應内容的,跳到最相關的那一頁;没有對應内容的,直接 404 或 410。

跳轉的目标越具体,蜘蛛越容易理解這次變動;目标越笼统,越容易變成一批長期存在的模糊入口。

Sitemap 與站内搜尋也要同步

Sitemap 是 URL 發現的重要来源之一,但它只是入口之一,不是唯一的真相。如果 Sitemap 里還列着大量已经下线的地址,蜘蛛會按图索骥去訪問,然後拿到 404。短時間問题不大,長期如此會让 Sitemap 的可信度下降。站内搜尋、标簽聚合這類自動生成頁面的地方,也要確認不會把已下线的 URL 重新吐出来。

服務器层面別留下異常

下线處理中還容易遇到服務器侧的問题:頁面文件删了,但路由規則没改,返回 500;或者返回一個 200 的空白模板。前者會让蜘蛛把地址当作暂时故障,之後反复重试;後者則可能被当成正常頁面。改動前後最好检查一下响應头和狀態碼,确保返回的是预期结果。

收尾检查清單

  • 下线地址的狀態碼是否稳定、是否符合内容實际情况;
  • 站内是否還有指向它們的連結,包括列表頁和推荐模块;
  • Sitemap 是否已经同步更新;
  • 跳轉目标是否與舊頁面主题相關;
  • 訪問日誌中這些地址的抓取次數是否在逐步减少。

頁面下线不是一次性的動作,而是一段收尾過程。把入口、狀態碼和站点地图放在一起處理,蜘蛛才能逐步把注意力轉移到真正還在维護的頁面上。