做站点运营时,多数人关心的是「怎么让蜘蛛多来」,却很少回头看「蜘蛛来了之后抓到了什么」。软404就是这样一个容易被忽略的环节:页面返回 200 状态码,用户能打开,蜘蛛也能打开,但页面上没有任何实质内容。对搜索蜘蛛来说,它看起来是一个正常页面,于是会被反复回访、反复抓取,占用的却是本该给新内容的机会。
软404到底指什么
严格说,软404并不是一个官方术语,而是业内对一类页面的统称:HTTP 状态码是 200,但页面内容为空、只剩一句提示语,或者干脆是错误信息。它和真正的 404 的区别在于,服务器没有明确告诉蜘蛛「这个地址没有东西」,蜘蛛只能自己判断,而判断往往没那么准。
- 站内搜索后无匹配结果,页面只显示「没有找到相关内容」;
- 筛选条件组合后商品数为零,列表区域一片空白;
- 商品已下架、活动已结束,但页面模板仍然保留;
- 分类下所有内容被删除,栏目页只剩标题和导航;
- 分页参数超出实际范围,比如只有 5 页却访问到第 50 页。
它为什么会影响URL发现
蜘蛛的抓取资源是有限的。当一个站点里存在大量这种「能打开但没内容」的地址时,抓取队列会被它们占据,真正需要被发现的新页面、更新页面排在后面,被发现的时间就被拉长。更麻烦的是,这类地址往往数量庞大且组合无限——筛选参数一交叉,就能生成成千上万个 URL,其中绝大多数都没有对应内容。
此外,这些页面如果被收录,还会稀释整个站点的质量信号。用户在搜索结果里点进来看到空白页,跳出率自然高,长期来看对站点的整体表现没有好处。
常见来源与处理思路
站内搜索结果页
这是最典型的一类。搜索页本身对用户有用,但对蜘蛛意义不大,因为关键词组合是无穷的。比较常见的做法是在 robots.txt 里屏蔽搜索路径,或者给搜索结果页统一加 noindex 标签,避免它们进入索引。
筛选与参数组合页
并不是所有筛选页都该处理掉。有实际商品、有独立搜索需求的筛选组合,可以保留并做规范;而没有结果或结果极少的组合,应当返回 404 或 410,而不是继续返回 200 的空壳。
已下架商品与过期活动页
这里要分情况。如果商品只是暂时缺货,页面保留、加个提示即可;如果是永久下架且站内没有同类替代,返回 410 更干脆;如果存在高度相关的替代商品,用 301 指过去对用户和蜘蛛都更友好。判断标准是:用户打开这个地址时,看到的应该是有用的信息,而不是一句「内容不存在」。
空分类与超范围分页
分类下内容被清空后,页面要么补充内容,要么下线。分页则建议在前端做判断,超出范围的页码直接返回 404,不要让同一个空列表被无限翻下去。
怎么排查
- 从服务器日志入手,找那些被频繁抓取、但页面体积很小、响应又很快的地址;
- 随机抽样几十个筛选页和搜索页,看它们的实际内容量和状态码;
- 在搜索控制台的覆盖率报告里,关注「已抓取但未编入索引」的比例变化;
- 把发现的地址按类型归类,确定每一类是保留、加 noindex 还是返回 404 / 410。
处理时要注意什么
不要为了省事把所有「有点空」的页面都判定为 404。季节性栏目、刚上线还没填充内容的分类,本身是有存在价值的,一刀切反而会误伤。
真正需要处理的是那些长期没有内容、也不会再产生内容的地址。处理完之后,建议过几周再回头看一次日志,确认蜘蛛的抓取重心是否回到正常内容页上。
软404不会立刻带来明显的负面影响,它的代价是缓慢累积的:抓取预算被一点点消耗,新页面的被发现时间被一点点拉长。把它纳入日常的站点运营检查清单,比事后补救要省力得多。