网站收录

返回 200 但页面是空的:软 404 的判断与收尾处理

返回 200 不等于这个页面值得收录。软 404 常见于已下架商品页、空筛选页和空分类页,会占用抓取预算、干扰站点质量信号。本文给出识别软 404 的几个检查点,并按有无替代内容分别说明 301、404、noindex 等处理动作,让状态码、页面内容和收录意图保持一致。

网站收录

返回 200 但页面是空的:软 404 的判断与收尾处理

页面能打开、状态码是 200,不代表它值得被收录。很多站点的收录问题,源头不是爬虫不来,而是一批“看起来正常”的 URL 把索引位和抓取预算占掉了——这类页面通常被叫做软 404。

软 404 是什么

服务器返回 200,但页面上没有用户真正想找的内容,或者正文本身就在说“这个东西不存在”。爬虫拿到的是“抓取成功”的信号,于是把它当成一个有效页面继续处理,后续的抓取分配和索引判断都会受它影响。

常见的几种形态

  • 已下架的商品页、过期的活动页,正文只剩一句“该商品已下架”。
  • 筛选参数组合出空结果,页面依然是 200,只是列表区域是空的。
  • 分类页或标签页里没有任何条目,模板照常完整渲染。
  • 内链写错导致的空页,共用模板统一输出“暂无内容”。
  • 后端异常时仍返回 200,但正文是报错信息或默认框架。

为什么值得处理

单个页面影响有限,成规模后问题会累积:一是持续消耗抓取预算,让爬虫把时间花在没有内容的 URL 上;二是这些 URL 一旦进入索引,会给站点整体质量判断带来噪音;三是用户从搜索结果点进来却得不到答案,体验上也是实打实的损失。

怎么确认一批 URL 属于软 404

  1. 抽样:从抓取日志或站点地图里挑出几个可疑模板,人工打开确认正文是否有实质内容。
  2. 对照状态码与正文长度:同一模板下,正文明显偏短的那批优先排查。
  3. 找统一提示语:把“已下架”“暂无内容”“无结果”这类文案当成特征串去批量筛选。
  4. 确认渲染层:如果内容由 JavaScript 加载,要按爬虫视角核对最终 DOM,而不是只看源码。

处理动作按情况分开

  • 有替代页面的,例如商品换了型号,301 到最接近的可用页面。
  • 确实永久没有的,返回 404 或 410,不要用 200 硬撑。
  • 暂时缺内容但以后会补的,可以保留 200,但要确认页面本身有基础信息,而不是空壳。
  • 参数组合造成的空页,从入口层面处理:不让内链和站点地图收录,必要时用 robots 规则限制抓取。
  • 站点级的空壳模板,从模板层修改,让空状态返回正确状态码,比事后一条条清更省事。

和 noindex、canonical 的配合

如果页面有实际用途但不想让它进索引,用 noindex 更明确;如果同一份内容存在多个 URL,先把 canonical 定清楚,再决定空页的去留。两者不要混用在同一批 URL 上,信号容易互相抵消,最后谁也说不清爬虫听了哪一个。

软 404 的处理重点不是“删掉多少 URL”,而是让状态码、页面内容和你的收录意图三者保持一致。

收尾检查

  • 处理一段时间后,回看这批 URL 在索引状态和抓取日志里的变化。
  • 确认没有把正常页面误判成空页,尤其是内容靠前端异步加载的页面。
  • 把这类检查固化成模板上线前的一个步骤,成本远低于事后排查。