网站分页策略与SEO:无限滚动、加载更多还是传统分页
分页是Web设计中再常见不过的功能——把一长串内容(产品列表、文章列表)拆成多页,避免用户一页翻不到底。但对搜索引擎来说,分页策略选错了会产生三种后果:重复内容被Google惩罚、高价值内容因为被埋在深层分页中而得不到索引、以及爬虫预算的大面积浪费。更棘手的是,分页策略不仅影响SEO,还直接影响用户

分页是Web设计中再常见不过的功能——把一长串内容(产品列表、文章列表)拆成多页,避免用户一页翻不到底。但对搜索引擎来说,分页策略选错了会产生三种后果:重复内容被Google惩罚、高价值内容因为被埋在深层分页中而得不到索引、以及爬虫预算的大面积浪费。更棘手的是,分页策略不仅影响SEO,还直接影响用户体验——两者在某些情况下是冲突的。
四种主流分页方案对SEO的影响完全不可互相替代
目前市场上四种分页方案各有优劣,没有一个方案是"永远最优"的,选择取决于你的内容类型、用户行为和技术约束。
传统分页(带独立URL的页码链接):每页有独立URL(如/products/?page=2),用户可以收藏特定页面、分享给朋友。对SEO最透明——Google能逐页抓取、索引每页上的产品链接。缺点:内容相似的多个分页可能被Google判定为重复内容;第10页以后的内容几乎不可能被用户和Google发现。正确做法是所有分页用rel="prev"和rel="next"(Google 2019年停止使用这些标签,但Bing仍支持)或用canonical指向"查看全部"页面。
无限滚动:用户滚到底部时JS自动加载更多内容。用户体验好——浏览流畅、不需要点击。SEO噩梦——Googlebot不执行滚动事件,JavaScript动态加载的内容Google可能看不到(依赖JS执行和渲染队列)。变通方案:为Googlebot提供一个静态的、分页版本的替代页面(动态渲染),或者用支持SSR的无限滚动实现(如Next.js的Infinite Scroll with SSR)。
加载更多按钮:用户点击按钮后JS加载更多内容。比无限滚动对SEO友好一点——因为有一个可被爬虫发现的链接(如果按钮使用标准a标签href指向下一页URL)。但用户体验略逊于无限滚动。推荐的是:按钮使用标准链接指向下一页,点击时用JS劫持事件做异步加载——让Googlebot能跟随链接、用户获得平滑体验。
查看全部页面:一个页面展示所有内容(不分页)。SEO最理想——所有内容在同一个URL上,Google一次性抓取全部、没有重复内容风险。但用户体验最差——如果有1000个产品,页面加载时间可能超过10秒,用户等不了。只适用于内容总量在500条以内的场景。
四种分页方案的多维度对比
| 分页方案 | SEO友好度 | 用户体验 | 实现复杂度 | 推荐场景 |
|---|---|---|---|---|
| 独立URL分页 | 高 | 中(需要点击) | 低 | 内容总量大(1000+)且每页都可能被搜索和分享 |
| 无限滚动 | 低(需要JS优化) | 高 | 中 | 内容为视觉消费型(图片/视频/社交动态),不依赖搜索引擎 |
| 加载更多按钮 | 中(可优化) | 中高 | 中 | 希望在SEO和用户体验间取得平衡的内容站 |
| 查看全部 | 最高 | 低(加载慢) | 最低 | 内容总量小(<500条)的内容列表 |
独立URL分页的SEO最佳实践
如果你选择了传统分页(大多数网站的现实选择),以下做法可以最大化SEO效果同时最小化重复内容风险:
第一,每页有独有的、内容不同的Title和Meta Description——而不是所有页面用同一套TDK后面加个" - 第2页"。正确做法:分页Title中体现当前页的独特价值或内容范围(如"女士连衣裙 - 第2页:经典款与长袖款 | 品牌名")。H1同样处理——不要所有分页都是同一个H1。
第二,分页的第一页是"主版本",后续分页用canonical指向第一页——但前提是后续分页的内容完全被第一页所包含。如果不是(如每页是独立主题),不要滥用canonical。Google的John Mueller在2020年表示:分页用canonical指向第一页是可行的,但如果分页之间有明显的独立价值(如每页是不同年份的文章归档),不应该用canonical合并。
第三,对于过深的分页(如page>50),建议用robots.txt禁止抓取或加noindex。深度分页的SEO价值极低(用户和Google都不会翻到第50页),但Google仍然会抓取——浪费爬虫预算。
分页策略自检清单
- 不同分页页面的Title和Meta Description是否有差异化(而非统一模板加"第X页")?
- 深度分页(>50页)是否被robots.txt禁止或加了noindex?
- "加载更多"按钮是否用了标准a标签href(而非纯JS点击事件)?
- 如果用了无限滚动,是否为Googlebot提供了静态分页替代方案?
- 分页的canonical策略是否合理(有独立价值的分页不用canonical合并)?
- 是否在GSC中监控了分页URL的索引状态和爬取频率?
参考与核验来源
以下官方资料用于核验平台规则与技术边界;文中的流程、清单和情景分析由SEO POWER编辑部整理。
常见问题
Q:Google在2019年说不再使用rel="prev/next"了,分页怎么办?
Google确认从2019年起不再将rel="prev"和rel="next"作为索引合并信号。目前Google处理分页的方式更接近"把它当作独立的URL来看待"——如果分页内容高度相似,Google自己会做合并处理。Bing仍然支持rel="prev/next"。实操建议:rel="prev/next"留着不碍事(Bing用户仍有收益),但不依赖它作为SEO策略的核心机制——用TDK差异化和canonical策略来管理分页SEO。
Q:电商列表页用了无限滚动,产品被Google发现的比例降低了,怎么补救?
两种补救方式:一是为Googlebot提供分页版本的替代页面(Dynamic Rendering)——检测User-agent是Googlebot时返回传统分页,普通用户返回无限滚动。二是保留一个"查看全部"页面(SEO版本),所有分页canonical到该页面,同时在robots.txt中声明Sitemap包含该查看全部页面。实现方式取决于技术栈:WordPress用插件、自建站用中间件判断User-agent后路由到不同模板。
Q:"加载更多"按钮怎么设计才能让Google抓取到后续内容?
按钮的HTML结构必须是标准的a标签href="/products/?page=2"——Google只跟随标准链接。然后在JavaScript中劫持这个a标签的click事件,阻止默认跳转行为,改用fetch或XHR异步加载内容。这样Googlebot因为没有JS执行能力就会点击这个链接进入下一页——普通用户因为有JS劫持而获得异步加载的平滑体验。