搜尋抓取

软 404 與空内容頁:蜘蛛抓到「有 URL 没内容」的頁面後會怎样

服務器返回 200,頁面却只有導航和頁脚,這類软 404 在抓取日誌里不容易被發現。本文說明蜘蛛遇到空内容頁後的常见處理方式、哪些 URL 最容易變成空壳、200 與 404、noindex 该怎么選,以及一套可落地的自查顺序。

搜尋抓取

软 404 與空内容頁:蜘蛛抓到「有 URL 没内容」的頁面後會怎样

有些 URL 抓取时狀態碼是 200,服務器也很配合,但打開一看,頁面上除了導航、面包屑和頁脚,什么都没有。這類頁面行内常叫「软 404」:它没有报错,也不算真正的空响應,只是内容层面是空的。對蜘蛛来说,它拿到的是一次成功抓取,却几乎得不到可用信息。

软 404 為什么容易被忽略

因為它不产生错誤日誌。服務器只看到狀態碼 200,监控上一切正常;站長工具里也只是多了一個被訪問的 URL。只有在抓取日誌里把「狀態碼」和「响應体大小」放在一起看,才會發現一批体积明顯偏小的頁面。

常见的空内容頁来源包括:篩選條件组合後没有结果、商品已下架但模板仍在、活動結束後的落地頁、空标簽或空分類、用戶主頁尚未發布内容、分頁頁碼超出總頁數、以及依赖前端渲染但渲染失敗後剩下的空壳。

蜘蛛抓到空内容頁之後會做什么

搜尋引擎的具体處理並不公開,也不承诺某種固定结果,但從抓取行為上能观察到一些倾向:

  • 首次抓取已经消耗了一次抓取動作,這部分成本收不回来;
  • 同一模板批量生成、内容高度相似的空頁面,重訪間隔往往會拉長;
  • 部分空頁面可能被搜尋引擎自行判定為软 404,從而從结果中移除;
  • 如果空頁面通過内鏈大量分發,還可能稀释真正有價值頁面的抓取机會。
空頁面最大的成本通常不是它自己有没有排名,而是它占用的那次抓取動作。

200、404、410、noindex 该怎么選

關键是想清楚:這個 URL 以後還會不會有内容。

  • 内容永久没有了:直接返回 404;确定不會再回来且希望尽快清理的,可以用 410。
  • 内容暂时消失:比如季节性缺货、临时下架,保留 200 是合理的,但頁面上要给出明确說明和相關的替代入口,而不是只留一個空模板。
  • 頁面有存在價值,但不希望被索引:用 noindex。要注意 noindex 的意思是「別收錄」,不是「別抓取」,蜘蛛仍可能来抓。
  • 不要用 200 伪装错誤頁:把「没有找到」的内容用 200 返回,就是在制造软 404,長期看只會让抓取记錄里多出一堆無信息量的 URL。

分頁越界和站内搜尋结果頁

頁碼超過列表實际頁數时,返回 404 比渲染一個空列表更清楚。站内搜尋结果頁通常建议 noindex,但它們依然是可被抓取的 URL,尤其是被外部連結或站内分享引用之後,仍會進入發現路径。

一套可落地的自查顺序

  1. 在抓取日誌中筛出狀態碼為 200、但响應体大小明顯低于同類型頁面平均值的 URL;
  2. 對這些 URL 抽样,人工確認是否為篩選無结果、已下架、空分類等類型;
  3. 检查頁面正文文本量,看是否只由導航、頁脚和推荐模块构成;
  4. 观察這批 URL 的重訪間隔是否在變長,作為價值判断的參考;
  5. 如果是前端渲染站点,確認關閉脚本後返回的 HTML 是否只是一個空壳。

從源头减少無效 URL

  • 篩選、排序參數组合只在有结果时生成可抓取的連結,無结果时不在頁面上外推;
  • 列表分頁連結不要指向越界頁碼,最後一頁之後不再輸出「下一頁」;
  • 分類和标簽在内容為空时不要進入導航和站点地图;
  • 用 robots.txt 屏蔽無價值參數时要有清醒認识:屏蔽抓取並不等于阻止 URL 被發現。

软 404 不是一個能一次修完的問题,它往往随着篩選、下架、活動上下线不断产生。比較務實的做法是把它当成日常清理項:定期從日誌里捞出体积異常的 200 頁面,判断它們该變成 404、该补充内容,還是该留在原地。整理一次之後,抓取记錄會干净不少,真正需要更新的頁面也更容易被安排上。