搜索抓取

404 与软 404:断链怎样影响 URL 发现和抓取路径

站内死链看似小事,却会打断蜘蛛的抓取路径、消耗抓取配额,还会让深层页面失去被发现的机会。本文从 404、软 404 和空结果页三种情况出发,说明断链如何影响 URL 发现,给出 301 与 404 的选择标准,并整理了一套可以放进日常节奏的断链检查与清理流程。

搜索抓取

404 与软 404:断链怎样影响 URL 发现和抓取路径

一条内链断掉,影响的不只是一页

蜘蛛发现 URL 的主要方式仍然是顺着链接走。站点里每个内链都相当于一条小路,蜘蛛沿着这些路走到新的页面。如果某条路上出现死链,蜘蛛走到一半停下来,后面的页面就少了一个被发现的机会。单条死链看起来微不足道,但当它们出现在导航、列表页、侧边推荐位这些高频入口时,影响会被放大很多倍。

404 本身不是问题,指向它的链接才是

页面被删除后返回 404,这本身是正常的服务器行为,蜘蛛也能理解。真正需要处理的是:站内还有多少个页面在链接到这个已经不存在的地址。只要内链还在,蜘蛛每次抓取都会顺着走一次,拿到一个 404,然后原路返回。这个过程不产生任何价值,却在消耗抓取配额。

更麻烦的是层级断裂。如果某个栏目页的列表里有一半链接是死链,蜘蛛在这个页面能走的下一步就少了一半,藏在后面的新 URL 也就更难进入抓取队列。

软 404 和空页面更隐蔽

有一类情况比 404 更难处理:URL 返回 200,但页面内容是空的、报错的,或者是一个“暂无结果”的列表页。对蜘蛛来说,状态码是正常的,但页面没有任何可抓取的内容,也没有有效的出口链接。这类页面往往由参数、筛选条件、已下架商品的残留地址产生,数量可能比真正的 404 多得多。

处理顺序建议:先看日志里哪些地址被反复抓取却始终没有变化,再回查这些地址是否由站内链接产生。如果答案是肯定的,说明内链结构里存在需要清理的入口。

断链会从几个方向消耗抓取机会

  • 浪费请求次数:蜘蛛每次访问死链,都是一次没有产出的抓取。
  • 打断路径:依赖这条链接才能被发现的页面,可能长时间停留在队列之外。
  • 丢失锚文本:指向失效页面的链接文字,本来可以传递主题信息,现在无处可去。
  • 影响结构判断:大量内链指向无效地址,站点层级在抓取时显得混乱,深层页面的到达顺序会被打乱。

该用 301 还是 404

判断标准很简单:这个 URL 有没有等价的替代页面。有,就用 301 指向最相关的新地址,并且只跳一跳,不要做成链条。没有,就老老实实返回 404,不要用 200 的空白页去糊弄。对于已经迁移过内容的站点,记得把旧的 Sitemap、内链、外链都对照检查一遍,只改服务器配置是不够的。

把断链检查放进日常节奏

  1. 定期抓取本站的主要入口页,收集返回 4xx 的地址。
  2. 对照服务器日志,找出被蜘蛛反复访问却始终没有内容的 URL。
  3. 定位这些 URL 的来源:导航、列表页、正文内链还是 Sitemap。
  4. 按来源逐个处理,能跳转的做 301,该删的把链接一并删掉。
  5. Sitemap 里同步移除失效地址,避免继续把蜘蛛引向死路。

内容下线时顺手做的事

删除页面时,先搜索站内有哪些地方链接到它,把链接替换成新的目标,再删除页面。这个顺序看起来麻烦,但比事后靠工具扫一遍要省事得多。列表页和推荐位尤其要检查,它们是产生死链最多的地方。

顺带提一句 5xx

服务器间歇性报错和死链是两回事,但结果相似:蜘蛛来了拿不到东西。短时间的 5xx 蜘蛛通常会稍后再来,如果持续时间较长,抓取频率会明显下降,恢复需要一段时间。所以稳定性问题要和链接维护分开看,却都不能拖。

抓取路径是长期维护出来的,不是一次性优化出来的。定期清理断链,本质上是在给蜘蛛留一条走得通的路。