网站收录

状态码 200 的空壳页被收录:先分清软 404 的几种类型

状态码正常、内容却是空的页面,容易被当作可抓取页面处理。这篇文章说明软 404 为什么会被索引,按无结果页、空分类页、下架页、兜底页分类,并给出从抽样到状态码修正的核对顺序,以及 noindex 与 404、410 之间的取舍。

网站收录

状态码 200 的空壳页被收录:先分清软 404 的几种类型

有些 URL 在索引里能搜到,点进去却是一句“暂无相关内容”或一个空模板。它们的状态码是 200,日志里抓取也正常,但页面本身没有可用信息。这类页面通常被称为软 404,是收录核对里容易被跳过的一类。

软 404 为什么会被索引

搜索引擎判断页面价值,不只看状态码。状态码 200 只说明服务器能正常返回内容,不代表返回的内容值得保留。当一个页面对所有访问都返回 200,正文却由模板拼出一句提示语,抓取端会先把它当作可抓取的页面,能否留下则取决于后续的质量判断。

如果这类页面数量少,影响有限;一旦由列表、筛选、分页批量生成,就可能占用相当一部分抓取资源,把真正需要更新的页面挤到后面。这和 URL 是否被发现有关,但问题不在发现渠道上——无论是内链、sitemap 还是外部入口,都只能把 URL 送进来,不能决定它是否留下。

先分清几种常见的软 404

  • 无结果页:搜索、筛选、标签组合没有匹配项时,仍返回 200 并展示空列表。
  • 空分类页:分类下暂时没有内容,模板照常输出标题和导航。
  • 已下架内容:商品或文章下线后被改成提示页,但 URL 保留且状态码为 200。
  • 模板兜底页:参数缺失或被改写时程序走进默认分支,输出一个通用页面。
  • 占位页:为占位而发布的短内容,只有标题和一句话。

这几类的处理方式并不一样,核对时不要混在一起看。

核对顺序

  1. 从索引中抽样。用站点查询或索引覆盖率报告,挑出标题、摘要看起来重复或空泛的 URL。
  2. 逐个确认实际响应:状态码是多少,返回的正文里有没有主体内容,是否只有导航和提示语。
  3. 判断性质:是“暂时没有内容”,将来会补,还是“永久没有内容”,已下线或本就不存在。
  4. 看生成来源:是程序兜底、运营下架,还是筛选参数组合。来源不同,修改的位置不同。
  5. 决定拦截方式,再回到索引核对是否按预期收敛。

处理方式的选择

永久没有内容

已下架、已删除且不会恢复的页面,返回 404 或 410 比返回 200 的提示页更清晰。410 的表达更明确,但 404 也够用。重点是不要再让状态码停留在 200。

暂时没有内容

确实会补充内容的分类或结果页,可以保留 200,但要避免把空状态当作正式页面推广:不放进 sitemap,不作为内链目标,必要时加 noindex。等内容补齐后再放开。

筛选与参数组合

多条件组合产生的空结果页数量往往最多。先确认哪些组合有实际搜索需求,再决定哪些收敛到主列表、哪些允许被抓取。canonical 指向主列表是一种做法,但它替代不了状态码和内容本身的判断。

程序兜底

兜底页容易在参数被改动时成批出现。核对时看请求参数、路由匹配和错误处理分支,把不存在的情况尽早返回正确状态码,而不是在模板层统一输出 200。

把 404 页面用 200 返回,只是把问题从状态码头挪到了内容层,抓取端仍会把它当成一个待评估的页面。

核对时容易忽略的两点

  • noindex 与状态码是两回事。加 noindex 能阻止页面进入索引,但如果数量很大,抓取请求本身仍然会发生;能返回 404 或 410 的,优先用状态码表达。
  • 软 404 会影响抓取配额的分配。抓取资源被空页占住时,新页面和更新频繁的页面被访问的机会就少,表现上像是“蜘蛛不来”,实际是来的路径被分散了。

验证

修完之后不要只看一次结果。按页面类型分组抽样,隔一段时间再核对:目标 URL 是否已被替换成正确状态码,索引里对应条目是否减少,原本被挤占的重点页面抓取是否回归。对暂时保留的页面,等内容补齐后再观察它们能否被正常收录。