列表页的分页是一类特殊的 URL 集合:由同一套模板生成,内容高度相似,数量却可能成百上千。蜘蛛沿链接往下翻并不费力,真正的问题是这些 URL 里有多少值得抓。
蜘蛛翻页和用户翻页是两件事
用户翻到第三页还没找到想要的内容,会换个关键词;蜘蛛没有这种偏好,它只按链接走。如果每一页都挂着指向下一页的链接,路径就会一直延伸,抓取预算被摊薄到大量低差异页面上。
所以判断分页问题,不看蜘蛛翻了多少页,而看每一页相对前一页新增了多少可索引内容。
分页深度到什么位置开始失效
- 前几页:通常包含最新、最热的内容,也和其他入口页互相链接,值得保留。
- 中间页:如果列表项只是同一批内容的重新排序,增量很低。
- 深分页:不少站点的第五十页之后基本没有新链接,只剩模板和空壳。
比较稳妥的做法是把分页当成一条有终点的走廊:到某个深度后收口,而不是无限延伸。常见的收口方式是限制可翻页的总数,或者把深分页改成独立入口,让它不参与默认的抓取路径。
路径式分页与参数式分页
形如 /list/page/2/ 的路径式分页容易被识别和统计;而 /list?page=2&sort=xx 这类参数分页,容易和排序、筛选参数组合出大量 URL。如果同一批内容能通过多种参数组合到达,蜘蛛会重复走很多遍。把默认排序之外的分页组合明确标记为 noindex,或在 robots.txt 中限制,通常比放任其自然增长更可控。
另外,rel 的 next、prev 标注早已不是主流搜索引擎的索引信号,写上不会带来额外收益,但作为给蜘蛛的一条路径提示仍然无害。真正决定路径的,是页面里可以点击的链接。
翻页链接放哪儿,蜘蛛就走到哪儿
分页链接的位置决定了蜘蛛能否顺利往下走。底部只有一个箭头图标、没有文字链接时,部分抓取环境可能读不到;用脚本点击生成下一页、地址栏不变的情况,则等于把路径截断。
- 用真实的 a 标签指向下一页的固定 URL。
- 页码链接给出明确锚文本,不要只写数字。
- 首页、末页、上一页、下一页都提供链接,方便回退。
深分页是服务器的慢查询重灾区
列表页越深,分页查询越慢,渲染时间越长。响应变慢时,蜘蛛的抓取节奏会跟着调整,深分页往往是第一批被放弃的 URL。与其等到服务器扛不住,不如提前限制最大页数,把基于大偏移量的分页查询换成基于游标的翻页,同时改善用户加载和抓取体验。
分页的终点不该由模板决定,而应由内容增量决定:翻到没有新东西的那一页,就该停下。
落地检查
- 看看最常见的列表模板最深能翻到第几页,最后一页是否还有独有链接。
- 确认翻页链接是真链接,而不是点击事件或滚动加载。
- 把排序、筛选参数产生的分页变体收进可控范围。
- 观察蜘蛛对深分页的抓取比例,如果抓取高但收录有限,说明预算花得不太值。
分页不是要全部砍掉,而是让蜘蛛沿着一条清晰、有终点的路径走,把注意力留给真正有内容的页面。