robots.txt 是网站技术 SEO 中一个基础但容易被误解的文件。它可以告诉搜索引擎爬虫哪些 URL 路径可以访问、哪些路径不应抓取。但如果规则写错,或者把它当成隐藏页面、保护敏感数据的工具,就可能产生与预期相反的结果。

随着 AI 搜索和生成式 AI 爬虫受到越来越多关注,网站运营者还需要进一步理解:传统搜索引擎的抓取规则与 AI 爬虫的访问控制有什么关系?使用中文 URL 或 Emoji 路径时,规则应该如何书写?禁止某个爬虫访问,是否意味着相关内容不会再被 AI 使用?

在 Google Search Central 的官方视频系列 Non-Canonical Cabinet 中,Google 搜索团队的 Gary Illyes 与 Cherry Prommawin 围绕这些问题展开了讨论。视频从 robots.txt 的基本语法出发,进一步解释国际化 URL、特殊字符以及 AI 爬虫控制中的常见误区。

视频:What can you actually put in a robots.txt?

一、robots.txt 究竟控制什么?

robots.txt 是放在网站根目录中的纯文本文件,用于向遵守相关规则的自动化爬虫声明:哪些路径允许抓取,哪些路径不允许抓取。

例如,一个网站可以通过以下规则限制爬虫访问管理目录,同时声明站点地图的位置:

User-agent: *
Disallow: /admin/

Sitemap: https://www.example.com/sitemap.xml

这里有三个重要信息:

  • User-agent 指定规则适用的爬虫。
  • Disallow 声明不允许指定爬虫抓取的路径。
  • Sitemap 提供站点地图的完整 URL,帮助爬虫发现网站内容。

Google 还支持 Allow 规则,用于明确允许抓取特定路径。Google 对这些字段的解释可以参考官方的 robots.txt 规范文档。

robots.txt 不等于禁止网页被索引

这是最需要理解的区别。

robots.txt 主要控制抓取,而不是直接控制网页是否出现在搜索结果中。如果一个 URL 被 robots.txt 禁止抓取,但其他网站仍然链接到它,Google 仍有可能发现这个 URL,并在搜索结果中显示该地址,而无法获取被屏蔽页面的完整内容。

如果你的目标是让某个公开页面不出现在 Google 搜索结果中,通常需要考虑 noindex,而不是仅仅添加 Disallow。

例如:

<meta name="robots" content="noindex">

但这里还有一个容易忽略的细节:爬虫必须能够访问页面,才能读取其中的 noindex 指令。如果同时通过 robots.txt 阻止抓取,Google 就可能无法看到这个标记。

因此,抓取控制和索引控制需要分别规划,不能将它们当作同一项设置。更多细节可参考 Google 关于 noindex 的官方说明。

robots.txt 也不是网站安全机制

robots.txt 是公开文件,任何人都可以访问。它向合规爬虫表达抓取偏好,但不是身份验证机制,也不能保证所有机器人都会遵守规则。

如果某些页面包含订单信息、客户资料、会员专属内容或其他敏感数据,应使用登录验证、权限控制或密码保护等措施,而不是依赖 robots.txt。

对于独立站来说,后台页面、客户账户、订单记录和内部数据都应该通过真正的访问控制保护。不要因为某条路径写入了 Disallow,就认为其中的数据已经安全。

二、规则写得像人话,不代表爬虫能够正确理解

Google 在视频中强调,robots.txt 不是可以随意编写的自然语言文件。爬虫只会解析它支持的规则。

例如,下面这种写法是错误的:

User-agent: *
Don't crawl /private/

Don't crawl 不是有效的 robots.txt 指令,因此不能依赖它阻止爬虫访问 /private/。

正确的规则应该写成:

User-agent: *
Disallow: /private/

Google 会逐行解析文件,并忽略无法识别的无效行。因此,语法错误可能不会明显地报错,却会让预期的限制失效。

实际配置时,还应注意以下几点:

  • 文件位置: 通常应放在网站根目录,例如 https://www.example.com/robots.txt。
  • 适用范围: 规则只适用于相应的协议、主机和端口。主域名与子域名可能需要分别配置。
  • 路径大小写: 路径匹配具有大小写敏感性,/Private/ 和 /private/ 不应被视为相同路径。
  • 文件格式: 使用 UTF-8 编码的纯文本文件。
  • 规则验证: 修改后应检查实际文件内容,并测试目标 URL 是否匹配预期规则。

另外,robots.txt 的标准由 RFC 9309 定义。遵循标准比依赖某一个爬虫的特殊解析习惯更加稳妥。

