Crawling & Indexing

Robots.txt

Robots.txt

Robots.txt 文件是放置在网站根目录中的一个纯文本文件,用于向网络爬虫和搜索引擎机器人传达关于哪些网址可以或不可以访问的指令。它是机器人排除协议的基础要素,帮助网站所有者管理爬虫流量、优化抓取预算,并保护敏感内容不被索引。

Robots.txt 的定义

Robots.txt 是放置在网站根目录(例如 www.example.com/robots.txt )的一个纯文本文件,用于向网络爬虫和搜索引擎机器人传达关于哪些网址可以或不可以访问的指令。该文件是机器人排除协议的基础要素,该标准帮助管理网站上的机器人活动。通过指定 “allow” 和 “disallow” 等指令,网站所有者可以控制搜索引擎和其他爬虫如何与其内容交互。根据 Google Search Central 的说法,robots.txt 文件告诉搜索引擎爬虫哪些网址可以访问,主要目的是避免网站收到过多请求而产生过载,并优化抓取预算分配。

Robots.txt 的重要性不仅限于简单的访问控制。它代表了网站所有者和索引及分析网页内容的自动化系统之间的关键沟通机制。该文件必须准确命名为 “robots.txt” 并放置在根目录中,才能被网络爬虫识别。如果没有正确的 robots.txt 配置,搜索引擎可能会将宝贵的抓取预算浪费在重复页面、临时内容或非必要资源上,最终降低重要页面的索引效率。这使得 robots.txt 成为技术 SEO 和网站管理策略的重要组成部分。

Robots.txt 的历史背景与演变

机器人排除协议于 1994 年首次提出,作为网络爬虫尊重网站所有者偏好的自愿标准。最初的规范简单但有效,允许网站管理员在无需复杂认证系统的情况下传达基本的访问规则。在过去的几十年中,robots.txt 不断发展以适应新型爬虫,包括搜索引擎机器人、社交媒体爬虫,以及最近由 OpenAI、Anthropic 和 Perplexity 等公司使用的 AI 训练爬虫。该协议在很大程度上保持了向后兼容性,确保数十年前创建的网站仍然可以与现代爬虫协同工作。

Robots.txt 的采用率随着时间的推移显著增长。根据 2024 年 Web Almanac 的数据,移动端访问时 83.9% 的网站成功请求了 robots.txt 文件,桌面端为 83.5%,较 2022 年的 82.4% 和 81.5% 有所上升。这一上升趋势反映出网站所有者对管理爬虫流量重要性的认识不断提高。对虚假信息网站的研究显示采用率高达 96.4%,表明 robots.txt 现已被认为是各类网站的常规实践。Robots.txt 的演变至今仍在继续,网站所有者正面临新的挑战,例如阻止可能不遵守传统 robots.txt 指令或使用未声明爬虫规避限制的 AI 机器人

Logo

Ready to Monitor Your AI Visibility?

Track how AI chatbots mention your brand across ChatGPT, Perplexity, and other platforms.

Robots.txt 的工作原理:技术机制

当网络爬虫访问网站时,它首先在根目录中检查 robots.txt 文件,然后才开始爬取其他页面。爬虫读取文件并解释指令,以确定哪些网址可以访问。这一过程通过向根域发起 HTTP 请求完成,服务器响应返回 robots.txt 文件内容。爬虫随后根据其对机器人排除协议的具体实现来解析文件,不同搜索引擎和机器人类型之间的解析方式可能略有不同。这种初始检查确保爬虫在占用服务器资源之前尊重网站所有者的偏好。

User-agent 指令是定位特定爬虫的关键。每个爬虫都有唯一的标识符(用户代理字符串),例如 Google 的爬虫为 “Googlebot”,Microsoft 的爬虫为 “Bingbot”,OpenAI 的爬虫为 “GPTbot”。网站所有者可以为特定用户代理创建规则,或使用通配符 “*” 将规则应用于所有爬虫。Disallow 指令指定爬虫不能访问的网址或网址模式,而 Allow 指令可以覆盖特定页面的禁止规则。这种层级系统提供了对爬虫行为的精细控制,使网站所有者能够创建复杂的访问模式,从而优化服务器资源和搜索引擎可见性。

