搜索抓取

页面藏得太深会怎样:抓取深度与 URL 发现的先后顺序

蜘蛛发现 URL 靠的是沿着链接一层层走,页面离入口越远,排队越靠后,被碰到的机会越小。这篇文章说明抓取深度的含义、深度过大带来的问题、常见的“挖深”结构,以及把重要页面拉近入口的几种做法,并给出简单的自检步骤。

搜索抓取

页面藏得太深会怎样:抓取深度与 URL 发现的先后顺序

蜘蛛发现 URL 的方式,说到底是沿着链接走。它从一个已知地址出发,点开页面里的链接,把新地址放进队列,然后再去点下一层。这个过程有次数限制,也有先后顺序,所以页面离入口的“点击距离”,会直接影响它被发现的早晚。

抓取深度指的是什么

抓取深度通常指从网站入口算起,需要经过多少次链接跳转才能到达某个页面。首页可以看作第 0 层,首页直接链出去的页面是第 1 层,第 1 层页面再链出去的算第 2 层,依次类推。

每一层都会消耗蜘蛛的时间和抓取配额。层级越深,排队等待的 URL 越多,被安排到的概率就越低。对中小站点来说,深层页面可能很久都不会被碰到一次。

深度过大时会发生的几件事

  • 队列变长:同一层级的 URL 数量一旦很多,蜘蛛光在这一层里就要花不少时间。
  • 优先级被压低:浅层页面往往更新更频繁,蜘蛛会优先回头抓它们。
  • 路径容易断:中间任何一层出现 404、超时或跳转异常,后面的 URL 就一起断了。
  • 抓取不均:有些分支几乎不被进入,时间久了就成了事实上的死角。

常见的“挖深”结构

不少站点并不是故意把内容藏起来,而是分类和模板一层层套下去,深度自然就上来了。

  • 多级分类:一级、二级、三级分类套下来,详情页挂在最末一级。
  • 标签与聚合页:标签页互相链接,详情页被推到更深的位置。
  • 分页列表:老内容沉到第 10 页、第 20 页之后。
  • 筛选参数:组合出大量列表 URL,把有限的抓取通路稀释掉。

把重要页面拉近入口

导航与面包屑

主导航尽量覆盖主要栏目,让重要页面在一到两次点击内可达。面包屑除了给用户定位,也给蜘蛛提供了一条回到上级分类的短路径。

相关推荐与热门入口

在文章底部放相关阅读、热门标签、最新更新列表,可以给深层页面补一条来自浅层的链接,相当于在深处开了一扇侧门。

HTML 站点地图页

做一个纯 HTML 的站点地图页,从首页直接链过去,把主要栏目和重要页面平铺出来。它和 XML Sitemap 不冲突,一个给用户和蜘蛛看,一个给抓取程序读。

控制层级,而不是追求全平

把所有页面都塞进首页并不现实,链接太多也会稀释每个链接的分量。更实际的目标是让重要内容保持在较浅的层级,次要内容可以适当放深。

深度之外还要看链接数量

一个页面即使深度只有 1,如果首页上有几百个链接,它分到的注意力也有限。反过来,一个深度 3 的页面,如果被多个页面反复链接,蜘蛛也会较快走到。深度和链接数量要放在一起看,单独盯着其中一个容易得出片面的结论。

自检:抽查几个关键页面的点击距离

  1. 从首页出发,手动数一数到达核心详情页需要几次点击。
  2. 找出超过三次点击的重要页面,看看是哪一层把它们推远了。
  3. 在抓取日志里核对这些页面是否出现过,以及出现的频率。
  4. 对确实推得太远的页面,补一条来自浅层的入口,过一段时间再复查。
抓取深度不是越浅越好,而是重要内容不该被无意中埋起来。

调整结构之后,建议观察一段时间的抓取日志再决定要不要继续优化。深度只是 URL 发现的一个变量,内链、Sitemap、服务器响应速度都会一起影响结果,改动时最好一次只动一处,方便判断哪一步起了作用。