搜尋抓取

404、410 與软 404:蜘蛛遇到死鏈之後會怎么處理

蜘蛛抓到不存在的 URL 时,404、410 和返回 200 的空壳頁面给出的信号完全不同。本文梳理三種狀態的差异、蜘蛛後續的再抓取與淘汰逻辑、死鏈清理的先後顺序,以及如何在站点日常运营中把無效抓取控制在低位。

搜尋抓取

404、410 與软 404:蜘蛛遇到死鏈之後會怎么處理

三種“頁面不存在”,含义並不相同

服務器返回頁面时會顺带给出一個狀態碼,蜘蛛主要靠它判断一個地址還有没有價值。404 表示找不到或已不存在,410 表示已明确永久刪除,而软 404 則是頁面已经不在了,服務器仍然返回 200,把用戶和蜘蛛引到一個空内容或错誤提示頁上。三種信号對抓取路径的影响完全不同,處理方式也不该一样。

蜘蛛遇到 404 之後會做什么

不少站長以為頁面返回 404,蜘蛛會当场把它從索引里划掉,實际並没有這么干脆。更常见的過程是:

  • 蜘蛛下次走到這個地址,重新確認一次狀態碼;
  • 如果多次抓取仍是 404,该地址的抓取優先級會逐步降低;
  • 经過一段時間没有恢复迹象,才慢慢從索引中登出。

這個观察期的存在,意味着 404 本身並不可怕,可怕的是它長期挂在内鏈里,让蜘蛛每隔一段時間就回来確認一次。無效地址如果還被内鏈反复指向,消耗的是整站的抓取次數,而不只是這一個頁面。

410 更明确,但不要随手使用

410 相当于告诉蜘蛛不用再来了,通常能更快地從索引中移除,适合内容确定不會恢复的情况,比如已下架的活動頁、已刪除的商品。

但要注意两点:一是並非所有 CDN、WAF 或站点框架都會原样透传 410,配置前最好用抓取工具確認返回头;二是如果内容只是临时下架,用 410 會让恢复過程更慢,這时保持 404 反而更合适。

软 404:返回 200 的空壳頁面

软 404 指 HTTP 狀態是 200,頁面内容却是“抱歉,该内容不存在”“商品已下架”之類的提示。這類頁面在蜘蛛眼里是正常存在的頁面,會被当作低质量内容繼續抓取,繼續占用资源,還可能與真正有價值的頁面争夺抓取机會。

常见的软 404 来源包括:

  • 内容刪除後只清空模板資料,没有改狀態碼;
  • 參數错誤或 ID 不存在时,统一跳回一個提示頁;
  • 舊版模板保留着 200 狀態,内容区已经空了;
  • 站内搜尋的無结果頁被当成普通頁面返回。

清理死鏈,先看它影响到了谁

清理死鏈不只是删掉就行。一條失效 URL 可能同时存在于 Sitemap、導航、正文内鏈和外鏈中,處理顺序會直接影响蜘蛛的再抓取节奏。

  1. 先從 Sitemap 中移除已確認失效的地址,避免繼續主動提交;
  2. 再看站内内鏈:能替換成有效地址的就替換,不能替換的去掉連結;
  3. 確認永久不再使用的地址,统一返回 410,其余保持 404;
  4. 最後處理有流量或外鏈指向的舊地址,用 301 指到最接近的新頁面。

顺序反過来做,常出現“内鏈已经改好、Sitemap 還在提交舊地址”的混乱狀態,蜘蛛會被两條互相矛盾的路径来回引。

死鏈本身不代表站点有問题,長期没人管的死鏈才會。判断标准很简單:這條地址還會不會被站内或站外的連結带到。

把清理變成日常习惯

站点規模一大,死鏈是持續产生的:栏目改版、商品下架、文章合並都會留下痕迹。與其等抓取異常时集中排查,不如固定周期做几件事——定期比對 Sitemap 與實际可訪問的 URL、抽查日誌中返回 404 較多的路径、新頁面上线时顺手確認舊頁面有没有留下空壳。這些動作不复杂,但能保證蜘蛛每次来的时候,走到的大多是還有内容的地址。