蜘蛛不会凭空知道你的详情页在哪里。它从一个已知的 URL 出发,沿着页面上的链接一步步走。从入口页到目标页之间需要点几次链接,这个次数通常被称为点击距离,它直接影响一个 URL 被发现的概率和被抓取的频率。
点击距离是怎么形成的
假设路径是首页 → 栏目页 → 列表页 → 详情页,详情页的点击距离就是 3。如果某个商品要到列表第 20 页才出现,它的点击距离就变成 4 甚至更多。蜘蛛每次抓取都要消耗时间和资源,走得越深,愿意继续往下的可能性越低,尤其是在中间层页面内容重复度很高的时候。
页面被埋深之后会发生什么
- 发现变慢:新页面要等上一层页面被重新抓取,才有机会进入队列。
- 抓取频率降低:处在深层的页面通常更新少,蜘蛛复查的间隔也拉得更长。
- 链接信号被稀释:页面之间隔着越多层,能分到的影响力就越弱。
- 路径容易断:中间某一层如果被 robots.txt 挡住、返回 404,或者链接要靠点击才展开,后面的页面就没人带路。
哪些结构容易把页面越埋越深
- 列表页只靠“下一页”串联,没有分页索引,也没有按时间或首字母的归档入口。
- 筛选参数生成的列表,链接只在用户点击筛选后才出现,默认 HTML 里没有可抓取的 href。
- 标签页、专题页层层堆叠,同一个页面要经过多层聚合页才能到达。
- 点击展开的折叠菜单,文字在 DOM 里,但链接不是普通的 a 标签。
缩短点击距离的几个做法
- 在栏目页提供全量入口,例如分类索引、按时间归档、按首字母归档。
- 面包屑导航保持每一层都可点,让蜘蛛能顺着路径回到上层。
- 在相关阅读、最新列表里给重要页面留固定位置,而不是只依赖随机推荐。
- 对确实重要的深层页面,用 Sitemap 补一条直达路径。Sitemap 负责被看到,内链负责被持续抓取,两者分工不同。
- 控制分页深度,把翻页链接做成静态、可爬取的链接。
路径之外还有稳定性
顺着链接走的过程中,如果中途连续遇到超时或错误,蜘蛛可能放慢这一段的抓取节奏。保持服务器响应稳定、状态码正确,比事后补一份 Sitemap 更有效。路径再清晰,走一次掉一次,长期看抓取量仍会下降。
怎么判断自己的站点埋得太深
- 看蜘蛛日志里的 URL 分布,如果集中在首页和栏目页,深层页面很少出现,说明路径可能偏长。
- 抽一批详情页,统计从首页到它需要几次点击,超过 3 到 4 次就值得检查。
- 对比 Sitemap 里提交的 URL 与实际被抓取的 URL,差额较大的那一批,往往是埋得较深的页面。
抓取路径的设计目标不是“尽可能多”,而是让重要页面在少数几步之内就能被找到,并且每次都走得通。
把点击距离当成一项可以测量的指标,定期看看蜘蛛实际走到了第几层,比单纯增加链接数量更有意义。