列表页通常是站点里链接最密集的地方,也是蜘蛛从入口走到详情页的主干道。分页一旦断掉,后面的内容往往只剩 Sitemap 里那一串孤立的 URL。这篇聊的是分页路径本身:蜘蛛怎么翻页、翻到哪儿会停、以及怎么做能让它继续往里走。
蜘蛛翻页靠的还是链接
搜索引擎蜘蛛不会去猜“下一页”背后的参数,它顺着 HTML 里能点到的链接走。所以分页的本质是一条可枚举的链接链:第一页指向第二页,第二页指向第三页,逐页推进。只要这条链上每一环都是可抓取的 a 标签,蜘蛛就能一页页走下去。
常见的断点也集中在这一环:
- 翻页按钮用脚本渲染或绑定点击事件,HTML 里没有真实 href,蜘蛛看不到下一页。
- 页面给分页 URL 加了 noindex,或 canonical 统一指向第一页,等于告诉蜘蛛这里不必深入。
- 页码只放出有限的几页,更后面的内容只能靠 Sitemap 或站内其他入口被发现。
- 翻到某个页码返回空列表或软 404,蜘蛛会把这个模式记下来,之后来得更少。
分页链接怎么写,蜘蛛才走得顺
- 用可点的 a 标签,href 指向完整 URL,不要只依赖点击事件。
- 页码可枚举:上一页、下一页、首页、末页和若干数字页码都给出,蜘蛛不需要靠猜就能推进。
- 每页 URL 稳定可访问,不要依赖 POST、会话状态或一次性 token。
- 第一页只保留一个地址,避免列表页和带 page=1 的版本互相争夺同一批内容。
- 深翻页也要能到达:内容量大时,可以按时间或分类切成多个列表,而不是一路翻到很深的页码。
分页的意义不是把用户翻到最后一页,而是给蜘蛛一条走得通、又能走得深的通道。通道太长或太窄,后面的内容都会变得更难被发现。
翻页深度和抓取预算的关系
分页翻得越深,蜘蛛花在列表页上的时间就越多。列表页本身重复度高、正文少,如果连续几十页都是同一批摘要,抓取预算就被消耗在价值不高的页面上。比较稳妥的做法是控制每页条数,让列表页总量落在可维护的范围内,同时用分类、标签、专题页做横向入口,把详情页的发现路径分散开。
怎么确认蜘蛛真的走通了
- 看日志里列表页的访问序列,是否出现页码连续递增的抓取记录。
- 检查分页 URL 的状态码分布,200 之外的比例有多高、集中在哪一段。
- 对比 Sitemap 中提交的详情页与日志里实际被抓取的详情页,看差额集中在哪个区间。
- 抽查深翻页的 HTML,确认里面的详情链接是服务端输出的。
服务器这头也别掉链子
分页请求往往是并发较高的一类爬取:蜘蛛会同时拉取多个页码。如果列表查询慢、数据库压力大,就很容易出现超时或 5xx。把列表页做缓存、给翻页留出合理的响应余量,比事后翻日志排查要省事。反过来,如果服务器长期不稳定,蜘蛛对这条路径的信任度下降,回访频率也会跟着掉。
说到底,分页路径是“入口到内容”的接力。把链接写成蜘蛛能读的形式、把页码控制在合理范围、保证服务器能稳定响应,这条通道才算真正通了。