网站收录

返回 200 却没什么内容:软 404 与空壳页面的收录处理

有些页面能正常打开、状态码也是 200,正文却几乎是空的。它们常被蜘蛛抓到,短暂进索引后又被剔除,还持续消耗抓取配额。本文说明软 404 与空壳页面的常见来源、自查顺序,以及按场景给出的处理方式。

网站收录

返回 200 却没什么内容:软 404 与空壳页面的收录处理

很多站点默认一个判断:页面能打开、状态码是 200,就具备了被收录的资格。实际排查中反复出现的一类问题恰恰相反——状态码没问题,页面也能正常访问,但正文几乎为空。搜索蜘蛛抓到了,甚至短暂进了索引,过一段时间又被剔除,收录状态来回摆动。这类页面通常被称为软 404 或空壳页面。

状态码只回答“能不能访问”

HTTP 状态码解决的是这个 URL 是否存在、服务器能否正常响应的问题。200 表示响应成功,它并不评价页面内容有多少价值。把状态码当成收录开关,是很多空壳页面被批量放开的起点。

软 404 与常见的空壳页面

软 404 指页面返回 200,但内容表达的是“没有找到”“暂无数据”“已下架”这类状态。常见的来源包括:

  • 站内搜索无结果时,仍返回 200 并渲染一句“没有找到相关内容”。
  • 筛选参数组合下没有匹配条目,页面框架完整、列表为空。
  • 分页越界,翻到超出范围的页码,仍返回空白列表。
  • 已下架商品的详情页,模板还在,正文只剩标题和一句提示。
  • 由参数生成的重复视图,同一份内容被渲染成多个薄页面。

为什么它们会先收录后被剔除

抓取和索引是两件事。第一次抓取时,蜘蛛看到的主要是模板、导航和页脚,结构完整,容易先被判为正常页面;等页面真正进入索引、参与查询匹配时,几乎没有可用正文,于是被降权或移出。表现出来就是“已发现”“已编入索引”“已排除”之间来回变化。同时,这些 URL 还会持续占用抓取配额,让真正需要更新的页面排得更靠后。

自查顺序

  1. 从服务器日志中挑出返回 200、但响应体积明显偏小的 URL 样本。
  2. 对样本做渲染对比,确认浏览器里看到的内容与纯文本状态下的内容是否一致。
  3. 追溯这些 URL 的入口来源:来自内链、sitemap,还是站内搜索产生的参数链接。
  4. 对照索引状态报告的波动时间,看是否与这批 URL 的抓取记录吻合。

处理方式要分场景

  • 内容确实不存在了:直接返回 404 或 410,不要再返回“友好提示页 + 200”。用 200 包装一个不存在的页面,只会让判断变得更难。
  • 页面暂时为空但以后会有内容:比如刚建好还没上架的分类页,可以保留 200,但要保证有说明性正文和可用内链,避免纯空模板;短期不希望被收录时用 noindex 控制。
  • 站内搜索结果页与参数组合页:这类 URL 数量容易失控,一般不建议放开抓取,可通过 robots.txt 或 noindex 收敛。
  • 内容与别处重复:优先合并页面或补充差异化信息。canonical 只用来声明首选版本,不解决内容质量本身的问题。
状态码解决“能不能访问”,内容解决“值不值得收录”,两者不要混为一谈。

这类页面的处理不需要一次做完,但需要定期抽查。与其盯着收录总数的涨跌,不如先看增长的这批 URL 里,有多少是有真实内容支撑的。