分页链接是列表页里最密集的 URL 出口
一个商品列表页,正文里可能只有二十个商品链接,但页码条或页脚上还排着一串翻页链接。对蜘蛛来说,这些同样是能顺着走的入口。不少站点把注意力放在详情页和栏目导航上,却很少检查翻页链接写成什么样、能不能点、点过去是不是同一个页面。结果往往是:列表第一页被反复抓,第二页往后几乎没人走。
三种常见的翻页形态
1. 静态化路径,例如 /list/2/
地址结构清晰,每页都有独立 URL,蜘蛛按顺序走下去没有障碍。代价是页码多时会产生大量需要维护的地址,翻页内容更新之后,旧页仍会被访问到。
2. 参数式,例如 /list/?page=2
实现简单,但要注意参数写法统一。不要一页用 ?page=2,另一页写成 ?p=2&from=nav,同一份内容对应多个地址,后续去重会更麻烦。
3. 按钮或“加载更多”
如果翻页完全靠 JS 拉取数据、页面初始 HTML 里没有可点的 a 标签,蜘蛛就看不到下一页地址。可行的做法是给每个分页保留一个真实链接地址,按钮只是加载方式上的补充。
上一页、下一页和首尾页怎么写
rel="next" 与 rel="prev" 现在更多是提示性的,真正决定蜘蛛能不能继续走的,还是页面上有没有可抓取的 a 标签。所以:
- 上一页、下一页用普通 a 标签,href 指向真实分页地址;
- 第一页和最后一页的链接可以保留,但不必在每一页都重复输出一大串页码;
- 页码条上不要用 javascript:void(0) 或 href="#" 占位;
- 分页地址是参数形式时,尽量保持参数名和顺序一致。
深翻页要不要让蜘蛛继续走
不是所有翻页都值得被发现。越往后的页码,内容重复度越高,对用户和蜘蛛的价值都有限。常见的处理是设一个翻页上限,比如只保证前 10 到 20 页可以正常访问,更深的页面仍然存在,但不主动在页码条里暴露出来。
判断标准可以简单一点:这一页上还有没有用户会点进去的内容,或者还有没有值得单独被访问的信息。
分页页面的去重与规范化
分页页之间内容高度相似,容易造成收录上的分散。可以做几件事:分页页自身的 canonical 指向自己,不要统一指向第一页;第一页只保留一个规范地址,避免 /list/ 和 /list/?page=1 同时存在;排序参数(如 ?sort=price)与翻页参数混在一起时,考虑收敛掉一部分组合。
顺手检查的几项
- 列表第一页里能否找到第二页的真实链接;
- 第二页里能否继续找到第三页,逐页递进是否成立;
- 翻页链接是否出现在初始 HTML 中,而不只是渲染后才出现;
- 分页地址是否稳定,有没有因筛选条件不断生成新的组合;
- Sitemap 里是否只提交了主要分页,而不是全部页码。
分页本身不复杂,但它常常是列表型站点里 URL 发现的主干道之一。把翻页链接写清楚、控制好深度和组合数量,比反复提交 Sitemap 更直接。