搜尋抓取

空頁面返回 200:软 404 怎么處理,才不浪費抓取资源

有些頁面能正常打開,狀態碼是 200,正文却空空如也:商品下架、搜尋無结果、分類被撤空。這類软 404 不會报错,却會長期占着抓取队列。本文說明它常见的几種样子、蜘蛛會怎么處理,以及按狀態碼與内容一致性来清理的几種做法。

搜尋抓取

空頁面返回 200:软 404 怎么處理,才不浪費抓取资源

有一類頁面很尴尬:它能正常打開,狀態碼是 200,但正文里没有任何實质内容——商品早就下架了,模板還在;活動結束了,只剩空壳;站内搜尋没有结果,頁面上只有搜尋框和一句提示。這類頁面在技術上不算 404,在蜘蛛眼里却和空頁面差別不大,通常被称為软 404。

软 404 常见的几種样子

  • 商品、房源、职位下架後,詳情頁模板仍返回 200,只是内容区為空或只剩一句已下架。
  • 站内搜尋無结果頁,返回 200,頁面没有可讀内容。
  • 分類頁、标簽頁下的條目被撤空,地址依然有效。
  • 内容已被刪除,頁面只顯示内容不存在,狀態碼却是 200。
  • 地区、語言或分站判断失敗,返回了空白預設模板。

蜘蛛看到的是一個有效頁面

蜘蛛判断一個 URL 值不值得繼續抓,主要依據两件事:狀態碼和抓到的内容。狀態碼 200 意味着請求成功,URL 是活的;内容單薄則會让它對這個頁面的價值打折扣。不同搜尋引擎的具体處理並不一致,有的會在站長後台把這類頁面标出来,有的直接按低质量頁面降權處理,但共同点是:它不會像 404 那样快速登出抓取队列。

更麻烦的是,如果頁面内容會随着資料變動(比如库存數、價格标簽),蜘蛛可能認為它一直在更新,從而安排更频繁的回訪。

為什么它會持續消耗抓取资源

  • 内鏈仍然指向它,蜘蛛每次巡检都要走一遍。
  • Sitemap 里還列着它,等于定期提醒蜘蛛来抓。
  • 它不會被当作失效地址快速收敛,反而可能因為细微變動被反复回訪。
  • 站内連結價值被引向没有内容的頁面,真正需要被抓的頁面少了一次被走到的机會。

處理思路:让狀態碼和内容保持一致

  1. 先分清永久刪除還是暂时缺货。内容彻底不要了,返回 404 或 410,同时清理内鏈和 Sitemap 中的入口;只是暂时缺货、以後還會上架的,保留頁面並给出替代推荐,這属于正常頁面,不必删。
  2. 站内搜尋無结果頁加 noindex。很多站的問题不在于無结果頁本身,而在于它被別處連結引用,甚至進了 Sitemap。
  3. 空分類、空标簽頁做合並或關閉。條目撤空後,重定向到上級分類,或不再暴露入口,不要留一個空壳地址。
  4. 不要用 200 掩盖错誤。程序異常、資料取不到时返回正常模板,會让蜘蛛把一次错誤当成一次正常抓取记錄下去。

怎么把软 404 找出来

搜尋引擎的抓取統計里通常會有相關提示,可以先看這一項。服務器日誌里也能看出线索:同一批 URL 被反复抓取、返回 200,但响應体积明顯小于同模板的平均值。更简單的办法是定期抽样,把返回 200 的 URL 按正文長度排序,看看有没有一批頁面長期處于几乎没有内容的狀態。

清理這類頁面不需要一次做完,但越早處理越好。它們不會制造明顯的报错,只是安静地占着抓取队列的位置,让真正该被抓的頁面排在後面。

判断标准其實只有一條:用戶打開這個地址,能不能得到與标题相符的内容。得不到,就该考虑改用合适的狀態碼。