搜索抓取

死链与软 404:抓取路径上的死胡同怎样拖慢 URL 发现

蜘蛛靠链接前进,遇到 404 或软 404 就得回头。本文拆开硬 404、软 404 和空结果页的区别,说明它们如何浪费抓取机会、切断通往深层页的链接通路,并给出一套可落地的状态码处理与内链自查办法。

搜索抓取

死链与软 404:抓取路径上的死胡同怎样拖慢 URL 发现

站内链接本质上是一张图,搜索蜘蛛顺着这张图从一个节点走到下一个节点。图里任何一个节点返回错误,路径就在那里断掉。断一处看似只是少了一个页面,实际影响往往沿着链接往上蔓延:原本可以由此继续前进的深层页面,失去了被发现的一条通路。

三种“撞墙”并不一样

硬 404 是最干脆的一种:地址不存在,服务器直接给出明确答复。蜘蛛很快会放下这个地址,把注意力转回有效页面。

软 404 麻烦得多:页面返回 200,状态看起来正常,但内容为空,或者正文只写了一句“内容不存在”“已下架”。蜘蛛需要额外判断才能确认这里没有东西可抓,判断成本比你想象的高。

还有一类介于两者之间的空壳页,比如无结果的筛选页、站内搜索页、JS 渲染失败后留下的空白容器。它们有完整模板,有导航有页脚,唯一缺的是主体内容。

死胡同的代价不止一个页面

  • 抓取额度被消耗在没有产出的地址上,真正需要复查的页面往后排。
  • 通往深层页的链接通路被切断,新 URL 的发现速度随之变慢。
  • 蜘蛛可能在后续几次回访里重复确认同一批失效地址,形成无效往返。
  • 用户和蜘蛛被同时引向无内容页面,跳出率与抓取效率一起变差。

哪些情况最容易长成软 404

  1. 筛选、排序、分页参数超出有效范围,生成了空列表页。
  2. 商品下架、文章删除之后,模板页仍然保留并返回 200。
  3. 站内搜索结果页被外部链接或内链大量指向。
  4. 依赖脚本渲染的页面,脚本失败时只留一个空容器。
  5. 过期活动页只改了文案,没有调整状态码或跳转。

处理思路:先定状态,再修路径

状态码决定蜘蛛怎么理解这个地址,路径决定它还能不能继续走。两件事要分开做,但都要做。

  1. 永久下线且存在替代页:301 跳转到内容最接近的有效页面,避免跳到首页这种泛化目标。
  2. 永久下线且没有替代:用 410 或 404 明确表态,不要用 200 硬撑。
  3. 临时下架:保留 200,同时补充说明性内容和相关链接,别让页面空着。
  4. 空结果页:无结果时返回 404 或加 noindex,并从内链与 Sitemap 中撤掉入口。
  5. 修复指向失效地址的入口:导航、正文内链、相关推荐、页脚,都要跟着一起改。

别忽略链接通路本身

处理完状态码只是第一步。深层页通常依赖少数几条固定链接进入,如果其中某一条正好是失效地址,页面与入口之间的跳数就会增加。跳数一多,被发现的概率和复查频率都会下降,表现上很像“内容没更新所以不抓”,实际是路断了。

所以修完 404,建议再沿原路径走一遍:从首页出发,看还能不能靠点击到达那些目标页面。如果必须绕远路,说明需要补一条更直接的入口链接。

定期自查的几个动作

  • 每月做一次全站链接扫描,按被指向次数排序失效 URL,优先修高价值的。
  • 看抓取日志里 404 的占比和集中位置,判断是零散失效还是成片塌陷。
  • 检查 Sitemap 是否还在推送已经删除或下线的地址。
  • 确认站内搜索页、多级筛选页没有被大量内链指向。
  • 新页面上线前,检查它引用的旧版本地址是否已经失效。
一个 404 本身并不致命,真正的问题是它出现在通往几十个有效页面的必经之路上。

把死链当成路径问题而不是页面问题来看,处理顺序会更清楚:先让错误地址有明确答复,再让链接图重新连通。做完这两步,抓取节奏通常会在之后的一段时间里逐步恢复,剩下的就是内容和更新的功夫了。