robots.txt规则写法与常见配置陷阱全解析

📍 WDQWDWQD987AAAAA:216.73.216.157
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /5b468db68f21.html
📄

搜索引擎的爬虫访问一个网站时,最先查看的文件就是根目录下的 robots.txt。这份纯文本文件相当于给爬虫划定了活动范围,明确指示哪些页面可以抓取、哪些目录必须避开。如果设置得当,既能保护后台或隐私内容不被收录,又能引导爬虫将抓取预算集中在核心页面上,对SEO有直接的促进作用。

1. 核心指令详解:读懂每个参数的作用

robots.txt 文件必须放置在站点根目录下,例如 https://yourdomain.com/robots.txt,文件名和路径区分大小写,建议使用 UTF-8 编码保存。每条指令独立成行,行尾不要带有多余空格。要写出正确规则,首先需要理解几个核心字段的具体含义:

除上述指令外,还可以添加 Sitemap 行来指明站点地图的位置。下面是一个常见组合示例:

User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml

这段配置的意思是:默认允许全站抓取,但 /admin/ 目录被限制,其中 /admin/public/ 作为例外允许访问。需要留意的是,如果某个爬虫无法理解 Allow 指令,它只会遵循 Disallow 的限制,那么 /admin/public/ 对它而言仍是禁区。

2. 常见配置模板:按需求直接套用

不同类型的网站,robots.txt 的内容差异很大。以下三种模式覆盖了大部分站点场景,可以根据自身情况替换对应路径。

2.1 全站内容对外开放

内容类网站或新上线的站点,通常期望所有页面都能被爬虫抓取。此时只需一行简洁规则:

User-agent: *
Disallow:

实际上,直接省略 Disallow 行效果相同。最容易犯的错误是写成 Disallow: /,一旦如此,所有爬虫都会被挡在门外,收录工作会立即中断。修改规则后,应使用站长平台的抓取测试功能确认实际效果。

2.2 单独屏蔽某个爬虫

如果不想让特定搜索引擎收录网站,可以为它单独设置规则:

User-agent: Bingbot
Disallow: /

这样配置后,其他爬虫的抓取策略不会受到任何影响。注意爬虫名称必须写准确,例如 Googlebot、Baiduspider 和 Sogou 蜘蛛各不相同,名称写错则规则不会生效,建议查阅各搜索引擎官方文档核对名称。

2.3 仅开放指定目录

部分工具型站点希望爬虫只能访问特定目录,其余路径全部封锁。例如只允许抓取 /public/ 目录:

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

但这里存在一个陷阱:对不支持 Allow 指令的爬虫而言,它们只会看到 Disallow: / 这一条规则,结果是整站都无法访问。因此,这种配置更适合确定目标爬虫都支持 Allow 指令的场景。若不确定,可以改用目录命名方式,将需要抓取的内容直接放在根目录下,而用 Disallow 屏蔽其他路径,例如 Disallow: /private/。改为这样之后,不需要依赖 Allow 指令也不会影响抓取。

3. 常见的配置陷阱与避坑建议

实际配置过程中,许多看似无害的写法可能造成严重后果。以下是几类高频问题的梳理:

4. 编写与调试的实用技巧

要让 robots.txt 真正发挥效用,建议按照以下流程操作:

  1. 先梳理站点的目录结构,明确哪些路径需要屏蔽,哪些必须开放。
  2. 编写规则时,尽量使用相对路径,避免在规则中出现完整 URL 或协议头。
  3. 每个规则块之间用空行分隔,便于阅读和维护。
  4. 在文件末尾统一添加 Sitemap 行,确保地图位置正确。
  5. 修改后,使用站长工具提交并测试,观察抓取异常报告。

一个具体的检查示例:如果发现网站后台被 Google 收录,检查 robots.txt 是否已正确屏蔽 /admin/ 路径,同时确认是否有其他入口(如 /wp-admin/ 或 /administrator/)未覆盖。此外,调试时不妨用浏览器的匿名模式直接访问被屏蔽的 URL,看看是否真的返回 404 或不可访问,防止因服务器配置导致爬虫仍然可见。

5. 常见问题

5.1 robots.txt 文件中的 Allow 指令是否绝对可靠?

并非如此。Allow 指令并非所有搜索引擎都认可,例如 Googlebot 支持它,而部分主流搜索引擎的爬虫可能忽略。因此,在需要严格控制抓取范围时,不应依赖 Allow 指令作为唯一手段,建议同时配合目录结构设计或验证爬虫支持情况。

5.2 如何确认某条规则对特定爬虫生效?

最直接的方法是使用各搜索引擎提供的抓取测试工具,例如 Google Search Console 的 robots 测试器,输入规则并模拟抓取指定的 URL,工具会显示该 URL 是否被允许抓取。也可以查看服务器日志中对应爬虫的访问记录,判断其是否仍在请求被屏蔽的路径。

5.3 更新 robots.txt 后,已有收录页面会立刻被删除吗?

不会。robots.txt 只影响爬虫的抓取行为,若页面已经出现在索引中,更新规则后并不会自动从搜索结果移除。如果确实需要快速移除,可以使用搜索引擎的 URL 删除工具,或通过 noindex 标签等方式让页面在后续抓取中被排除。

6. 总结

robots.txt 是影响搜索引擎抓取效率的重要文件,掌握其指令含义和常见配置模板后,可以大幅减少误配置带来的风险。建议每次修改后都用站长工具验证,并在重要规则变更后持续观察收录变化。同时,不要依赖单一的 Allow 指令来实现精确控制,遇到不确定的场景,优先选择兼容性更高的写法,确保所有主流爬虫都能正确理解你的意图。

图1 图2

nginx