第 2 页之后设了 noindex,follow,深层文章正在变孤儿

老 SEO 建议说给分页加 `noindex,follow`。但 Google 长期对待 `noindex,follow` 等同 `noindex,nofollow`,只能从第 2 页之后链接到的文章会悄悄掉出索引。本文给出修复办法。

一句话结论: 把分页页面(/blog/page/2//category/x/page/3/ 等)从 noindex,follow 改成 index,follow,并让每页的 canonical 指向自己;同时把每篇文章的 URL 都放进 XML sitemap,让文章发现永远不依赖”穿透分页去爬”。这正是 Google 官方推荐的配置,受影响的文章一般会在 2–4 周内摆脱 “Discovered/Crawled – currently not indexed”。

一个 blog hub,/blog/page/2//blog/page/3/ 被加了那条流传很广的 SEO 建议:<meta name="robots" content="noindex,follow">,让分页不跟主 hub 竞争,又保留链接权重传递。半年后,只能从第 3 页之后链接到的文章从索引里消失了。Search Console 的 Page indexing 把它们列为 “Discovered – currently not indexed” 或 “Crawled – currently not indexed”。这个看起来很聪明的做法,跟 Google 实际处理长期 noindex,follow 的方式正好相反。

Google 的 John Mueller 把话说得很直白:一个页面 noindex 挂得够久,Google 就会判断”这个页面真的不想出现在搜索里”,把它彻底丢掉,连带也不再跟踪上面的链接——所以长期存在的 noindex,follow 最终表现得跟 noindex,nofollow 一样。没有固定的倒计时,取决于 Google 多久重抓一次这个页面。一旦到了这个状态,如果第 2 页之后是文章 11 到 200 的唯一站内路径,这些文章就成了孤儿,没有一条 Google 信任的链接。

这也是主流 SEO 插件改变做法的原因:Yoast 早在 6.3 版就移除了”noindex 归档分页子页”的选项,正是因为这个问题;而 Google 当前的分页指南(截至 2026 年 6 月)是让分页页面保持可索引,并给每一页一个指向自己的 canonical。

你属于哪一类

先做一个检查:打开一个分页 URL(yoursite.com/blog/page/2/),view-source:,搜索 robotscanonical,然后对照下表。

第 2 页源码里看到的可能原因跳到
<meta name="robots" content="noindex,follow">插件 filter、主题代码或框架模板在第 2 页之后强加 noindex原因 1、2
index,follow,但深层文章还是掉了分页是唯一发现路径;sitemap 漏了它们原因 3、4
canonical 指向第 1 页(而非自身)canonical 到 hub 的错误;非重复页之间 Google 会忽略它原因 5
原始 HTML 里根本没有 <a href=".../page/2/">JS “Load More” 把深层链接对 Googlebot 藏起来了原因 6

常见原因

1. WordPress 插件 filter、主题代码,或遗留的”noindex 归档子页”设置

2026 年 6 月的重要更新:Yoast 已经不再内置”noindex 归档子页”开关。Yoast 在 6.3 版就移除了它,正是因为第 2 页之后长期 noindex 会让深层文章拿不到所需的站内链接。所以如果一个 Yoast 站点在 /category/x/page/2/ 上输出 noindex,follow,那是来自自定义代码(一个 wpseo_robots filter)、旧主题或别的插件——而不是 Yoast 现成的某个勾选项。

Rank Math 则不同:它仍然暴露这个开关。在 Rank Math SEO → Titles & Meta → Misc Pages 下有一个 “Noindex Paginated Single Pages” 选项;旧版 Rank Math 还会在这里暴露分页 noindex。一些”最佳设置”教程至今还推荐打开它,这恰恰是给你的分页归档种下 noindex 的元凶。

怎么判断:访问 yoursite.com/category/whatever/page/2/view-source:,搜索 robots。看到 noindex,follow 就说明有东西在设它。要找出是谁,在主题和已启用插件里搜 wpseo_robotsrank_math/frontend/robots,或者紧挨着 is_paged() / paged > 1 判断的硬编码 noindex

2. Astro / Next.js 分页路由的一刀切 meta

模板 [page].astropage > 1 时输出 <meta name="robots" content="noindex,follow">。写代码的同事看了一篇 2014 年的 Moz 文章。

怎么判断:检查 getStaticPaths / 动态路由文件,找按 pageNumber > 1 分支的 noindex 逻辑。

3. 分页是深层内容的唯一站内路径

Hub 链到文章 1-10,第 2 页链到 11-20,第 3 页链到 21-30。没有 category index、没有相关文章、sitemap 里也没有 11 之后的文章。第 2 页之后是 noindex,文章 11+ 就零个 Google 信任的站内链接。

怎么判断:挑一篇住在第 3 页的文章。Search Console URL Inspection → “Referring page”。如果唯一 referrer 是一个 noindex 页,就是它。

4. Sitemap 漏掉分页 URL 和文章

Sitemap 只列 hub /blog/ 和精选文章,第 2 页之后的文章 URL 从没出现。再加上分页是 noindex,Googlebot 没有入口。

怎么判断:下载 sitemap,grep 一篇掉的文章 URL。没有就说明 sitemap 没在帮忙。

5. 把 noindex,follow 跟”canonical 到 hub 的 index,follow”混淆

有些团队想用 rel=canonical 把分页”合并”到第 1 页,让所有分页都 canonical 指回第 1 页。Google 在非重复页之间的 canonical 会被忽略。分页页还是会被爬,canonical 信号浪费掉,反而增加混乱。

怎么判断:第 2 页的 <link rel="canonical"> 指向第 1 页(内容不同)。Search Console 会报 “Duplicate, Google chose different canonical” 或者直接忽略。

6. JS “load more” 把深层文章完全藏起来

变体:不用分页 URL,用一个 “Load More” 按钮 JS 拉取,不 push URL。Googlebot 根本看不到 11+ 的文章链接。

怎么判断:DevTools 关掉 JS,刷新 hub。如果只有 10 篇文章而且没有 <a href="/blog/page/2/">,深层文章就是纯 JS。

最短修复路径

第 1 步:明确选一个分页策略

总共三种说法,挑一个:

  • A. 所有分页都 index:用 index,follow,并给每页一个指向自身的 canonical(第 2 页的 canonical 指向第 2 页)。这是 Google 当前文档推荐的做法,hub 页之间的部分重叠 Google 处理得很好。对发现性最稳。
  • B. 第 2 页之后保持 noindex,follow,但单独做一个包含每篇文章 URL 的 sitemap,让发现永远不依赖”穿透分页去爬”。这样能扛住”noindex 漂移成 nofollow”,因为发现路径是 sitemap,而不是分页上的链接。
  • C. 千万别把分页 canonical 到第 1 页。 这是个坑,不是一个选项。Google 明确说:不要把分页序列的第 1 页当成其它页的 canonical,给每一页一个指向自身的 canonical。第 2、3、4 页不是第 1 页的重复,所以 Google 会忽略”canonical 到第 1 页”,你白白浪费了这个信号。

A 选项最干净。B 选项只有在文章 sitemap 真的完整且持续同步时才可接受。

第 2 步:去掉第 2 页之后的一刀切 noindex,并让 canonical 指向自身

Astro:

---
const { page } = Astro.props;
// 删掉第 2 页 noindex 这个分支:
// const robots = page.currentPage > 1 ? 'noindex,follow' : 'index,follow';
const robots = 'index,follow';
---
<meta name="robots" content={robots}>
<link rel="canonical" href={Astro.url.href} />

WordPress:

  • Rank Math → Titles & Meta → Misc Pages → 关掉 “Noindex Paginated Single Pages”(以及你这个版本暴露的任何分页 noindex 开关)。Rank Math 默认已经给分页页加了指向自身的 canonical。
  • Yoast 已经没有可切换的分页 noindex 勾选项了(6.3 移除),并且默认会给分页归档做指向自身的 canonical。如果你仍然在第 2 页之后看到 noindex,就去揪出加它的 wpseo_robots filter 或主题代码,删掉那个分支。

验证结果:重新 view-source: 看第 2 页,确认它现在是 index,follow,而且 <link rel="canonical"> 指向第 2 页自身,而不是第 1 页。

第 3 步:所有文章 URL 都进 sitemap

别依赖”穿透分页”爬。从文章全量列表生成 sitemap,不从分页 HTML 生成:

// scripts/generate-sitemap.mjs
import fs from 'node:fs';
const articles = JSON.parse(fs.readFileSync('articles.json', 'utf8'));
const urls = articles.map(a => `<url><loc>https://example.com/articles/${a.slug}/</loc></url>`);
fs.writeFileSync('public/sitemap-articles.xml', `<urlset>${urls.join('')}</urlset>`);

第 4 步:重新提交 sitemap,触发重抓

Search Console → Sitemaps → 提交文章 sitemap 的 URL(重新提交已有条目也行,会再次触发处理)。然后挑 5–10 篇掉的文章,把每个 URL 粘进 Search Console 顶部的 “Inspect any URL” 栏,点 Request Indexing,它会进入优先抓取队列。重复提交同一个 URL 不会提升排队位置,所以每个 URL 提交一次然后等待即可。

第 5 步:给深层文章加二级内链

不要让任何文章只能通过分页 archives 访问到。从相关文章、tag 页、“同作者更多”组件交叉链接,让每篇深层文章至少有一两条来自可索引页面的链接。

第 6 步:Search Console 持续观察

Page indexing → “Discovered – currently not indexed” 和 “Crawled – currently not indexed” 的计数应该在 2–4 周内回落,Googlebot 通过 sitemap 和新内链重新发现文章。Search Console 数据有几天延迟,而且一个刚提交的 URL 在请求后 24–48 小时内可能仍显示未索引,所以第一天别慌。

怎样确认已经修好

  1. view-source:/blog/page/2/,显示 index,follow,且 canonical 指向第 2 页自身。
  2. 对一篇之前掉了的文章做 URL Inspection → “Page is indexed”,或者重抓后至少 “URL is on Google”。
  3. 在 URL Inspection 里,“Referring page(s)” / discovery 部分现在列出的是一个可索引的 referrer(sitemap 或一篇正常文章),而不是只有一个 noindex 分页页。
  4. Page indexing 里 “Discovered/Crawled – currently not indexed” 这两个桶逐周下降,而不是持平或上升。

哪些情况可能不是你操作错了

零外链信号的老归档文章,就算修了分页也可能再也回不来。那是内容质量 / 内链问题,不是分页指令问题。

容易误判的情况

误以为是站点速度或薄内容问题。文章本身没问题,问题是它们因为唯一入站内链在一个 noindex 页上,而 Google 不再信任那个页作为链接源——所以变成孤儿。

预防建议

  • 分页 archive 默认 index,follow 并配指向自身的 canonical,除非有特别理由。
  • 永远别让分页是唯一发现路径。文章一定要进 sitemap 并有交叉内链。
  • 真的要 noindex 第 2 页之后,就把 sitemap 当作发现路径,并每季度做一次孤儿页审计。
  • 别从分页 canonical 到第 1 页——它们不是重复页,Google 要求每页指向自身。
  • 别信 2019 年之前写的分页建议。rel=prev/next 已在 2019 年被 Google 弃用,而”noindex 第 2 页之后”这套早于 Google 确认它最终会停止跟踪这些链接之前就有了。

权威参考:

FAQ

  • rel=prev/next 还能帮分页吗? 对 Google 没用了。Google 在 2019 年就停止把 rel=prev/next 用于索引。它不会有害,而且 Bing 和其它一些引擎仍然读它,所以没必要急着删现有标签。
  • 第 2 页之后应该 canonical 到第 1 页吗? 不应该。Google 会忽略非重复页之间的 canonical,而第 2/3/4 页跟第 1 页是不同内容。给每个分页页一个指向自身的 canonical。
  • noindex,follow 用在分页上有安全的时候吗? 只有在发现性不依赖这些页时才行——每篇文章必须同时进 sitemap 并被可索引页面链接。即便如此,也要预期 Google 最终会停止跟踪那些长期 noindex 页上的链接,所以别拿它们当爬取路径。
  • “noindex” 多久会变成实质上的 “nofollow”? 没有公布的倒计时。Mueller 说取决于抓取频率——抓得越勤的页面到这个状态越快。任何 noindex 挂了几周的页面,都当它已经不再传递链接信号。
  • 只在最后一页 noindex 行不行? 不行。要么整组分页都可索引,要么都不可索引;在一个序列里混合信号只会让爬虫困惑,又解决不了发现问题。
  • 修好的文章一定会回来吗? 通常会,前提是它们确实有用,而且现在有了可索引的入站链接。又薄又没信号的老文章可能仍然出不来——那是内容/链接问题,不是分页问题。

相关阅读

标签: #SEO #排查 #收录 #Search Console #pagination #noindex