站点的 URL 能不能被抓到,很多时候不取决于它写得多好,而取决于蜘蛛能不能沿着链接走到它。蜘蛛没有站点地图之外的“全局视野”,它从一个或几个入口出发,沿着页面里的链接一层层往下走。层级越浅的页面,越容易在早期被访问到;层级越深的页面,往往在抓取节奏放缓时被排到后面,甚至长期停留在未发现状态。
点击深度到底是什么
点击深度指从站点入口(通常是首页)出发,到达某个页面所需经过的最少链接跳数。首页算第 0 层,首页直接链出的页面是第 1 层,再往下是第 2 层,以此类推。核对时不要凭分类树的直觉判断,而要用工具或脚本实际爬一遍,按“最短路径”统计,因为同一个页面往往有多个入口,只要有任意一条短路径存在,它就不算深层页面。
深层页面为什么容易被漏掉
- 抓取节奏限制:蜘蛛对单个站点单位时间内的抓取量有大致上限,深层页面排在队列后面,遇到预算收紧时最先被砍掉。
- 中间环节失效:第 2 层某个列表页如果返回 404、5xx 或长期超时,第 3 层之后的所有页面在这一次抓取中都会断链。
- 链接可发现性问题:依赖点击展开、标签页切换、滚动加载才出现的链接,在首屏 HTML 里根本不存在,蜘蛛自然走不过去。
- 分页与筛选参数:列表页翻页如果只靠脚本拼接,翻到第 5 页之后的详情页就失去了内链入口。
几种常见的核对方法
按最短路径抽样
挑选若干目标 URL(比如近期新增的内容页、商品页),用站点爬虫工具从首页出发,记录每个 URL 的发现层级。重点看两类页面:层级大于 3 的核心内容页,以及只能从 Sitemap 发现、内链里找不到的页面。
用抓取日志交叉验证
把服务器日志里蜘蛛的实际访问记录,和理想的层级表做对比。如果某个第 2 层的页面在最近一个周期内完全没有蜘蛛访问记录,说明问题不在深度,而在入口本身——它可能没有被任何上层页面链接到,或者链接被 robots.txt 拦截、被 nofollow 标注。
看入口页的响应质量
层级统计只解决“能不能走到”,不解决“走得到多少次”。如果承载大量链接的分类页、列表页首字节时间很长,蜘蛛每次抓取都要等,单位时间内能走的路就变少。核对时可以抽查这些枢纽页的响应时间、状态码分布,确认没有大量 5xx 或超时。
降低有效深度的常见做法
- 给核心页面补一条短路径:在首页或频道页的推荐位、相关阅读、热门聚合里加一条直达链接,比把分类树整体砍掉一层更可行。
- 善用聚合与标签页:按主题、时间、热度做聚合列表,让内容页多一条第 2 层的入口,但注意聚合页本身要有明确规则,避免生成大量近似页面。
- 分页链接用真实 URL:翻页尽量是可抓取的 a 标签链接,而不是纯 JS 事件,保证爬到第 N 页之后仍能继续发现。
- 用 Sitemap 兜底:Sitemap 不是替代内链的手段,但对深层、更新频繁的页面,可以作为发现渠道的补充,注意提交时的 lastmod 要与实际更新时间一致。
内链决定蜘蛛能不能走到,服务器响应决定它愿不愿意继续走。两者缺一,深层页面都很难稳定进入抓取队列。
核对清单
- 核心内容页的最短点击深度是否控制在 3 层以内;
- 是否存在只能靠 Sitemap 发现、内链为零的页面;
- 枢纽列表页、分页面的状态码与响应时间是否稳定;
- 登录墙、懒加载、点击展开是否遮挡了关键链接;
- 新增内容上线后,是否第一时间从入口页获得一条链接。
点击深度不是一次调完就结束的指标。站点结构、模板改版、列表分页策略变化都会悄悄把页面推向更深的位置,定期抽样核对比一次性优化更有价值。也不要指望某个操作能立刻带来收录变化,抓取行为本身受站点整体质量与蜘蛛调度策略共同影响,能做的是把可访问路径铺平、把响应做稳。