指南

robots.txt、noindex 还是 canonical:各自该在什么时候用

三个工具,三种完全不同的用途。选错了,要么想删的页面一直留在搜索结果里,要么 Google 根本读不到你的指令。

作者: WebDoctor 编辑部·2026年10月6日·2 分钟阅读


想控制抓取,用 robots.txt;想让页面不出现在搜索结果中,用 noindex;想从一组重复页面里选定一个网址,用 rel=canonical。三者解决的是不同的问题,而且会互相干扰:被 robots.txt 屏蔽的页面仍可能被编入索引,而 Google 永远看不到无法抓取的页面上的 noindex 规则。

robots.txt、noindex 和 canonical 有什么区别?

三者作用于不同的阶段。robots.txt 决定抓取工具能否获取某个网址。noindex 决定已获取的页面能否出现在搜索结果中。canonical 告诉 Google,在几个几乎相同的页面中,应由哪一个代表整组。把 Google 文档中的描述放在一起,就是下表。

robots.txt 中的 Disallownoindexrel=canonical
控制什么抓取编入索引由哪个重复页面代表整组
写在哪里网站根目录下的 robots.txt 文件robots meta 标记或 X-Robots-Tag HTTP 标头head 中的 link 元素,或 Link HTTP 标头
能否让网址不出现在 Google 中?不能。如果有其他网站链接到被屏蔽的网址,它仍可能被编入索引能,前提是 Googlebot 抓取了页面并读到规则不能。重复页面会被合并,而不是被删除
页面是否必须被抓取?否是是
约束力如何?是否遵守由各抓取工具自行决定Google 会将页面从搜索结果中完全移除是提示,不是规则

什么时候该用 robots.txt?

当问题出在抓取流量上时。Google 的 robots.txt 简介说,这个文件主要用来避免网站因请求过多而超负荷。对网页来说,它适合两种情况:服务器应付不了 Google 抓取工具的请求,或者你想避免抓取不重要或相似的页面。它也是文档中记载的、阻止图片、视频和音频文件出现在 Google 搜索中的方法。

但按照 Google 的说法,它不是让网页不出现在 Google 中的机制。被屏蔽的页面如果有其他网站链接,仍然可能被编入索引。这些链接的网址和锚文本可能出现在搜索结果中,只是没有说明文字。而且这些规则是自愿遵守的:Googlebot 会遵守,其他抓取工具未必。想知道你的文件实际允许什么,可以用我们的 robots.txt 测试工具检查。

什么时候该用 noindex?

当某个页面不能出现在 Google 搜索中时。在 head 中加入 <meta name="robots" content="noindex">,或者对 PDF 之类的文件,在响应标头中返回 X-Robots-Tag: noindex。Google 的 noindex 文档说明,Googlebot 抓取页面并读取到规则后,无论是否有其他网站链接到该页面,Google 都会将它从搜索结果中完全移除。

问题就出在第一步。Google 必须抓取页面,才能看到 meta 标记和 HTTP 标头。如果加了 noindex 之后页面仍然出现,文档给出了两个可能的原因:Google 还没有重新抓取,或者 robots.txt 屏蔽了它。可以通过 Search Console 的网址检查工具请求重新抓取。Google 还提到,其他一些搜索引擎对 noindex 的理解可能不同。

什么时候该改用 canonical 标记?

当同一内容存在于多个网址,而你希望由其中一个网址集中获得权重时。Google 关于合并重复网址的页面列出了理由:指定用户在搜索结果中看到哪个网址,把链接等信号合并到一个首选网址上,简化内容的指标跟踪,以及避免把抓取时间花在重复页面上。

canonical 不会隐藏任何东西。Google 的规范化说明页称它是提示而不是规则,并说明规范页面的抓取最为频繁,重复页面的抓取频率则较低。搜索结果通常指向规范页面,除非某个重复页面更适合搜索用户。重定向和 rel=canonical 都是强信号,列入站点地图则是弱信号。对于非 HTML 文件,可以用 Link HTTP 标头返回 canonical。这些信号互相矛盾时会发生什么,见我们的 canonical 标记冲突指南。

robots.txt 和 noindex 能一起用吗?

如果目的是移除页面,就不能用在同一个网址上。Google 说得很明确:如果页面被 robots.txt 屏蔽,抓取工具永远看不到 noindex 规则,页面仍可能出现在搜索结果中。所以,对于一直删不掉的已编入索引网址,正确做法是去掉 Disallow,让 Google 抓取,再让 noindex 生效。

Google 关于重复网址的页面还指出了三种应避免的做法:

  • 不要用 robots.txt 来实现规范化。
  • 不要在同一网站内用 noindex 来左右规范页面的选择,因为这会把页面从搜索中完全屏蔽。
  • 不要用网址移除工具来实现规范化,因为它会隐藏该网址的所有版本。

到底该用哪一个?

从你想要的结果出发,而不是从你熟悉的工具出发。

  • 服务器负载过高,或者抓取工具把时间浪费在不重要的页面上:robots.txt。
  • 页面不能出现在 Google 中:noindex,同时保持允许抓取。对于私密内容,使用 Google 列出的另一种方式,也就是密码保护。
  • 同一内容存在于多个网址:在每个重复页面上使用 rel=canonical;如果重复页面根本不需要存在,就用重定向。
  • 不想让图片、视频或音频出现在 Google 搜索中:robots.txt。

如果你担心的是 AI 抓取工具,我们的 AI 抓取工具 robots.txt 指南提供了按机器人划分、可直接复制的规则。

编入索引技术 SEO

Frequently asked questions

在 robots.txt 中屏蔽页面,能把它从 Google 中移除吗?
不能。Google 表示,robots.txt 不是让网页不出现在 Google 中的机制。如果有其他网站链接,被屏蔽的页面仍可能被编入索引,网址也可能在没有说明文字的情况下出现在搜索结果中。要排除它,请使用 noindex,并保持允许抓取。
为什么加了 noindex 的页面仍在 Google 中?
Google 文档给出了两个可能的原因:一是添加规则后 Google 还没有重新抓取该页面,二是 robots.txt 屏蔽了抓取工具,导致它从未看到 noindex。请移除该网址的 Disallow,再通过 Search Console 的网址检查工具请求重新抓取。
重复页面应该用 noindex 而不是 canonical 吗?
Google 不建议这样做。其重复网址指南指出,在同一网站内用 noindex 阻止规范页面的选择,会把页面从搜索中完全屏蔽。rel=canonical 或重定向则会把重复页面合并到一个首选网址上,并把链接等信号集中在一起。
Google 总会遵循 canonical 标记吗?
不一定。Google 把规范网址的指定称为提示而不是规则,并根据编入索引时收集的信号自行选择规范页面。重定向和 rel=canonical 是强信号,列入站点地图是弱信号,所以请让三者都指向同一个网址。

立即检测

继续阅读