搜索抓取

列表页会翻到第几页:分页结构对蜘蛛抓取深度的影响

列表页是站内链接密度最高的入口,分页做得好坏直接决定新页面多久被发现。文章从链接形态、分页 URL 规范、分页页是否索引、深分页的服务端代价四个角度说明:蜘蛛能翻到第几页,以及老内容被埋之后可以用哪些路径补回来。

搜索抓取

列表页会翻到第几页:分页结构对蜘蛛抓取深度的影响

列表页是站内链接密度最高的地方:一个分类页往往挂着几十个详情页入口,蜘蛛进门先看它,再顺着链接往外走。分页做得好,新页面几天内就能被发现;做得不好,第五页之后的内容可能几个月都没有蜘蛛来过。下面从链接形态、分页 URL、是否索引、服务端代价四个层面拆开说。

链接形态决定蜘蛛能翻到第几页

用 a href,别只靠点击事件

不少站点的分页是 JS 拼接出来的,或者只有“加载更多”按钮,HTML 里找不到指向第二页的可抓取链接。蜘蛛拿到的初始 HTML 里没有这个链接,翻页链路就在这里断掉,后面的列表页和详情页都只能等 Sitemap 或别处的内链来救。

稳妥做法是保留一组真实链接:数字页码、上一页/下一页,都写成可抓取的 a 标签。加载更多可以保留,但要有一个对应的分页 URL 作为兜底。

rel=next/prev 不是必须,但链接要在

搜索引擎早已不把 rel=next/prev 当作索引合并信号,不过链接本身仍然可以被跟。也就是说,哪怕不用这套标注,只要第二页的链接真实存在、URL 稳定,蜘蛛就能往下走。真正的问题通常不是标注缺失,而是链接缺失或指向参数混乱的地址。

分页 URL 要保持可预期

  • 固定一套分页参数,例如统一用 page,不要今天 page、明天 p、后天 offset 混用。
  • 排序、筛选、来源追踪参数不要混进分页链接里,否则同一个列表会裂成几十个地址,抓取分散、重复度还高。
  • 分页地址尽量保持纯路径或固定参数顺序,减少因为参数顺序不同而产生的重复 URL。
判断标准很简单:把第一页和第五页的地址拿出来对比,除了页码,其他部分应该完全一致。

分页页要不要被索引

两种思路都可行,但要清楚差别。如果希望分页页参与索引,就让它的 canonical 指向自身;如果把第二页及以后 canonical 到第一页,通常会削弱这些页面的索引信号,链接虽然一般仍会被跟随,但不确定因素更多。

如果不希望分页页出现在结果里,用 noindex,follow 更直接:noindex 只影响索引,不影响抓取,follow 保证列表里的链接还能被跟到。需要注意的是,noindex 页面依然会被抓取,它同样消耗抓取预算,所以别把大量低价值的自动聚合页留着不处理。

老内容被埋之后怎么补

  • 日期归档页:把老文章按时间重新组织成可抓取的入口。
  • 专题聚合页:用主题把跨分类的内容串起来,给深页再铺一条路。
  • 详情页的相关推荐:让老页面互相引用,不依赖列表翻页。
  • Sitemap:作为补充发现渠道,给那些确实进不了列表的 URL 留一条通路。

深分页对服务端的代价

分页越深,数据库偏移查询越慢,响应时间可能从几十毫秒涨到几百毫秒甚至超时。蜘蛛对响应时间是敏感的,同一个目录下连续遇到慢响应,抓取节奏会明显放缓。与其提供几十页翻页,不如限制可翻页范围,把深翻页改成归档路径或按条件筛选的独立入口,既省服务器资源,也让每个地址都更容易被稳定抓取。

从日志核对分页的抓取情况

  • 统计列表页地址的访问次数,重点看第一页和第十页的差距。
  • 检查这些请求的状态码,留意 5xx 和超时,它们往往是抓取放缓的原因。
  • 看带分页参数的地址是否收敛到少量固定形式,还是已经散成很多变体。

小结一下:分页的问题很少出在“蜘蛛不肯翻”,多数出在链接不可抓、地址不统一、或者深页响应太慢。把这三件事处理好,列表页就能重新变成一个稳定的链接输送带。