三、中文 URL 和 Emoji 路径应该怎样写?

对于使用中文 URL、国际化路径或 Emoji 的网站,这是本次视频中最值得注意的技术细节之一。

URL 路径可能包含非 ASCII 字符。例如:

https://www.example.com/中文/产品/

在 URL 传输和匹配过程中,这些字符会涉及 UTF-8 编码和百分号编码(percent-encoding)。

如果希望限制这个路径,可以使用编码后的写法:

User-agent: *
Disallow: /%E4%B8%AD%E6%96%87/%E4%BA%A7%E5%93%81/

这里的编码对应路径 /中文/产品/。

为什么建议使用百分号编码?

Google 的爬虫能够自动将规则中的原始 UTF-8 路径规范化为百分号编码形式,因此,在 Google 的解析机制下,原始中文路径与相应的编码形式可能得到相同的匹配结果。

但是,不同爬虫对 robots.txt 的实现并不完全一致。Google 在视频中建议,对非英文字符和 Emoji 路径使用百分号编码,以提高不同爬虫之间的兼容性。RFC 9309 也规定,非 ASCII 字符在路径匹配前需要按照 URL 标准进行相应的编码处理。

同样的原则适用于 Emoji。

例如,网站存在如下路径:

https://www.example.com/sale/🐔/

对应的 Emoji 路径可以写成:

User-agent: *
Disallow: /sale/%F0%9F%90%94/

这里的 %F0%9F%90%94 是 Emoji 🐔 的 UTF-8 百分号编码形式。

需要注意,以上示例用于说明编码原理。实际配置时,应当针对网站真正使用的 URL 路径进行编码,并测试规则是否准确匹配目标 URL。

还有一个容易混淆的地方:User-agent 不能随意使用中文或 Emoji

路径中出现中文或 Emoji,与 User-agent 标识中出现中文或 Emoji,是两件不同的事情。

User-agent 用于匹配爬虫的产品标识。按照 RFC 9309 的语法,产品标识使用规定范围内的字符,包括字母、连字符和下划线;不应把中文描述或 Emoji 直接当作爬虫标识使用。

因此,配置规则时应区分:

  • 路径规则: 可以针对包含国际字符的 URL 路径进行匹配,必要时使用百分号编码。
  • 爬虫标识: 应使用目标爬虫正式公布的 User-agent token。

对于拥有多语言目录、国际化产品页面或特殊 URL 结构的网站,这一区别尤其重要。

四、AI 爬虫应该如何通过 robots.txt 管理?

随着 AI 搜索和生成式 AI 的发展,网站运营者越来越关心:哪些爬虫会访问自己的网站?内容是否可能用于 AI 模型训练?如果希望保留搜索曝光,但限制某些训练用途,应该怎么做?

首先需要明确,AI 爬虫不是一个统一的类别,也没有一条适用于所有 AI 服务的通用 robots.txt 规则。

不同服务可能将网页抓取、搜索索引、用户触发的页面访问和模型训练用途分开管理。配置时,应该先确认具体爬虫的官方说明,再决定是否允许其访问。

Google-Extended 与 Googlebot:不要把搜索抓取和 AI 内容使用混为一谈

Google 的 AI 相关设置中,有一个容易被误解的标识:Google-Extended。

它不是一个独立发送 HTTP 请求的爬虫,而是 Google 提供的 robots.txt 控制标识。Google 使用现有的 Google 爬虫抓取网页,Google-Extended 则用于管理 Google 抓取的内容是否可以用于特定的 Gemini 模型训练及相关 grounding 用途。Google 明确说明,这个标识不会影响网站是否被纳入 Google Search,也不是 Google Search 的排名信号。

例如:

User-agent: Google-Extended
Disallow: /

这条规则表达的是限制 Google-Extended 所控制的内容使用,而不是禁止 Googlebot 抓取网站,也不等于将网站从 Google 搜索结果中移除。

这一区别对希望同时获得搜索流量、又希望管理 AI 内容使用方式的网站尤其重要。

不同 AI 服务的爬虫,也需要分别配置

其他 AI 服务可能采用不同的爬虫标识,并将搜索、模型训练和用户主动触发的网页访问分开管理。

以 OpenAI 为例,官方文档区分了几种用途不同的标识:

标识主要用途
OAI-SearchBot用于发现网页,并使网站内容有机会出现在 ChatGPT 搜索结果中
GPTBot抓取可能用于训练 OpenAI 基础模型的网页内容
ChatGPT-User在用户请求触发的某些场景中访问网页,不属于自动化网页抓取用途

