本网站包含联盟链接——如果您通过这些链接注册,我们可能会获得佣金。 详情

完整的 robots.txt 指南 2026 – 有效控制搜索引擎爬虫

完整的 robots.txt 指南 2026 – 有效控制搜索引擎爬虫

robots.txt 文件是放置在网站根目录中的简单文本文件,它控制搜索引擎爬虫如何与您的内容交互。配置正确时,它可以优化爬虫效率、节省带宽,并确保敏感区域不被索引。然而,单一的配置错误就可能意外地将整个网站从搜索结果中移除,因此理解语法和常见陷阱至关重要。

robots.txt 是什么以及为什么重要

robots.txt 文件是一个纯文本文件,用于指示搜索引擎爬虫您网站上哪些内容可以访问,哪些部分应该跳过。它必须放在根目录中(example.com/robots.txt),并且每个域名和协议(HTTP/HTTPS)都需要自己的文件。重要的是,robots.txt 仅为建议性的——它只是一个礼貌的请求,而不是安全屏障。来自主要搜索引擎的行为规范的爬虫会遵循这些规则,但恶意机器人常常忽视它们。要获得真正的内容保护,请改用身份验证或服务器级限制。

基本的 robots.txt 语法和结构

robots.txt 使用以纯文本形式编写的简洁明了的键值指令。文件由一个或多个块组成,每个块以 User-agent 行开始,后面跟着 Disallow 或 Allow 规则。没有 XML 标头或标记——只有人类可读的指令。注释以哈希符号(#)开头,被爬虫忽略。值周围的空格自动被修剪,路径区分大小写,但指令名称不区分大小写。这种简单的结构使 robots.txt 对初学者易于上手,同时对复杂的网站结构仍足够强大。

User-Agent 和 Disallow 指令详解

每个 Disallow 规则前面必须有一个 User-agent 行,指定它针对的爬虫。当您写下 User-agent: Googlebot 时,随后的 Disallow 规则仅适用于 Google 的机器人。要对所有爬虫应用规则,请使用 User-agent: *(星号)。Disallow 中的路径以正斜杠开头,区分大小写;Disallow: /admin/ 阻止文件夹及其内部的所有内容,而 Disallow: /admin.php 仅阻止该特定文件。支持通配符(* 和 $)进行模式匹配。空的 Disallow(不带路径)意味着爬虫可以访问所有内容。

Allow 指令和 Sitemap 提示

Allow 指令覆盖前面的 Disallow 规则,用于创建例外很有用。如果您完全阻止 /uploads/,但希望机器人爬取 /uploads/public/,请在更广泛的 Disallow: /uploads/ 之前放置 Allow: /uploads/public/。规则顺序很重要;第一个匹配的规则生效。Sitemap 不是阻止规则,而是指向爬虫到您的 XML 网站地图文件的提示。您可以在单个 robots.txt 文件中列出多个 Sitemap 条目。搜索引擎使用这些提示更快地发现新页面,使 Sitemap 声明对于大型或频繁更新的网站至关重要。

阻止您整个网站的常见错误

最致命的错误是错误的 Disallow: / 会阻止您的整个网站从搜索结果中出现。这通常发生在测试、语法探索期间,或不小心编辑且忘记恢复时。另一个常见错误涉及尾部斜杠——Disallow: /admin(不带尾部斜杠)可能不会阻止 /admin/,因为使用精确匹配解析。忘记每个域名变体(www 与非 www、HTTP 与 HTTPS)都需要自己的 robots.txt 是另一个陷阱。最后,编码问题(如 BOM(字节顺序标记)或非 UTF-8 字符)可能会无声地破坏文件。始终在使用 Google Search Console 进行更改后进行验证。

推荐AsiaGB.com — 我们推荐的虚拟主机 & VPS服务。服务器位于泰国和新加坡,SSD存储,DirectAdmin控制面板,24小时泰语支持,99%在线率保证。

总部位于泰国,非常适合泰国网站和企业。

访问 AsiaGB →

在 Google Search Console 中测试 robots.txt

Google Search Console 在"爬虫">"robots.txt 测试工具"下提供了内置的 robots.txt 测试工具来验证您的规则。连接您的属性后,粘贴要测试的 URL 并点击"测试"。该工具立即显示页面是被阻止(红色)还是允许(绿色)。您还可以在"查看获取的 robots.txt"下查看 Google 获取的确切 robots.txt 文件,这有助于捕捉编码错误或服务器上的意外更改。此测试工具仅适用于 Googlebot 规则,不适用于其他爬虫,因此测试结果是爬虫特定的。在进行任何 robots.txt 更改后运行测试对于防止意外阻止至关重要。

WordPress robots.txt 最佳实践

WordPress 在不存在 robots.txt 的情况下自动生成基本的 robots.txt,默认情况下通常阻止 /wp-admin/ 和 /wp-includes/。WordPress 仪表板(设置 > 阅读)提供了"阻止搜索引擎索引此网站"复选框,但这会添加 noindex meta 标签——它不会直接修改 robots.txt。要获得细粒度控制,请在您的 WordPress 根目录中创建自定义 robots.txt 文件;WordPress 会尊重它并停止自动生成。始终考虑 /wp-content/uploads/ 是否需要爬取;如果您托管不会从被索引中受益的媒体,阻止它可以节省带宽。SEO 插件(如 Yoast 或 Rank Math)可以在您更喜欢 GUI 时简化管理。

robots.txt 与 noindex Meta 标签——关键区别

robots.txt 和 noindex meta 标签都会影响索引,但它们的操作方式不同。robots.txt 完全防止爬虫访问,而 noindex 允许爬取但告诉爬虫"不要索引此页面"。如果您用 robots.txt 阻止页面,爬虫永远不会访问它,因此它不会看到 noindex 标签。相反,仅使用 noindex 意味着爬虫仍然会下载页面并消耗爬虫配额——它们只是不会索引它。使用 robots.txt 可以在您根本不想被访问的页面上节省爬虫配额;当您希望爬虫读取页面上的链接(用于 PageRank 流)但不在搜索结果中显示时,使用 noindex。永远不要在同一页面上使用两者——这是冗余的并且会浪费爬虫配额。

常见问题解答

如果我没有 robots.txt 文件会发生什么

没有 robots.txt,搜索引擎会假设他们可以爬取您的整个网站(除非被 noindex 或身份验证阻止)。这对于大多数网站来说不是灾难性的,但拥有一个结构良好的 robots.txt 帮助爬虫优先处理重要页面、节省带宽并避免爬取重复或低价值内容。

我需要为 www.example.com 和 example.com 分别创建 robots.txt 文件吗

是的,从技术上讲,每个域名变体都需要自己的 robots.txt,因为它们是单独的 URL。然而,大多数网站使用规范重定向或 HSTS 将所有流量导向单一版本(www 或非 www),使单个 robots.txt 足够。在 Google Search Console 中设置您的首选版本,以澄清要爬取和索引的 URL。

我可以为不同的爬虫(如 Googlebot 与 Bingbot)设置不同的 Disallow 规则吗

是的,当然可以。单个 robots.txt 可以为 User-agent: Googlebot 和 User-agent: Bingbot 拥有单独的块,每个块都有不同的规则。每个爬虫仅遵循与其 User-agent 声明匹配的规则。这种灵活性使您能够为每个搜索引擎的特定行为和需求独立优化爬取策略。

如果我在页面上添加 noindex,然后用 robots.txt 阻止它,两者都会生效吗

不,这是冗余且不必要的。如果 robots.txt 阻止页面,爬虫永远不会到达它,因此它不会看到 noindex 标签。对于完全拒绝访问,使用 robots.txt;对于您不想索引的可爬取页面,使用 noindex。永远不要在同一页面上组合两者——这会浪费爬虫配额并使搜索引擎困惑。