列表页、归档页、商品分类页,只要有内容堆积,就会遇到分页。分页本身不是问题,问题是很多站点的翻页结构没有边界:页码可以无限递增,参数可以随意组合,翻页入口藏在脚本里,最后蜘蛛把大量时间花在一层层列表上,真正的内容页反而没抓几条。这篇文章整理一份分页与翻页的自查思路,重点是先把现状看清楚,再决定哪些翻页要保留,哪些要收口。
先分清哪些页面属于分页
自查之前,先把站内所有会产生翻页的位置列一遍,不要只盯着主分类。
- 分类列表、标签页、作者页、归档页
- 站内搜索结果页、筛选结果页
- 评论分页、论坛帖子分页
- 文章或商品列表底部的传统翻页
写下来之后,标注每个位置的 URL 形式、能否被普通链接访问、每页多少条内容、最多能翻到第几页。这一步做完,后面的判断会轻松很多。
URL 形式:稳定比好看更重要
分页 URL 常见有几种:路径式、参数式、参数加排序。形式本身没有绝对好坏,关键是稳定且唯一。同一个第二页,不要同时存在多个可访问地址,否则蜘蛛会把它们当成不同页面分别抓取。
需要确认几点:
- 页码参数是否可枚举。如果翻到很大的页码仍然返回正常页面,等于给蜘蛛留了一条无限通道。
- 分页参数是否和其他筛选参数叠加。叠加之后 URL 组合会成倍增长。
- 大小写、尾斜杠是否一致。同一页不应存在两个写法都返回 200 的情况。
翻页入口是否真的能被点到
很多站点用「加载更多」按钮或无限滚动,原始 HTML 里只有第一页的内容,后续页面靠接口请求拼接出来。自查方式很简单:查看该页面的原始 HTML 源码,看下一页链接是否存在。
- 链接存在、只是被样式隐藏,问题不大。
- 链接不存在,最好在列表底部保留一段可抓取的普通翻页链接。
- 翻页完全走接口时,至少保证主要几页能从站内链接或 Sitemap 到达。
深度与页数:给翻页设一个上限
蜘蛛不会无限翻,越深的页码被访问的概率越低,而且越往后内容价值通常越低。建议结合业务确认三件事:
- 用户实际会翻到多少页,超过这个深度的页面还有没有人看。
- 这些深层页面是否还需要被搜索用户找到。
- 如果不需要,是否可以让深层分页不再输出可抓取链接,或者返回 404。
常见的处理是前若干页正常保留,深层分页不再提供下一页链接,只保留跳转到固定页的入口。具体页数没有统一标准,取决于内容量和用户行为。
canonical 与收录策略
分页页面的 canonical 容易写错。几种常见做法:
- 每一页都 canonical 到自己,适合希望分页被收录的情况。
- 所有分页都 canonical 到第一页,适合只保留第一页,但会减少深层内容的发现入口。
- 分页设为 noindex, follow,不收录但保留链接,让蜘蛛仍能顺着翻下去。
三种都能用,关键是统一。不要一部分页面指向自己、一部分指向第一页,也不要让 canonical 和 noindex 给出互相矛盾的信号。
几个容易被忽略的分页坑
- 最后一页之后仍返回 200:超出最大页码还是正常页面,等于没有终点。
- 空结果页返回 200:翻到没有内容的页码,返回空白模板而不是 404,容易被当成薄页面。
- 排序参数制造重复:同一批内容按时间、按热度各有一套 URL,内容相同地址不同。
- 缺少聚合页:有些内容适合用一次性展示的聚合页代替多页翻动,既方便用户也减少层级。
- Sitemap 里塞满分页:Sitemap 更适合放第一页和重要内容页,不必把所有页码都提交。
给蜘蛛一条清晰的翻页路径
- 确认第一页可以被普通链接直接到达,不依赖脚本渲染。
- 确认翻页链接是真实的链接标签,指向可访问地址。
- 确认页码不会无限增长,超出范围时返回 404 或跳到合理页面。
- 确认同一页只有一种 URL 形式,参数顺序和大小写统一。
- 确认 canonical 或 noindex 策略在整站分页上保持一致。
- 在服务器日志或抓取统计里观察分页 URL 的访问占比,如果长期偏高,再回头收口。
分页自查的目标不是把所有翻页都挡掉,而是让蜘蛛清楚:哪几页值得进,哪几页到此为止。边界清楚,抓取才有节奏。
做完这些检查,可以定期回到日志里确认分页 URL 的抓取比例有没有变化。站点内容量增长之后,分页结构往往需要重新评估一次,尤其是在改版、换模板或调整 URL 规则的时候。