蜘蛛发现 URL 的方式,说到底是沿着链接走。它从一个已知地址出发,点开页面里的链接,把新地址放进队列,然后再去点下一层。这个过程有次数限制,也有先后顺序,所以页面离入口的“点击距离”,会直接影响它被发现的早晚。
抓取深度指的是什么
抓取深度通常指从网站入口算起,需要经过多少次链接跳转才能到达某个页面。首页可以看作第 0 层,首页直接链出去的页面是第 1 层,第 1 层页面再链出去的算第 2 层,依次类推。
每一层都会消耗蜘蛛的时间和抓取配额。层级越深,排队等待的 URL 越多,被安排到的概率就越低。对中小站点来说,深层页面可能很久都不会被碰到一次。
深度过大时会发生的几件事
- 队列变长:同一层级的 URL 数量一旦很多,蜘蛛光在这一层里就要花不少时间。
- 优先级被压低:浅层页面往往更新更频繁,蜘蛛会优先回头抓它们。
- 路径容易断:中间任何一层出现 404、超时或跳转异常,后面的 URL 就一起断了。
- 抓取不均:有些分支几乎不被进入,时间久了就成了事实上的死角。
常见的“挖深”结构
不少站点并不是故意把内容藏起来,而是分类和模板一层层套下去,深度自然就上来了。
- 多级分类:一级、二级、三级分类套下来,详情页挂在最末一级。
- 标签与聚合页:标签页互相链接,详情页被推到更深的位置。
- 分页列表:老内容沉到第 10 页、第 20 页之后。
- 筛选参数:组合出大量列表 URL,把有限的抓取通路稀释掉。
把重要页面拉近入口
导航与面包屑
主导航尽量覆盖主要栏目,让重要页面在一到两次点击内可达。面包屑除了给用户定位,也给蜘蛛提供了一条回到上级分类的短路径。
相关推荐与热门入口
在文章底部放相关阅读、热门标签、最新更新列表,可以给深层页面补一条来自浅层的链接,相当于在深处开了一扇侧门。
HTML 站点地图页
做一个纯 HTML 的站点地图页,从首页直接链过去,把主要栏目和重要页面平铺出来。它和 XML Sitemap 不冲突,一个给用户和蜘蛛看,一个给抓取程序读。
控制层级,而不是追求全平
把所有页面都塞进首页并不现实,链接太多也会稀释每个链接的分量。更实际的目标是让重要内容保持在较浅的层级,次要内容可以适当放深。
深度之外还要看链接数量
一个页面即使深度只有 1,如果首页上有几百个链接,它分到的注意力也有限。反过来,一个深度 3 的页面,如果被多个页面反复链接,蜘蛛也会较快走到。深度和链接数量要放在一起看,单独盯着其中一个容易得出片面的结论。
自检:抽查几个关键页面的点击距离
- 从首页出发,手动数一数到达核心详情页需要几次点击。
- 找出超过三次点击的重要页面,看看是哪一层把它们推远了。
- 在抓取日志里核对这些页面是否出现过,以及出现的频率。
- 对确实推得太远的页面,补一条来自浅层的入口,过一段时间再复查。
抓取深度不是越浅越好,而是重要内容不该被无意中埋起来。
调整结构之后,建议观察一段时间的抓取日志再决定要不要继续优化。深度只是 URL 发现的一个变量,内链、Sitemap、服务器响应速度都会一起影响结果,改动时最好一次只动一处,方便判断哪一步起了作用。