软 404 是什么:状态码没错,内容已经没了
服务器返回 200,代表这次请求是成功的。但“请求成功”和“页面有价值”是两件事。当一个 URL 能正常打开,正文却只剩下“该商品已下架”“暂无相关结果”“活动已结束”,或者整页都是导航、推荐位和页脚,蜘蛛在判断时很可能把它归为软 404——也就是不该占用索引位置的空页面。
它和真正的 404 区别在于:404 明确告诉蜘蛛“这里没有东西了”,而软 404 是“打开是打开了,但等于没有”。正因为不报错,这类页面往往会在站里积很久,直到你去看索引报告和日志才发现。
哪些页面最容易变成软 404
- 已下架、已售罄的商品详情页,页面还在但没有任何可读信息;
- 站内搜索的无结果页,尤其是带关键词参数的组合 URL;
- 空栏目、空标签页,只有标题和一句“暂无内容”;
- 活动结束后的落地页,主体被撤掉只留下倒计时或“谢谢参与”;
- 内容已删除、模板却仍在渲染的占位页;
- 分页越界,比如 ?page=99 实际没有任何条目。
共同点是:HTTP 状态是 200,页面主体接近零信息量,并且和站内其他页面的框架高度相似。
蜘蛛大致会看哪几件事
没有人能给出精确的判定公式,但从结果倒推,几个信号比较明显:
- 正文占比:可读文本太少,模板部分占了大半;
- 页面间相似度:同一套模板批量生成的空页,彼此几乎没有区别;
- 与标题、描述是否相符:标题写的是商品,页面上却什么都没有;
- 访问行为:跳出高、没有内链指向,蜘蛛也缺少再次抓取的理由。
这些信号叠加到一定程度,页面就可能被当作软 404 排除出索引,或者长期停在“已抓取未索引”的状态。
先分类,再决定怎么处理
处理软 404 的核心判断只有一句:这个 URL 以后还想不想让它出现在搜索结果里。想做,就补内容;不想做,就明确告诉蜘蛛它已经不存在。
- 确认不再提供的内容:返回 410 或 404,同时把有价值的内链指向替代页面。继续返回 200,只会让蜘蛛反复回来抓。
- 暂时缺货、暂时无结果:保留页面,但补上替代推荐和同类内容入口,避免只剩一个空状态。
- 站内搜索结果页:一般没有收录价值,用 noindex 处理,同时放开 follow,方便蜘蛛顺着走到详情页。
- 空栏目、空标签:要么合并到上级栏目并 301,要么等确实有内容了再放开收录。
不要靠往空页里塞几段通用文案来“救”它。模板填充出来的文字,和空页在判断上没有本质区别,还多消耗一份抓取预算。
日常怎么把它们找出来
索引报告里的“软 404”分组是最直接的入口,但它通常滞后。更及时的办法是从自己这边筛:
- 在服务器日志中筛出状态码 200、但页面体积明显偏小的 URL;
- 给下架、售罄、无结果页面加统计标记,定期导出这批 URL 看状态;
- 抽查页面时只保留正文部分,看还剩多少字。
把这几类页面控制住之后,抓取预算会更多落在真正有内容的 URL 上,索引里也不会再挂着一批没有价值的地址。收录这件事,很多时候不是要爬得更多,而是先让不该来的别来。