有些页面看起来「能打开」,状态码是 200,但页面里几乎没有实质内容:商品下架了只剩一句「该商品已下架」,搜索没有结果只显示「没有找到相关内容」,栏目建好了却一篇内容都没有。用户看到的是空架子,蜘蛛看到的是一个正常的 200 页面,于是它可能反复来、反复抓,把抓取时间花在这些没有价值的地址上。这类页面通常被称为软 404。
软 404 和真 404 有什么区别
真 404 是服务器明确告诉蜘蛛「这个地址不存在」,蜘蛛会较快地把它从索引中移除。软 404 则相反:地址返回 200,内容却是空的、错误的或与预期完全无关,蜘蛛只能靠自己判断,判断结果往往滞后,而且不同搜索引擎的判断标准也不一样。
- 真 404 / 410:状态码明确,处理干脆。
- 软 404:状态码 200,内容空或近似空,蜘蛛需要猜。
- 被 noindex 的空页:不进索引,但仍可能被持续抓取。
常见的软 404 来源
1. 站内搜索结果页
当用户搜索一个不存在的关键词时,页面返回 200,标题里还带着关键词,正文只有「没有找到相关结果」。这类地址可以被无限组合出来,如果允许被抓取,很容易变成大量低质页面的入口。
2. 已下架或已过期的内容
商品下架、活动结束、文章被删除后,很多站点只是把正文清空,留下一个模板页。地址还在,内容没了,访问者也只能看到页头和页脚。
3. 参数或路径拼错
URL 里多了一个无意义的参数、ID 不存在、栏目路径写错,程序没有走 404 分支,而是渲染出一个空白模板。
4. 模板渲染失败或数据为空
接口返回空数组、模板变量未取到值,页面依然以 200 输出。这类问题在改版或接口调整后尤其常见。
自查怎么做
- 抽样访问:从日志或 Sitemap 里随机抽一批 URL,用命令行或浏览器看状态码,同时看页面正文字数。状态码 200、正文字数极少的,先标记出来。
- 看日志中的重复抓取:某个地址被反复抓取,却从不产生点击或转化,值得重点检查。
- 用站长平台工具:主流搜索平台都提供索引状态和抓取异常的报表,可以筛出「已抓取但未索引」「内容过短」一类的页面。
- 改版后专项检查:模板、路由、接口调整后,跑一遍主要页面类型,确认没有批量输出空页面。
判断标准可以很简单:如果这个页面拿掉导航和页脚之后,剩下的内容不足以回答「用户为什么来这里」,它就值得被重新处理。
怎么处理不同类型的空页面
- 内容确实永久下架:如果已有替代页面,做 301 指过去;没有替代页面的,返回 410 或 404,让蜘蛛明确知道可以移除。
- 暂时缺货、暂时下线:保留页面的有效信息,比如型号、参数、预计恢复时间,把它做成一个对用户有用的页面,而不是空白模板。
- 站内搜索无结果页:考虑加 noindex,并在页面上给出相关推荐或热门入口;如果程序上容易实现,也可以直接返回 404。
- 空栏目、空标签页:先补齐内容再开放抓取,或者暂时关闭入口、加 noindex,等有内容了再放出来。
- 参数错误页:在程序层面统一走 404 分支,不要让它渲染成 200。
建立例行检查的节奏
软 404 不是一次性问题。每次上新、下架、改版、调整接口,都可能产生新的空页面。比较省力的做法是:每周抽样检查一批新增或变更的 URL,每月结合站长平台报表复盘一次索引情况,把「上线前抽查」写进发布流程里。
需要提醒的是,处理软 404 的目标不是把所有空页面都删掉,而是让蜘蛛把有限的抓取时间用在有内容的页面上。状态码、内容质量和入口设计,这三件事要放在一起看,单改一项往往解决不了根本问题。