蜘蛛判断一个 URL 是否值得反复抓取,主要依据响应状态码和页面内容。当站点把“已下架”“无结果”“参数错误”这类页面统一用 HTTP 200 返回时,蜘蛛会把它当成正常内容页,继续投入抓取配额,而这类页面几乎不会带来有效入口。这种情况通常被称为软 404。
软 404 对抓取的直接影响
软 404 不会让蜘蛛立刻放弃某个目录,但它会稀释入口质量:日志里 200 状态码占比很高,实际有内容的页面比例却很低;蜘蛛在同一批模板化空页之间来回抓取,新页面被发现的时间被拉长。判断时不要只看状态码分布,还要把响应体积和正文特征一起看。
从抓取日志识别软 404 的信号
- 状态码为 200,但响应体积集中在一个很小的区间,且模板高度一致;
- 大量 URL 的正文差异极小,主要差别只在标题或筛选条件上;
- 同一路径下的 URL 被反复抓取,却没有新的内链或外链指向它们。
常见的软 404 来源
- 筛选、排序、分页参数超出有效范围后仍返回 200 的列表页;
- 站内搜索无结果页;
- 已下架商品、已删除文章但没有做跳转或状态码处理的详情页;
- 栏目为空时仍可正常访问的聚合页。
按页面类型选择返回方式
处理原则是让状态码与页面的真实含义一致,而不是一律 200 或一律 404。
- 内容永久移除且没有替代页:返回 404 或 410,并清理站内指向它的链接;
- 内容迁移到新地址:使用 301 指向新 URL,同时避免跳转链过长;
- 参数组合无效但仍需保留形式的页面:返回 404 或 410,或规范到有效 URL;
- 站内搜索无结果页:可返回 404,或保留页面但避免被大量内链暴露;
- 临时维护:返回 503 并配合 Retry-After,不要用 200 加“稍后再试”文案。
排查顺序建议
- 先从日志中筛出状态码 200、响应体积偏小的 URL 段;
- 抽样查看这些页面的正文,确认是否为模板化空页;
- 回到代码或 CMS,确认这些页面的状态码由哪一层决定;
- 调整后观察该 URL 段的抓取频次与状态码分布变化;
- 同步清理站内指向无效页的链接,避免入口继续扩散。
把无效页返回正确的状态码,通常比新增一批内链更能改善抓取效率,但它不会立刻改变已经抓取的 URL 的处理结果,需要持续观察日志。
软 404 的本质是状态码与内容语义不一致。定期抽样核对 200 页面的正文质量,并让无效页返回符合实际的状态码,有助于让蜘蛛把抓取配额更多放在有效页面上。