蜘蛛来抓页面,最怕的不是返回错误码,而是返回一个 200 却几乎没有内容的页面。前者至少能让蜘蛛知道“这里没有东西”,后者会让它把抓取预算花在无效路径上,还可能把同一类 URL 标记为低质量。软 404 就是这类情况的典型表现。
软 404 和真正 404 的差别
真正 404 是服务器明确告诉蜘蛛:这个地址不存在。软 404 则是地址还能访问,状态码是 200,但页面主体没有实质内容,或者内容与用户预期严重不符。比如筛选条件组合后没有商品、下架商品页仍保留、活动结束只剩一句“已结束”、站内搜索无结果只显示“没有找到”。
对蜘蛛来说,200 是一个承诺:这里有一份可索引的内容。当它反复抓到空壳,就会降低对这类 URL 的信任,甚至影响整站抓取节奏。
蜘蛛遇到空页面后通常会怎么反应
- 把该 URL 归入软 404 或低质量页面,减少再次抓取。
- 把同一模板生成的 URL 一起观察,降低整组路径的抓取频次。
- 停止沿着这些页面继续发现新链接,内链出口被浪费。
- 已经收录的空页面可能被降权或移出索引,但过程较慢。
- 如果空页面数量持续增加,服务器抓取预算会被大量占用。
哪些 URL 容易变成空页面
- 筛选参数组合后没有结果的列表页。
- 商品下架、库存为零但页面还保留的详情页。
- 过期活动、过期专题、已结束的报名页。
- 分页超出实际页数,仍然返回 200 的翻页地址。
- 标签聚合页下没有关联内容,只剩标题和导航。
- 站内搜索结果页,无结果时也返回 200。
状态码要尽量诚实
能明确判定地址不再存在时,返回 404 或 410 比返回 200 空页更有利于抓取。410 表示永久移除,通常能让蜘蛛更快放弃。如果页面只是暂时无货、暂时无结果,可以保留 200,但要避免让蜘蛛把这类地址当成长期有效内容。例如筛选无结果页可以用 noindex 处理,而不是让它在索引里空转。
有些站点担心 404 影响用户体验,于是全部返回 200。结果是蜘蛛和用户都得不到明确信号,抓取预算被慢慢消耗。
内链与 Sitemap 要同步清理
空页面如果还有大量内链指向,蜘蛛就会反复走到这里。检查导航、列表模板、相关推荐和分页组件,避免把无内容 URL 放进去。Sitemap 里也不要保留已下架或已过期的地址,否则相当于主动把空页交给蜘蛛。
分页可以设置合理的最后一页,超出范围返回 404,而不是无限生成空列表。标签聚合页如果没有内容,可以从内链中撤下,或者合并到更合适的入口。
服务器稳定性与抓取预算的关系
服务器响应不稳定时,蜘蛛本来就会放缓抓取。此时大量空页面会让情况更糟:它花了请求次数,却没有拿到可索引内容,下一次可能直接减少整站抓取量。保持服务器稳定、减少无效 URL,是让抓取预算落在有效页面上的基础。
排查顺序可以这样走
- 看日志里状态码为 200 但响应体很小的 URL,按模板归类。
- 检查这些 URL 是否有实质内容,还是只有框架、导航和提示语。
- 看索引状态,确认空页面是否已经被收录。
- 检查内链和 Sitemap,找出谁在持续把蜘蛛引向这些地址。
- 对确定不存在的地址返回 404 或 410,对暂时无内容的页面做 noindex 或收口。
- 修复后观察抓取频次和有效 URL 的发现数量,不要只看单日日志。
空页面不是小问题。它不一定让蜘蛛立刻离开,但会让它把抓取机会花在错误的地方。把状态码、内链和 Sitemap 收拾清楚,比反复提交地址更有效。