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

📍 WDQWDWQD987AAAAA:216.73.217.178
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /f12b1e3112bc.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 仅保留特定目录可访问

部分工具型站点希望爬虫只能进入指定目录,其余路径全部限制。此时可以这样配置:

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

要注意,Disallow: / 会阻止所有爬虫访问全站,但 Allow 指令对某些爬虫可能无效,若爬虫忽略 Allow,那么 /public/ 目录也会被禁止访问。因此,对于重要目录的放行,建议同时通过其他方式(如内链和 sitemap)辅助抓取。

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

在实际操作中,不少站长会因为细节疏忽导致规则失效或误伤。以下列出几个高频问题:

4. 验证与迭代:确保规则按预期工作

编写完成后,验证是必不可少的一步。可以按照以下步骤逐步检查:

  1. 在浏览器中直接访问 https://yourdomain.com/robots.txt,确认文件内容显示正确且无格式错误。
  2. 使用搜索引擎官方的站长工具(如 Google Search Console、百度搜索资源平台)中的 robots 测试功能,输入路径查看实际抓取结果。
  3. 结合服务器日志或抓取报告,观察爬虫的实际访问行为是否与规则预期一致。
  4. 定期复查规则,尤其是在网站结构调整、目录更名后,及时更新文件内容。

如果发现爬虫依然抓取了 Disallow 指定的路径,优先排查是否写错文件名、是否有多余空格,或者是否使用了不支持的指令格式。

5. 常见问题

5.1 robots.txt 文件可以防止页面被索引吗?

不能。robots.txt 只能阻止爬虫抓取页面,但如果页面已被其他网站链接或出现在外部内容中,搜索引擎仍可能将其编入索引。若需要彻底禁止页面出现在搜索结果中,应使用 noindex 标签。

5.2 写成 Disallow: / 后网站还能被搜索到吗?

不能。Disallow: / 会阻止所有爬虫抓取全站内容,导致页面无法被正常收录,已有的收录结果也可能逐步消失。若误操作,应立即修改为 Disallow: 并提交抓取测试确认恢复。

5.3 robots.txt 可以放在子目录下吗?

不可以。robots.txt 文件必须位于站点根目录下才能被爬虫自动读取,放在子目录中规则不会生效。同时,每个子域名通常需要独立放置一个 robots.txt 文件。

6. 总结

robots.txt 是站点与搜索引擎沟通的基础工具,写对规则能有效保护隐私目录、优化抓取配额。建议优先掌握 User-agent、Disallow、Allow 和 Sitemap 四个核心指令,根据站点实际场景选择模板,并在修改后通过站长工具验证。日常维护中,定期检查文件格式和路径变化,避免因小疏忽导致整站无法收录,才能让爬虫稳定高效地为你服务。

图1 图2

nginx