搜索抓取

分页与抓取路径:翻页链接怎么放,蜘蛛才会继续往里走

分页是蜘蛛发现更多 URL 的重要路径,但翻页链接如果依赖 JS、按钮或屏蔽规则,蜘蛛可能只抓第一页。本文说明分页链接的可抓取写法、canonical 与 noindex 的取舍,以及如何让蜘蛛顺着分页走得更深。

搜索抓取

分页与抓取路径:翻页链接怎么放,蜘蛛才会继续往里走

分页是蜘蛛走进列表深处的路

列表页、分类页、搜索结果页通常都有分页。对蜘蛛来说,分页链接不只是给用户翻页用的,它还是 URL 发现的重要通道。第一页里的商品、文章、帖子数量有限,后面几页的 URL 往往只能通过“下一页”或页码链接被蜘蛛看到。如果翻页路径断了,蜘蛛可能只抓第一页,后面的内容即使已经发布,也很久不会被发现。

但分页路径能不能走通,不取决于页面上有没有“下一页”几个字,而取决于链接是否以蜘蛛能识别的方式存在。

蜘蛛认什么样的翻页链接

最稳妥的做法是使用标准的 带 href 的 a 标签。蜘蛛拿到 HTML 后,可以直接从 href 里提取 URL。以下几种写法容易让路径中断:

  • 用按钮或 div 加 onclick 实现翻页,没有真实 href。
  • 翻页链接由 JavaScript 在点击后动态插入,首屏 HTML 里没有。
  • 无限滚动只在用户滚动时加载新内容,蜘蛛不会主动滚动。
  • 用 nofollow 或 robots.txt 屏蔽分页 URL,蜘蛛可能不再跟进去。

如果站点必须用 JS 渲染分页,至少保证分页链接出现在首屏 HTML 中,或者为列表提供可抓取的分页视图。不要假设蜘蛛会执行所有交互。

canonical 与 noindex:别把后续页挡在门外

分页页之间内容相似,很多站点会用 canonical 或 noindex 处理。这里有一个常见误区:把第二页、第三页的 canonical 全部指向第一页。这样做可能让蜘蛛认为后续页只是第一页的副本,从而减少对它们的抓取。更合理的做法是让每个分页页自 canonical,即 canonical 指向自己。如果确实不希望分页页被收录,可以用 noindex,但 noindex 不等于 nofollow,蜘蛛仍可能抓取并发现其中的链接。要保留 URL 发现能力,就不要把分页链接全部屏蔽。

分页页是否被收录,和它是否被用来发现新 URL,是两件事。可以不让分页页进索引,但不要切断蜘蛛顺着翻页走的路。

分页深度与抓取预算

蜘蛛不会无限翻页。列表有 100 页,不代表蜘蛛会一路翻到第 100 页。它会根据链接权重、抓取预算和页面更新频率决定走多深。如果你希望蜘蛛多翻几页,可以考虑:

  • 把重要内容尽量放在前几页,或者提供“按时间排序”“按热度排序”的入口,让新内容更早出现在浅层。
  • 用分类页、聚合页作为中间层,避免所有内容都堆在一条分页链上。
  • 在 Sitemap 中补充重要分页 URL,帮助蜘蛛发现,但不必把所有分页都放进去。
  • 观察日志中分页 URL 的抓取情况,如果第二页之后很少被抓,说明路径或权重有问题。

分页与内链、Sitemap 的配合

分页链接本身就是内链结构的一部分。它应该和其他内链一样,出现在页面中可被抓取的位置,而不是只放在依赖 JS 的组件里。对于内容量大的站点,可以把分页和分类页、标签页结合:分类页负责聚合,分页负责深入列表,Sitemap 负责补充漏掉的 URL。三者分工不同,但目标一致,都是让蜘蛛有路可走。

最后,分页请求数量多,对服务器响应速度更敏感。如果翻页接口慢或经常超时,蜘蛛可能提前结束这条路径。保持分页页面的稳定响应,比单纯增加页码数量更重要。