列表页和分页是站点里数量最容易被低估的一类页面。一个栏目如果每页 20 条内容、总共几百条文章,翻页很快就会生成几十个地址。这些地址本身没什么问题,但如果实现方式随意,蜘蛛很容易在翻页之间来回走,把抓取预算花在价值不高的重复列表上。
下面按从链接到参数的顺序,梳理几个值得定期自查的点。
一、先看清分页是怎么实现的
- 静态路径分页:形如 /news/page/2/,地址独立、可缓存、容易被识别。
- 查询参数分页:形如 /news?page=2,需要确认参数是否会被聚合或过滤。
- 点击加载更多:首次只加载一页,后续靠 JS 追加,蜘蛛往往只看到第一页。
- 无限滚动:页面持续追加内容,没有明确的下一页边界。
二、几个容易踩坑的细节
1. 翻页链接是不是可抓取的 a 标签
如果下一页只是一个 button 加事件监听,蜘蛛不会去点。至少要保证翻页入口有真实的 href,即使同时保留了 JS 交互。
2. 翻页有没有尽头
有些站点的分页在最后一页之后仍然返回 200,并展示空列表或重复内容,等于人为制造了一批空页。正常的做法是最后一页不再输出下一页链接,或者干脆不生成超出范围的分页地址。
3. 排序与筛选参数不要组合爆炸
列表页常带排序、筛选、时间范围等参数。如果每个参数都能互相组合,地址数量会迅速膨胀。建议只让少数有实际价值的组合可被抓取,其余用 robots 规则或参数处理方式约束,而不是指望蜘蛛自己判断。
4. 分页页面的 canonical 怎么指
常见的两种做法:一是每页 canonical 指向自己,二是全部指向第一页。前者更常见,也更容易解释;后者适合内容高度重复的短列表。无论选哪种,全站要保持一致,别让第 2 页指自己、第 3 页指首页。
三、一份可以直接照做的自查清单
- 打开栏目第一页,看下一页是否有真实可点的链接地址。
- 翻到最后一页,确认下一页链接消失,且不再返回空列表。
- 用站点日志观察分页地址的抓取频次,看是否明显高于内容页。
- 检查分页与筛选参数是否出现在 sitemap 里,通常不建议放。
- 确认分页页面自身的标题与描述有区分,不要整站一个样。
- 抽查第 2、第 3 页的 canonical,看指向是否统一。
分页的目标不是让蜘蛛翻完所有页,而是让它能顺着列表找到内容页,然后停下来。
四、把重点放回内容页
列表页和分页本质上是通道。真正需要被理解和收录的是文章、商品、词条这类内容页。如果日志里分页的抓取量长期高于内容页,通常说明通道设计出了问题,或者内容页本身缺少足够的内链入口。
可以定期做一件事:随机抽一个栏目,从第一页手动翻到最后一页,记录每次翻页后新出现的链接数量。如果某几页几乎不产生新的内容链接,那这几页对蜘蛛的价值就很有限,可以考虑收敛分页深度。
分页这件事不需要复杂的技术方案,更多是靠一致的规则和定期的抽查。规则统一之后,蜘蛛的抓取行为会稳定下来,运营侧也更容易判断问题出在哪里。