很多站点的问题不是“没有被链接”,而是重要页面被埋得太深。蜘蛛从首页出发,通常沿着链接一层层往外走,层级越深,被发现和重新抓取的机会就越靠后。点击深度(click depth)说的就是这件事:从首页到某个 URL,最少需要点击几次。
点击深度是怎么算出来的
它看的是最短路径,而不是你在导航里有没有放。比如一个商品页,可以从首页→分类→商品走到,也可以从首页→搜索→标签→商品走到,前者是 2 层,后者是 4 层,蜘蛛通常先按短的那条走。判断深度时,可以先把站内的链接关系抓成一张图,再看每个 URL 到首页的最短跳数。
深度为什么会改变抓取顺序
蜘蛛的抓取队列里,新发现的 URL 会排队等待。深度浅、内链多、更新频繁的页面,通常更容易被反复访问;深度深、只有一条入口的页面,往往要等更久,甚至长期只被访问一两次。这不等于“深了就一定不抓”,只是优先级和回访频率会更低一些。
常见的深度失控场景
- 列表页分页只保留“下一页”,历史内容要一层层翻过去;
- 筛选条件、排序参数生成大量中间页,真正的详情页被推到很深;
- 栏目页只放最新几条,老内容只能从归档或标签进入;
- 详情页之间的相关推荐做得很少,页面之间缺少横向连接。
怎么测自己的深度分布
可以用站内爬取工具从首页开始爬,统计每个 URL 的层级;也可以结合服务器日志,看看常被访问的 URL 集中在几层,深层页面是否长期没有记录。Sitemap 里的 URL 数量和各层级页面的实际抓取量,也能做个对照。
把重要页面往上提的几种做法
- 导航直达:核心栏目和主要入口放在全站导航或首页模块里,别只靠二级、三级页互相链接。
- 横向连接:在详情页放相关推荐、同类内容,让同层页面之间互相可达。
- 面包屑:面包屑不只是给用户看,它也给蜘蛛提供一条回到上层的短路径。
- 控制中间层:能合并的分类尽量合并,减少纯中转、内容很少的列表页。
- Sitemap 作为补充:可以把深层但重要的 URL 写进 Sitemap,它有助于被发现,但通常不会改变站内的抓取优先级。
深度不是唯一的变量
同样深度下,更新频繁、内链更多、响应更快的页面,回访会更勤。反过来说,把链接硬塞进页脚未必能让蜘蛛更重视它——如果这些链接和页面内容关系不大、站点里到处都是,信号反而会被稀释。
目标不是把所有页面都压到 2 层以内,而是让少数真正重要的 URL 有一条短、稳定、不依赖参数的路径。
一个简单的检查清单
- 重要页面从首页出发,能否在 3 次点击内到达?
- 去掉筛选、排序、跟踪参数后,是否还有一条干净的路径?
- 老内容有没有除了归档以外的入口?
- 日志里抓取量最高的 URL,是不是你认为最重要的那批?
把这几个问题过一遍,通常就能发现几条被埋住的路径。之后每隔一段时间复查一次,尤其是改版和批量上新之后。