网站收录

页面返回 200 但内容已经没了:软 404 与收录状态的核对顺序

有些 URL 状态码一直是 200,打开却只有模板和一句提示,这类软 404 不会在日志里报错,却会持续消耗抓取、稀释页面质量判断,甚至让空壳页留在索引里。本文梳理软 404 的常见来源、它与真 404 的区别,以及从状态码、原始 HTML、站内入口到索引状态的核对顺序。

网站收录

页面返回 200 但内容已经没了:软 404 与收录状态的核对顺序

在日志里看到某个 URL 被反复抓取,状态码是 200,但打开一看只有页头页脚和一句"没有找到相关内容",这类页面通常被称为软 404。它的影响比较隐蔽:站点层看不到报错,爬虫却拿到一个没有实质内容的页面。

软 404 和真正的 404 差别在哪

真正的 404、410 是明确的信号,告诉爬虫这个地址没有内容,后续不必反复来取。软 404 返回的是 200,等于告诉爬虫"这里有内容",于是抓取继续,索引里可能留下一个空壳。差别不在页面好不好看,而在返回给爬虫的状态信号是否准确。

常见的几个来源

  • 筛选、排序、分页组合后结果为空,页面仍然渲染出完整模板;
  • 商品或文章已下架、已删除,但详情页路由还在,返回的是空模板;
  • 参数被随意拼接,命中一个不存在的内容 ID,程序兜底返回 200;
  • 前端渲染失败或接口超时,只留下骨架屏和占位文案;
  • 活动页过期后没有下线,内容被替换成"活动已结束"。

为什么它会影响收录

一是浪费抓取预算。爬虫把时间花在这些空页面上,真正需要更新的页面来得就少。二是稀释质量判断。一个站点里大量返回 200 却没有内容的 URL,会让整体页面质量的评估变差。三是索引里可能出现空壳结果,用户搜到点进去什么也没有。

核对顺序

  1. 先看状态码。用抓取工具或命令行确认返回的是 200、404 还是 301,注意区分渲染前后的差异。
  2. 再看返回给爬虫的 HTML。很多软 404 只发生在无 JS 的原始 HTML 里,或者在渲染后才补上内容,两者要分开看。
  3. 确认页面是否有实质内容。标题、正文、可用信息是否具备,还是只有模板和一句提示。
  4. 检查站内入口。这些 URL 是从哪里被发现的,列表页、搜索页还是外链,入口不清理会持续产生新的空页面。
  5. 看索引状态。已经进入索引的空壳页,需要在下线后观察一段时间才会逐步消失。

处理时按内容状态分情况

  • 内容永久不存在:返回 404 或 410,同时清理站内指向它的链接。
  • 暂时缺货或缺内容:保留 200 也可以,但要给出明确说明、推荐入口或返回上一级的路径,避免页面只有一句提示。
  • 参数组合导致无结果:要么让这类组合不产生可访问的独立 URL,要么在无结果时返回合适的状态,不要一律 200。
  • 渲染失败:先修接口和兜底逻辑,再谈收录。
判断标准可以用一句话概括:如果这个页面交给用户看,用户会觉得"这里没有东西",那么它大概率也不该以 200 的形式交给爬虫。

收口之后怎么盯

处理完不要只改一次。把这类页面加进抓取日志的观察清单,定期统计返回 200 但内容为空的 URL 数量;同时留意索引里的空壳页有没有减少。上线新模板、新筛选逻辑时,把"无结果时的返回状态"写进验收项,比事后批量清理省事得多。