对比表格:Robots.txt 与其他爬虫控制方法

方面Robots.txtMeta Robots 标签X-Robots-Tag 标头密码保护
范围全站或目录级别单个页面级别单个页面或资源级别服务器级访问控制
实施方式根目录中的纯文本文件页面 head 中的 HTML meta 标签HTTP 响应标头服务器认证
主要目的管理爬取流量和预算控制索引和爬取控制索引和爬取阻止所有访问
可执行性自愿(不具有法律约束力)自愿(不具有法律约束力)自愿(不具有法律约束力)由服务器强制执行
AI 机器人合规性各不相同(部分机器人忽略)各不相同(部分机器人忽略)各不相同(部分机器人忽略)高度有效
搜索结果影响页面可能仍会显示但无描述页面从结果中排除页面从结果中排除页面完全隐藏
最佳使用场景优化抓取预算,管理服务器负载阻止特定页面的索引阻止资源的索引保护敏感数据
实施难易度简单(文本文件)简单(HTML 标签)中等(需要服务器配置)中等至复杂

Robots.txt 的核心指令与语法

Robots.txt 文件使用简洁的语法,网站所有者可以使用任何纯文本编辑器创建和编辑。基本结构由一行 user-agent 后跟一行或多行指令组成。最常用的指令包括 disallow(阻止爬虫访问特定网址)、allow(即使存在更广泛的禁止规则,也允许访问特定网址)、crawl-delay(指定爬虫在请求之间应等待的时间)以及 sitemap(引导爬虫到 XML 站点地图位置)。每个指令必须独占一行,文件必须使用正确的格式才能被爬虫正确识别。

例如,一个基本的 robots.txt 文件可能如下所示:

User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /private/public-page.html
Sitemap: https://www.example.com/sitemap.xml

此配置告诉所有爬虫避免访问 /admin/ 和 /private/ 目录,但允许访问特定页面 /private/public-page.html。Sitemap 指令引导爬虫到 XML 站点地图以实现高效索引。网站所有者可以创建多个用户代理块,为不同的爬虫应用不同的规则。例如,网站可能允许 Googlebot 爬取所有内容,但限制其他爬虫访问某些目录。Crawl-delay 指令可以减缓激进爬虫的速度,不过 Google 的 Googlebot 不识别此命令,而是使用 Google Search Console 中的爬取速率设置。

Robots.txt 与抓取预算优化

抓取预算是指搜索引擎在给定时间内在网站上爬取的网址数量。对于拥有数百万页面的大型网站,抓取预算是一种必须战略性管理的有限资源。Robots.txt 通过防止爬虫将资源浪费在重复页面、临时文件或非必要资源等低价值内容上,在优化抓取预算方面发挥着关键作用。通过使用 robots.txt 屏蔽不必要的网址,网站所有者可以确保搜索引擎将抓取预算集中在需要被索引和排名的重要页面上。这对于电子商务网站、新闻媒体和其他大规模网站尤为重要,因为抓取预算直接影响搜索可见性。

Google 的官方指南强调,robots.txt 应用于管理爬取流量,避免网站因请求过多而过载。对于大型网站,Google 提供了管理抓取预算的具体建议,包括使用 robots.txt 屏蔽重复内容、分页参数以及对页面渲染影响不大的资源文件。网站所有者应避免屏蔽对页面渲染至关重要的 CSS、JavaScript 或图片文件,因为这可能会阻止 Google 正确理解页面内容。策略性地使用 robots.txt,结合 XML 站点地图和内部链接等其他技术 SEO 实践,可以创建高效的爬取环境,最大化可用抓取预算的价值。

局限性及重要注意事项

