列表页和分页经常被放在一起讨论,但它们其实在做两件事。列表页往往有真实搜索需求,用户会搜某个分类、某个榜单;分页更多是一条路径,作用是让蜘蛛顺着往下走,把更深的详情页找出来。把这两件事分开看,后面的取舍会清楚很多。
先看分页的 URL 是怎么长出来的
常见的形态有这几种:
- 路径式分页,例如 /list/page/2/
- 参数式分页,例如 /list?page=2,或者再叠加排序、筛选参数
- 无限滚动或“加载更多”,内容靠 JS 追加,URL 不变
- “查看全部”页,把所有条目铺在一个长页面上
前两种对蜘蛛最友好,因为每个状态都有独立地址,可以被单独抓取。后两种的风险在于,如果没有任何可抓取的地址,蜘蛛只能看到第一屏,后面的条目就少了入口。另外要留意 rel="next" / rel="prev" 这类标记,它们已经不再被主流搜索引擎当作收录信号,只算提示,不能替代可抓取的链接。
分页页面对收录的价值到底有多少
一个分页页面本身被搜到的概率通常不高,用户很少去搜“第 7 页”。它的价值主要有两点:传递链接关系、提供发现路径,以及承接一部分浏览型需求。
但分页也很容易变成重复内容的来源。如果分页复用了列表首页的标题、描述和大段摘要,几十个分页在索引评估里看起来会非常接近。结果可能是只有第一个版本被留下,也可能几个版本互相稀释信号。
判断标准可以简化成一句:这个分页有没有独立的、值得被单独检索的信息。如果没有,它更应该被当作路径,而不是被当作目标页面。
三种常见处理方式,各自的代价
用 noindex 关掉分页
这是最常见的做法。需要注意的是,noindex 的分页依然可以被抓取,页面里的链接也依然可以被跟随,蜘蛛顺着往下走还是能发现详情页。真正的风险是同时又在 robots.txt 里屏蔽了分页:蜘蛛既抓不到页面,也看不到页面里的链接,更看不到 noindex,深层页面可能就此断了入口。
用 canonical 指向第一页
把后面几页的 canonical 都指向第一页,表达的是“这些属于同一个序列”。这种做法会让分页基本不进入索引,同时保留可抓取性。代价是,如果分页确实有独立的浏览需求,这部分入口就丢了。还要注意,canonical 指向的页面内容应该确实相近,如果指向的页面差别很大,这个信号本身会被忽略。
保持可索引
适合确实有浏览需求的站点,比如电商的分类翻页、内容站的主题列表。前提是每个分页有自己的标题和描述,并且不出现大量由纯参数组合生成的空页面。
还有一个容易忽略的地方是 sitemap。如果分页已经被 noindex,就不该再出现在 sitemap 里,两种信号互相矛盾,只会让蜘蛛反复确认。如果分页保持可索引,提交少数有独立价值的那几页就够了,把几十页翻页全部塞进去,反而分散了抓取额度。
几个可以落地的检查项
- 从列表第一页出发,不依赖 JS 能不能点到后面的分页?
- 分页 URL 是否稳定,参数顺序、大小写、尾部斜杠是否统一?
- 空结果页、超出范围的分页返回的是 404 还是 200?
- 筛选参数组合出的地址有多少,有没有形成大量内容雷同的页面?
- 做了 noindex 之后,详情页的抓取量有没有下降?如果明显下降,说明分页一直在承担发现入口的角色,需要补上别的路径。
这些问题没有统一答案,取决于你把分页当成路径还是当成页面。先定下这一点,后面的处理方式基本也就定下来了。