搜索抓取

链接深度与抓取路径:蜘蛛从首页走到深层页要几跳

蜘蛛主要靠顺着链接一层层发现 URL,页面离首页越远,被发现和被重访的机会往往越少。本文讲链接深度怎么计算、深层页面为什么容易被漏掉,以及如何用广度遍历和日志检查站点深度,再用栏目页、内链和 Sitemap 把重要页面往入口方向拉近。

搜索抓取

链接深度与抓取路径:蜘蛛从首页走到深层页要几跳

搜索蜘蛛发现新 URL 的主要方式,仍然是顺着页面里的链接一层层走下去。一条 URL 从哪个页面出发、要经过几跳才能到达,会影响它被发现的快慢,也影响它之后被重访的频率。这就是常说的链接深度,或者点击深度。

链接深度是怎么算的

把首页记为第 0 层,首页上直接出现的链接指向的页面算第 1 层,第 1 层页面里的链接指向的页面算第 2 层,依次往下。一个页面到首页的最短跳数,就是它的链接深度。

蜘蛛的抓取资源是有限的,它更倾向于反复访问靠近首页、链接多、更新频繁的页面。深度越大的页面,被排进抓取队列的机会越少,等待时间也越长。这不等于深层页面一定抓不到,而是说它们需要更多时间,也更容易在某个环节被漏掉。

深层页面为什么容易被漏掉

  • 入口太少:全站只有一两条链接指向它,而且这两条链接本身在很深的列表页里。
  • 分页太深:内容只出现在列表的第 8 页、第 15 页,前面几页的链接更新后,这些入口就被挤下去了。
  • 链接藏在交互里:需要点击“展开更多”或滚动后才由脚本生成,静态 HTML 里看不到。
  • 没有稳定入口:只靠站外偶尔的引用,站内没有任何栏目或导航链向它。

这几种情况的共同点不是“页面质量差”,而是蜘蛛没有一条顺畅的路径走到它面前。

先量一量自己的站点深度

在动手改结构之前,可以先做一次简单的广度遍历:

  1. 从首页开始,记录页面上所有站内链接,把它们标为第 1 层。
  2. 再逐个访问第 1 层页面,记录其中没出现过的新链接,标为第 2 层。
  3. 按这个方式继续,直到没有新链接,或者跳到第 5 层就停下。

遍历完会得到一张深度分布图:哪些栏目在第 2 层,哪些内容只在第 4、第 5 层才出现。如果重要页面的深度普遍超过四层,就需要考虑给它们补几个更靠前的入口。

另一种办法是对照服务器日志。把日志里蜘蛛抓取过的 URL 按栏目归类,再和 Sitemap 里的 URL 清单比对:Sitemap 里有、日志里长期没出现的,往往就是入口太少的页面。

把深层页面往前提的几种做法

  • 栏目页和聚合页:给同类内容一个稳定的列表入口,让新页面至少在栏目页第一屏出现一段时间。
  • 相关推荐与热门列表:在正文页放几条相关链接,把深层内容接到访问量更大的页面上。
  • 面包屑与上下级导航:让每个页面都能沿着层级回到栏目页和首页,蜘蛛走得进来,也走得出去。
  • Sitemap 作为补充:Sitemap 不能代替内链,但可以把那些确实没有合适入口的页面列进去,给蜘蛛多一条发现的线索。

深度之外还要看什么

深度只是判断抓取路径是否顺畅的一个维度。同样在第 2 层,一个每周更新的页面和一个三年没变的页面,被重访的节奏完全不同。链接位置也有影响:正文里的链接和页脚里的链接,蜘蛛对待的方式并不一样。所以调完结构之后,还是要回到日志里看实际效果,而不是只看遍历出来的层数。

几个常见的误区

把站点做得很平,不等于每个页面都会被频繁抓取,更不等于会被收录。
  • 为了减少深度,把几十上百条链接堆到首页,反而让首页链接失去区分度。
  • 以为加了 Sitemap 就不需要内链,结果页面依然缺少可走的路径。
  • 只看新页面的深度,忽略了旧入口被替换后,原本可达的页面变得更深。

链接深度这件事没有统一的标准答案。比较务实的做法是定期做一次遍历,找出那些重要但入口单一的页面,给它们补上稳定、位置合理的链接,然后观察日志里的抓取变化。