虽然 robots.txt 是管理爬虫行为的宝贵工具,但它具有网站所有者必须了解的重大局限性。首先,robots.txt 不具有法律效力,是一个自愿协议。虽然 Google、Bing 和 Yahoo 等主要搜索引擎尊重 robots.txt 指令,但恶意机器人和爬虫可以选择完全忽略该文件。这意味着不应将 robots.txt 作为保护敏感信息的安全机制。其次,不同的爬虫对 robots.txt 语法有不同的解释方式,这可能导致不同平台间出现不一致的行为。某些爬虫可能不理解某些高级指令,或者对网址模式的解释与预期不同。

第三,对现代网站管理至关重要的是,robots.txt 中禁止的页面如果被其他网站链接,仍然可以被索引。根据 Google 的文档,如果外部页面使用描述性锚文本链接到你被禁止的网址,Google 仍可能索引该网址并在搜索结果中显示(无描述)。这意味着 robots.txt 单独无法阻止索引,它只能阻止爬取。要正确阻止索引,网站所有者必须使用其他方法,例如 noindex 元标签、HTTP 标头或密码保护。此外,最近的研究表明,一些 AI 爬虫会故意规避 robots.txt 限制,通过使用未声明的用户代理字符串,这使得 robots.txt 对某些 AI 训练机器人无效。

AI 机器人与 Robots.txt:新兴挑战

大型语言模型和 AI 驱动的搜索引擎的兴起为 robots.txt 管理带来了新的挑战。OpenAI(GPTbot)、Anthropic(Claude)和 Perplexity 等公司已部署爬虫来训练其模型并为搜索功能提供支持。许多网站所有者已开始使用 robots.txt 指令阻止这些 AI 机器人。Moz 高级搜索科学家的研究显示,GPTbot 是被屏蔽最多的机器人,许多新闻媒体和内容创作者针对 AI 训练爬虫添加了特定的禁止规则。然而,robots.txt 在阻止 AI 机器人方面的效果值得怀疑,因为一些 AI 公司已被发现使用不适当标识自己的未声明爬虫。

Cloudflare 报告称,Perplexity 使用隐身、未声明的爬虫来规避网站的禁止爬取指令,这表明并非所有 AI 机器人都遵守 robots.txt 规则。这引发了 SEO 和网站开发社区关于 robots.txt 是否足以控制 AI 机器人访问的持续讨论。一些网站所有者已采取额外措施,例如使用 WAF(Web 应用防火墙)规则来屏蔽特定 IP 地址或用户代理字符串。这种情况凸显了监控网站在 AI 搜索结果中出现情况以及了解哪些机器人实际访问你内容的重要性。对于关注 AI 训练数据使用的网站,robots.txt 应与其他技术措施以及可能与 AI 公司的法律协议结合使用。

创建和维护 Robots.txt 的最佳实践

创建有效的 robots.txt 文件需要仔细规划和持续维护。首先,将 robots.txt 文件放置在网站的根目录中(例如 www.example.com/robots.txt ),并确保其准确命名为 “robots.txt”,使用正确的 UTF-8 编码。其次,使用清晰具体的禁止规则,仅针对你想要屏蔽的内容,避免过于严格的规则可能阻止重要页面的爬取。第三,包含指向 XML 站点地图的 sitemap 指令,帮助爬虫发现重要页面并确定优先级。第四,使用 Google 的 Robots 测试工具或 Moz Pro 的 Site Crawl 功能等工具测试你的 robots.txt 文件,以验证规则是否按预期工作。

网站所有者应随着网站结构的变化定期审查和更新 robots.txt 文件。常见错误包括:

  • 屏蔽对页面渲染至关重要的 CSS、JavaScript 或图片文件
  • 使用过于宽泛的禁止规则,意外阻止了重要内容
  • 网站结构变化时未能更新 robots.txt
  • 忽视不同爬虫在解释指令方面的差异
  • 部署前未测试文件
  • 使用 “Disallow: /” 屏蔽整个网站,而实际只需屏蔽特定部分
  • 忘记包含用于高效爬取的 sitemap 指令

通过服务器日志、Google Search Console 和 SEO 工具进行定期监控有助于及早发现问题。如果你发现重要页面未被爬取或索引,请首先检查 robots.txt 文件,确保它没有意外屏蔽这些页面。对于 WordPress 或 Wix 等 CMS 平台,许多平台提供了管理 robots.txt 的内置界面,无需直接编辑文件,使非技术用户也能更轻松地实施正确的爬虫管理。