这些设置彼此独立。例如,网站可以允许 OAI-SearchBot 访问,同时禁止 GPTBot 抓取。这样可以在管理模型训练用途的同时,保留进入 ChatGPT 搜索结果的机会。 【turn123500search1】

如果希望明确允许 ChatGPT 搜索抓取、同时限制训练抓取,可以参考以下配置:

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

这只是配置示例,并不是适合所有网站的默认方案。实际操作前,应先明确网站希望获得哪些搜索曝光,以及对内容被用于训练的态度,再核对各服务商最新的官方规则。

还需要注意,ChatGPT-User 的访问由用户请求触发,不能简单地将其视为与自动化训练爬虫完全相同的行为。不同服务的控制机制也不完全一致,不能假设一条 robots.txt 规则就能控制所有 AI 产品对内容的使用方式。

五、独立站应该如何检查和维护 robots.txt?

理解规则本身只是第一步。对于实际运营的网站,更重要的是确认配置是否符合业务需要,以及修改之后是否产生了预期效果。

1. 先检查当前文件,而不是直接覆盖

访问:

https://你的域名/robots.txt

检查当前文件是否存在,内容是否符合预期,以及是否已经包含其他插件、CMS 或技术团队添加的规则。

如果网站使用 Shopify、WordPress 或其他建站系统,应先确认平台对 robots.txt 的管理方式。某些平台允许自定义,某些平台会自动生成文件。不要在不了解现有配置的情况下直接替换整个文件,否则可能意外放开或屏蔽原本需要的路径。

2. 区分需要抓取的页面和不需要抓取的路径

电商网站往往同时存在产品页面、分类页面、搜索结果页、筛选参数、购物车和账户页面。

它们对搜索引擎的价值并不相同。

例如,产品页面和重要分类页面通常需要保持可抓取;部分内部搜索结果、重复参数 URL 或非公开功能路径,则可能需要根据实际情况进行管理。

但不能仅凭 URL 中出现 filter、sort 或 cart 等词,就直接认定所有相关路径都应该屏蔽。首先应检查这些页面是否会影响搜索发现、是否存在需要保留的内容,以及是否有其他索引控制机制。

3. 修改后,测试实际 URL 是否匹配

如果新增了 Disallow 规则,应测试它是否准确匹配目标路径,而不是仅仅检查文件看起来是否正确。

例如:

User-agent: *
Disallow: /private/
Allow: /private/public-guide/

这组规则表达了对 /private/ 路径的限制,同时明确允许 /private/public-guide/。在 Google 的规则匹配中,更具体的路径匹配可能决定最终结果,但不同爬虫对部分语法的支持和解析细节可能存在差异。

因此,对于重要页面,应使用相应搜索引擎提供的工具或规则测试器进行验证。Google 的 robots.txt 官方文档 也说明了抓取规则的限制及其与索引控制的区别。 【turn756539view0】

4. 不要只检查 robots.txt,还要检查服务器和 CDN

即使 robots.txt 允许访问,爬虫仍可能因为其他原因无法抓取网页。

常见原因包括:

  • 服务器返回 403 或 5xx 状态码。
  • CDN 或 Web Application Firewall(WAF)将合法爬虫误判为异常流量。
  • 页面需要登录、验证码或浏览器交互才能访问。
  • 重定向链过长,或目标 URL 无法正常响应。

因此,robots.txt 只是抓取管理的一部分。如果希望搜索引擎或 AI 搜索服务能够访问网站内容,还需要检查实际 HTTP 响应、服务器日志和安全规则。

六、核心结论:robots.txt 的关键不是写得复杂,而是配置得准确

Google 这期视频提醒网站运营者,robots.txt 虽然简单,却涉及明确的语法、路径匹配和爬虫标识。随着 AI 搜索服务增加,网站还需要区分搜索抓取、模型训练用途和用户触发的网页访问,避免将不同机制混为一谈。

对于独立站而言,最值得落实的不是堆积更多规则,而是做好三件事:

  1. 确保重要产品、分类和内容页面能够被目标搜索爬虫正常访问。
  2. 对中文 URL、Emoji 和其他特殊路径使用经过验证的编码规则。
  3. 根据业务目标分别评估搜索曝光、AI 内容使用和网站安全需求,再选择对应的控制机制。

robots.txt 不会单独决定网站能否获得搜索排名,也不能保证内容一定被 AI 引用。它是一项基础的抓取管理工具,需要与网站结构、内容质量、索引控制和服务器访问策略共同使用。

觉得这篇内容有帮助?分享给更多人