搜索抓取

抓取深度与跳数:蜘蛛愿意往下走几层,取决于路径好不好走

抓取深度是很多站点忽略的维度:目录浅不代表跳数少,跳数多才是页面被冷落的真正原因。本文梳理深度是怎么被导航、分页和缺失的内链消耗掉的,Sitemap 能补什么、补不了什么,以及服务器稳定性为什么会优先拖累深层页面。

搜索抓取

抓取深度与跳数:蜘蛛愿意往下走几层,取决于路径好不好走

很多人看抓取数据只看总量,忽略了另一个维度:蜘蛛抓到的页面,大多停在离入口几跳的位置。抓取深度决定了站点里哪些部分长期处于阴影中——不是被禁止,而是根本没被走到。

跳数是什么,为什么它比“层级”更贴近现实

目录层级是文件系统的概念,跳数是从入口页出发,经过几次链接点击才到达。两者经常不一致:一个 /a/b/c/d/ 形式的 URL 可能首页直接链过去,只有一跳;一个浅目录页面可能藏在三级导航里,要四跳才摸到。

蜘蛛对每个站点的抓取额度有限,越往深处走,单位收益越低,所以它会优先把额度花在容易回访、更新频繁、入口多的页面上。

深度是怎么被消耗掉的

  • 导航和面包屑只覆盖到中间层,最底层页面只能靠列表页往下带;
  • 列表分页到某个位置断了链接,后面的内容自然没人走;
  • 重要页面只出现在某个交互展开后才生成的链接里;
  • 深层页面之间没有横向互链,彼此都是死胡同。

Sitemap 能补深度,但补不了全部

Sitemap 提供的是“这个 URL 存在”这条信息,可以缩短发现时间,但它不改变蜘蛛对页面重要性的判断。把一个孤立的深层页塞进 Sitemap,蜘蛛可能来一次,之后因为没有任何内链指向它,回访频率会很低。

把 Sitemap 当成兜底,而不是主干。主干仍然是可点击、可延续的内链路径。

服务器在深度抓取里扮演的角色

深层页面的抓取往往排在队列后面,这意味着它们更容易撞上服务器状态不佳的时段。间歇性的 5xx、响应时间忽长忽短,会让蜘蛛在下一次调度时更保守:先抓浅层、高频更新的页面,深层页面被推后甚至暂时搁置。

所以服务器稳定性对抓取的影响并不均匀,浅层页面容忍度高,深层页面最吃亏。如果你发现日志里深层 URL 的抓取间隔越来越长,先看看那段时间的响应码分布。

怎么判断深度出了问题

  1. 按跳数给日志里的 URL 分组,看每个深度段的抓取量占比;
  2. 找出“有 Sitemap 记录、有内容更新、但没有内链指向”的页面;
  3. 检查深层页面的抓取状态码,是否集中在 5xx 或超时;
  4. 观察同一深度的页面之间,抓取次数差异有多大。

几个不费力的调整

  • 把重要但深的内容,在上一层页面上给一个固定的文字入口;
  • 同类深层页面互相链接,形成一条可延续的路径,而不是各自孤岛;
  • 列表翻页保留可抓取的链接,别只留“加载更多”按钮;
  • Sitemap 里保留这些页面,但不要把它的存在当成唯一入口;
  • 服务器告警别只看首页可用性,深层路径的响应时间也要盯。

深度不是越低越好,而是不要让重要的东西掉在没有路的地方。蜘蛛走的路,本质上是用户点得到的路。