判断何时 Robots.txt 是正确的工具

Robots.txt 通常会被默认使用,但实际目标可能需要不同的机制,因此决策应从确定实际需求开始。如果你的目标是阻止页面出现在搜索结果中,robots.txt 是错误的工具——如上所述,被禁止的网址如果被其他网站链接,仍可能在没有描述的情况下被索引和显示。正确的选择是使用 noindex 元标签X-Robots-Tag 标头,这两者都明确指示搜索引擎在爬取页面后不要对其进行索引。

如果你的目标是管理大型网站上的抓取预算——阻止爬虫将请求浪费在重复页面、分页参数或站内搜索结果页上——robots.txt 是合适的工具,因为其实际用途(根据 Google Search Central)是避免服务器过载并将抓取预算引导至有价值的内容,而非控制索引。

如果你的目标是保护真正敏感的信息,robots.txt 完全是不合适的工具,因为它是一个自愿的、不可强制执行的协议,恶意机器人和爬虫通常会忽略它。密码保护或服务器级访问控制才是正确的选择——robots.txt 仅向行为规范的爬虫传达偏好。

如果你的目标是控制 GPTbot 等 AI 训练爬虫是否访问你的内容,robots.txt 是合理的第一步,也是最常用的方法,但决策框架必须考虑其对此类爬虫的已知不可靠性:由于一些 AI 公司已被记录使用未声明的隐身爬虫来规避禁止爬取指令,如果你的目标是真的阻止访问而不仅仅是表明偏好,robots.txt 应与 WAF 级别的用户代理或 IP 屏蔽配合使用。

基本的决策规则是:在抓取预算管理方面使用 robots.txt,这是其标准且正确的用途;在需要控制索引或强制执行访问时,应使用不同的机制(noindex、认证、WAF),因为 robots.txt 从未被设计用于保证这两者。

Robots.txt 与 AmICited:监控 AI 搜索可见性

对于使用 AmICited 监控其品牌和域名在 AI 搜索引擎中出现情况的组织而言,了解 robots.txt 至关重要。你的 robots.txt 配置直接影响哪些 AI 爬虫可以访问你的内容,以及内容在 ChatGPT、Perplexity、Google AI Overviews 和 Claude 等平台上的 AI 生成回复中如何呈现。如果你使用 robots.txt 屏蔽了某些 AI 机器人,你可能会降低在其搜索结果中的可见性——这取决于你的内容和业务目标,可能是一个战略性选择。然而,如前所述,一些 AI 机器人可能不遵守 robots.txt 指令,因此监控你的内容在 AI 回复中的实际出现情况至关重要。

常见问题

准备好监控您的AI可见性了吗?

开始跟踪AI聊天机器人如何在ChatGPT、Perplexity和其他平台上提及您的品牌。获取可操作的见解以改善您的AI存在。

了解更多

如何为 AI 爬虫配置 robots.txt:完整指南
如何为 AI 爬虫配置 robots.txt:完整指南

如何为 AI 爬虫配置 robots.txt:完整指南

了解如何配置 robots.txt 以控制 AI 爬虫的访问,包括 GPTBot、ClaudeBot 和 Perplexity。管理您的品牌在 AI 生成答案中的可见性。

3 分钟阅读
AI爬虫管理
AI爬虫管理:控制AI系统如何访问您的内容

AI爬虫管理

了解如何管理AI爬虫对您网站内容的访问。理解训练爬虫与搜索爬虫的区别,实施robots.txt控制,并基于数据做出AI内容使用决策。...

1 分钟阅读
AI专用robots.txt
AI专用robots.txt:控制AI爬虫访问您的内容

AI专用robots.txt

了解如何为AI爬虫(包括GPTBot、ClaudeBot和PerplexityBot)配置robots.txt。了解AI爬虫类别、屏蔽策略以及保护您的内容不被未经授权的AI训练数据收集的最佳实践。...

1 分钟阅读