站点上总有一批页面,服务器返回的是 200,打开却几乎没有内容:筛选条件无结果的列表页、下架后仍可访问的商品页、翻到第二十页之后的空分页。这类页面在用户眼里是“没什么可看”,在搜索蜘蛛眼里则更像一个信号混乱的地址——它拿到的状态码说明“页面正常”,但页面本身并没有提供对应的内容。这就是通常说的软 404。
软 404 为什么容易被反复抓取
因为从 HTTP 层面看,它们和正常页面没有区别。蜘蛛不会因为页面空白就自动提高判断门槛,它主要依据状态码和链接关系决定是否继续访问。只要内链、Sitemap 或历史记录里还有指向这些 URL 的入口,蜘蛛就会按惯例回来重抓,而且往往是定期回来。
更麻烦的是这类地址经常是批量生成的。一个筛选组合、一个分页参数、一个已删除的 SKU,都可能对应一个独立 URL。数量一旦上去,占用的抓取次数就不再是小数目。
蜘蛛识别“低价值页面”的常见依据
- 正文可提取的内容极少,页面主要剩下导航、页头和推荐位。
- 同一模板下大量页面文字高度重合,只是参数或标题不同。
- 页面明确写着“暂无结果”“该商品已下架”,但状态码依然是 200。
- 分页序号超出了实际数据范围,页面只剩一个空的列表容器。
- 页面确实存在,但重要内容依赖交互才出现,直接抓取时是空壳。
这些信号单独出现不算严重,成规模出现时,蜘蛛对整个站点的抓取分配就可能变差:它拿回来的都是“看似有效”的页面,却总是抓不到新内容。
处理思路:先分清是暂时还是永久
永久不存在的页面
如果内容不会再回来,直接返回 404 或 410 更清楚。410 表达“已删除”更明确一些,但两者对抓取的影响方向一致,不必为了纠结用哪个而迟迟不动。
暂时缺货、季节性的页面
这类页面有重新上架的可能,不建议直接删掉。更稳妥的做法是保留 URL,在页面上给出明确状态,并保留商品或内容的基本说明,让蜘蛛每次抓到的不是一片空白。
筛选与排序产生的组合页
并不是所有筛选页都要屏蔽。真正有搜索需求、有独立内容的少量组合可以保留;纯粹由参数排列出来的组合,用 robots 规则或 noindex 控制,别让它们进入索引和抓取队列。屏蔽前先确认这些 URL 没有从别处获得外链。
超出范围的分页
超出实际页数的分页地址,返回 404 比返回一个空列表页更干净。也可以把它规范到最后一个有效分页,但要避免所有超范围分页都指向同一地址,那样会制造新的重复。
排查顺序
- 先看抓取日志里状态码为 200、但响应体很小或内容明显重复的 URL 占多大比例。
- 再看这些 URL 的入口来自哪里:内链、Sitemap、历史外链,还是站内搜索。
- 按类型归并处理,能用规则批量解决的不要一个个手工改。
- 调整后观察一段时间,确认这些地址的抓取次数确实在下降。
处理完之后,记得同步清理内链和 Sitemap 里的对应入口。一个已经返回 404 的 URL,如果还被大量内链指向,蜘蛛仍会继续撞上它,省下来的抓取次数其实并没有真正省下来。把这项检查纳入常规巡检,比等到抓取异常再回头翻日志要轻松得多。
清理软 404 不会立刻带来排名变化,它的意义在于把有限的抓取次数从“空跑”挪回真正需要更新的页面。