翻页怎么做:每一页留住自己的网址,canonical 绝不指回第一页
pagination seo 只有一条规则:序列里的每一页都是独立的一页。给它自己的网址、让 canonical 指向自己、从上一页给它一条真链接。五步有序 SOP、一段可粘的 head 块、一张五行判读表和三条 curl 自检。

pagination seo 归根到底只有一条规则,外加它推出来的三个后果:序列里的每一页都是独立的一页。给它自己的网址、让它的 canonical 指向自己、并从上一页给它一条真链接。代价最大的那种错,恰恰是看起来最整齐的那种 —— 把第 2、3、4 页的 canonical 全指回第 1 页,等于告诉 Google 这些页不作为落地页存在。
读这篇之前
这一篇默认你的列表已经长到必须切开。相邻的两个决定各有自己的章节,最好先有结论:抓取量到底是不是你的问题,写在抓取预算是给谁看的;机械生成出来的那批网址该关掉哪些,写在分面导航该屏蔽哪些网址。筛选和翻页是一对表亲 —— 都是把一份列表变成一堆网址 —— 但两边的答案方向相反。筛选通常该少留网址。翻页通常该把网址留住。
为什么翻页序列会让爬虫犯难
因为第 2 页到第 40 页彼此长得几乎一样。同一套模板、同一个标题、同一份导航,真正不同的只有中间那二十条内容。一个爬虫走到第 17 页,得判断这是一个独立的落地页,还是它手上那份列表的又一次渲染 —— 而这一页上除了内容本身以外的所有信号,说的都是后者。
Google 对这个歧义给了明确答案:翻页序列里的网址「are treated as separate pages by Google」(Pagination, incremental page loading, and their impact on Google Search,2026-09-08 访问,页面标注更新于 2025-12-10)。是各自独立的页,不是一个页的多个变体。下面所有做法,都是把这句话照字面执行的结果。
麻烦在于,这个圈子曾经被教过相反的东西。rel="next" 和 rel="prev" 一度是声明序列的推荐写法,而同一份文档现在这样说它们:「Google no longer uses these tags, although these links may still be used by other search engines.」它们不会造成伤害。它们也确实没在干很多人以为它们在干的那件事。
第 2 页是一个落地页。你的标记如果说它是第 1 页的副本,Google 就会信。
这份「信」的代价不体现在排名上,而体现在 Search Console 里,所以它能长期没人发现。被 canonical 合并掉的页会从已收录的页里消失,它们承载的内容也就不再能通过搜索被找到。而列表首页的排名一切正常,表面上什么都没坏。
那套旧标记,现在还有多少人在发
就我们手上的证据看,很少。2026-09-08 读取的 27 个大站首页里,只有一个还在 head 里发翻页链接元素:techcrunch.com 发了 <link rel="next" href="https://techcrunch.com/page/2/">。这个面板上没有任何一个站发 rel="prev"。
首页本来就不是找翻页标记的好地方,所以这个数应该当下限读,不是比率 —— 这类元素真正该待的位置是分类列表页和博客归档页,而那些页我们这次没读。它的用处在于校准:如果你还在排期给全站补 rel="next",那是在给一段网上最大的那批出版商已经不再输出的标记花工时,而且是为了一个 Google 明说自己不再使用的信号。
动手做:五步,顺序不能换
顺序重要,因为第 1 步没查清就做第 2 步是有破坏性的。每一步都有一个你自己就能验证的完成标志,不用等 Google。
- 确认每一页都有自己的网址。打开一个真实列表的第 2 页,看地址栏。如果它和第 1 页一模一样,或者页码藏在
#后面,就停在这里 —— 这件事不修好,后面几步都没有意义。Google 对第二种情况的措辞没有余地:「Don't use URL fragment identifiers (the text after a # in a URL) for page numbers in a collection. Google ignores fragment identifiers.」完成标志:第 1、2、3 页有三个不同的网址,在全新的浏览器会话里各自都能加载出对的内容。 - 让每一页的 canonical 指向它自己。这一步最常被做反。官方原句:「Don't use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL.」完成标志:对第 2 页跑一次 curl,返回的 canonical 里是第 2 页的网址,不是第 1 页的。
- 把「下一页」做成一条真链接。一个靠脚本响应的按钮,对不执行脚本的爬虫来说是不存在的。Google 陈述的行为很窄:它「generally crawls URLs found in the
hrefattribute of<a>elements」。完成标志:第 2 页的网址出现在第 1 页的原始 HTML 里,且在某个a元素的href中。 - 决定排序与筛选的变体怎么办。同一份文档提到站点「may support filters or different sort orders for long lists of results」,这类地址返回的是同一批内容的另一种排列。翻页该留;同一份列表的重新排序通常不该繁殖。完成标志:你能对列表接受的每一个参数说出它到底是产生了一个值得被收录的页,还是只是把一个页重排了一遍。
- 去序列的最深处看一眼。打开最后一页,再打开它后面那一页。一个 40 页的列表如果对第 900 页也回 200,它就是在凭空制造网址。完成标志:超出末页的页码返回 404,而不是一个 200 的空列表。
交付物:一段 head 块和三条自检
序列里第 n 页的标记很短,而工作量主要在它不包含什么上面:没有指向前面的 canonical,也没有对序列本身的声明。
<!-- 在 https://example.com/blog?page=3 上 -->
<link rel="canonical" href="https://example.com/blog?page=3">
<title>博客 — 第 3 页</title>
<!-- 正文里放一条真链接,不是按钮 -->
<a href="/blog?page=4">下一页</a>
标题里带上页码,是为了让这个序列在报表里不至于显示成四十条一模一样的标题。Google 并不要求这么做,而且它判断你的标题不好用时会自己改写;但一个人在读网页索引编制报告的时候,得能把第 3 页和第 30 页分开。
# 1. 第 2 页的 canonical 指的是自己吗?
curl -s 'https://example.com/blog?page=2' | grep -i 'rel="canonical"'
# 2. 不跑脚本能不能够到下一页?
curl -s 'https://example.com/blog' | grep -oE 'href="[^"]*page=2[^"]*"'
# 3. 越界的页码会不会拒绝?
curl -sI 'https://example.com/blog?page=9999' | head -1
| 列表在做什么 | 留网址吗 | 为什么 |
|---|---|---|
| 同一列表的第 2、3、4 页 | 留,各自指向自己 | 内容不同的独立页 |
| 同一列表按价格重排 | 不留,指回默认排序 | 同一批内容换了排列 |
| 筛到一个有人搜的品牌 | 有需求就留 | 判据在分面导航那一篇 |
页码写在 # 后面 | 它压根不是网址 | 片段标识符会被忽略 |
| 无限滚动且没有链接 | 没有可留的东西 | 没有锚点就没有抓取路径 |
pagination seo 出错的三种方式
这三种都会产出一个在浏览器里看起来完全正常的站,所以它们能一次次通过评审。
- 所有页的 canonical 都指向第 1 页。最常见的一种,通常来自插件默认值,或者来自某次为消除重复内容告警而做的好心修复。症状是:第 2 页往后的内容从来不出现在搜索结果里,而列表首页排名正常。
- 无限滚动底下没有网址。对访客来说列表是完整的,对爬虫来说它只有一页深。Google 在这件事上的指引指回的仍是那条锚点要求,而不是某种特殊机制,所以修法是给每一批内容一个网址并链过去,滚动体验照旧留给人。站点地图能帮这些页被发现,但它替代不了链接。
- 没有尽头的序列。一个对任意页码都回 200 的列表,会给爬虫递上无穷多的空页。这是分面导航那一篇处理的同一个问题的翻页版本,修法形状也一样:把背后什么都没有的地址拒掉。
这一篇到哪里为止
Google 公布了机制,同时拒绝给阈值,所以这一篇也不给。有三件事是任何人都无法从文档里告诉你的。
- 抓取会走到序列多深。没有公开的数字,也没有办法从站外推出你这个站的数字。深层页面重要的话,诚实的答案是去看自己的网页索引编制报告,而不是信一条经验值。
- 修好翻页会不会改变排名。我们没有测过,而且在一个线上站上这个变量隔离不出来。有据可查的只是:被 canonical 合并掉的页会被排除在考虑之外。那是机制,不是对流量的承诺。
- 「查看全部」那种整合页该怎么办。现行文档没有提到它。围绕单一整合页的旧建议没有被重申过,所以我们也不重申。
还有一条边界值得点名:把一份单薄的列表变成可抓取,并不会让它值得被收录。如果第 4 页到第 40 页装的都是没人搜的内容,让它们可抓取的结果就是它们被抓取,仅此而已。canonical 的决定和「这一页值不值得存在」的决定是两件事,前者展开写在canonical 标签该留哪个网址。
常见问题
现在还要不要用 rel="next" 和 rel="prev"?
Google 说它不再使用这两个标记,其他搜索引擎可能还在用。它们不花钱,对 Google Search 也不起作用。模板里已经有就留着;给一个没有它们的站专门补上,不值得排期。
第 2 页的 canonical 该不该指向第 1 页?
不该。官方文档要求每一页有自己的 canonical,并专门提醒不要拿第一页当整个序列的 canonical。这是翻页上最常见、也最贵的一个错。
无限滚动是不是对 pagination seo 不利?
不利的不是滚动本身,是缺网址。Google 抓的是它在 a 元素里找到的地址,所以一个只会加载更多内容、从不产出链接的滚动,留不下任何可跟进的东西。滚动照留,底下把链接补上。
翻页产生的页需要独立的标题和描述吗?
不是硬要求。Google 会从多个来源拼标题,判断你的不好用时会自己改写。给它们编号的实际理由是给人看的:一份四十行完全相同的收录报告没法读。
怎么确认 AI 爬虫够得到我的翻页页面?
和任何其他页面一样 —— 可达性这件事在翻页的下面一层,列表页本身如果就被挡住,上面这些都无从谈起。这一半可以用 AI 爬虫可达性检查先回答掉。
本文属于 QueryWin 实操手册 · 第 3 阶


