很多人优化抓取路径时,第一反应是看 URL 里有几个斜杠,觉得目录层级越浅越好。但对搜索蜘蛛来说,它判断一个页面“深不深”,看的不是地址栏里的路径,而是从已知入口出发,需要点多少次链接才能走到这个页面。这两个数字经常对不上:URL 只有两级的页面,可能要从首页点五次才到;而 URL 里带三层目录的页面,反倒挂在主导航上,一跳就能进去。
蜘蛛算的深度是点击次数
蜘蛛的工作方式是顺着链接走。它拿到一批已知 URL,抓取页面,从 HTML 里提取新的链接,再把新链接放进待抓队列。一个页面只有被某条链接指向,才有机会进入这个队列。所以对蜘蛛来说,页面的“距离”是链接图里的跳数,而不是文件系统的层级。
这也是为什么 Sitemap 只能算补充手段。它能把 URL 递到蜘蛛面前,但一个既没有内链、也不在导航里的页面,即使写在 Sitemap 里,蜘蛛对它的抓取频率和更新感知通常也弱于有正常链接入口的页面。
点击深度影响哪些事
- 被发现的速度:离入口近的页面,蜘蛛更早看到更新。
- 抓取节奏:抓取资源有限时,链条长的页面排在后面,容易长时间不更新。
- 抓取稳定性:路径上任何一环断掉,后面的页面就一起失去入口。
- 排查难度:深度大的页面出问题时,日志里出现的次数少,不容易从数据里发现。
先量一量自己站点的点击深度
- 从首页开始,沿站内链接做一次小范围爬取,记录每个 URL 的最短点击距离。
- 把结果按跳数分档,重点看有多少页面在四跳以上。
- 对照 Sitemap 和日志,找出“只在 Sitemap 里、内链里找不到”的页面。
- 挑出你最希望被抓的业务页,看它们分别在第几跳。
很多站点量完之后会发现,问题不是页面太多,而是重要页面被埋在了层层列表和筛选页后面。
缩短深度的几种常见做法
导航和栏目结构
把主要分类放进顶部导航或侧边常驻入口,让核心栏目保持在一到两跳。栏目页再往下,尽量让内容页在列表页第一屏或第二屏就出现链接,而不是全靠“加载更多”。
面包屑与聚合页
面包屑给每层页面都提供了一条向上、向旁的路径,聚合页则把同一主题下的内容收在一起,减少蜘蛛绕路的次数。这两类页面本身内容要求不高,但作为链接节点很有用。
正文里的相关链接
在正文底部放几条真正相关的文章链接,比在页脚堆一大片全站链接更自然,也更容易让蜘蛛沿着主题走到新页面。
分页与列表的收尾
列表页翻到后面几页时,别忘了让链接继续存在。无限滚动如果只靠 JS 触发、不生成可抓取的链接,后面的内容对蜘蛛基本等于不存在。
目录浅不等于点击浅
把三层目录的地址改成一级目录,如果没有任何链接指向它,蜘蛛照样进不去。反过来,URL 长一点但有正常工作内链的页面,抓取并不会因此受影响。URL 结构值得整理,但它解决的是重复和可读性问题,解决不了“没有入口”的问题。
常见误区
- 把全站 URL 一股脑塞进 Sitemap,就当解决了入口问题。
- 用页脚挂满链接来“拉平”深度,结果每个页面都多出几百条无意义链接。
- 列表页只做“加载更多”按钮,后面几页没有可抓取的 URL。
- 链接由 JS 点击事件生成,HTML 里看不到 href。
一份可以照着做的检查清单
- 核心业务页是否在三跳以内可达。
- 每个栏目页是否至少有一条从首页出发的稳定路径。
- 分页、筛选后的列表是否有可抓取的链接。
- Sitemap 里的 URL 是否大部分都能在站内找到内链入口。
- 定期从日志里看深层页面的抓取情况,确认路径没有断。
深度这件事没有统一标准,重要的是让蜘蛛有清晰、稳定、不断链的路可以走。路径通畅,比 URL 好看更实用。