Robots.txt 编写指南:语法规则与实用配置示

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

Robots.txt 是网站与搜索引擎爬虫之间的"君子协定",通过它你可以明确告知爬虫哪些内容欢迎抓取、哪些区域谢绝访问。一份配置得当的 robots.txt,既能保护后台或隐私页面不被收录,又能减少无效抓取带来的服务器压力,让爬虫把精力集中在你真正想展示的页面上。

1. 核心语法与文件放置规则

robots.txt 必须存放于网站根目录下,例如 https://yourdomain.com/robots.txt。文件采用纯文本格式,内容由数个规则块构成,每个规则块以 User-agent 开头,后接若干条指令。

常用的指令主要有以下几种:

一个最简单的全开放示例:

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

这段配置指明所有爬虫均可抓取全站内容,并提供地图文件方便其快速索引。

2. 高频场景下的配置写法

实际项目里,我们往往需要针对网站的具体结构做精细控制。下面梳理几种最常见的配置需求。

2.1 临时屏蔽整站抓取

当网站处于开发中、改版调试或需要暂时下线时,用一行代码即可关闭所有爬虫通道:

User-agent: * Disallow: /

此时爬虫会被告知禁止访问任何路径,通常也会放弃收录该域名下的页面。

2.2 仅禁止特定目录或动态参数

若只想阻止爬虫进入管理后台、购物车、筛选页等无价值的区域,可精确列出这些路径:

User-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /filter?sort=

这里一个容易犯的错误是:爬虫解析规则时采用"最长前缀匹配",若你同时写了 Disallow: / 和 Allow: /public/,因为 Disallow 的目录范围更大,可能导致 Allow 不生效。最佳做法是,在 Disallow 中只列出需要屏蔽的明确路径,剩余内容默认允许抓取,这样即兼容性最强,也不易出错。

2.3 为不同爬虫制定差异化策略

不同搜索引擎的抓取策略和资源消耗差异很大,例如你可以允许 Google 抓取图片资源,却限制其他爬虫抓取:

User-agent: Googlebot Allow: /images/ User-agent: * Disallow: /images/ Disallow: /assets/

请注意声明顺序:必须先写特定爬虫的规则块,再将通用规则(*)放在最后。爬虫会优先匹配并执行与自身名称相符的段落,匹配到后将忽略后续通用规则。

3. 编写时的常见盲区与改进建议

很多网站因细节疏忽,导致 robots.txt 没有发挥预期作用。以下是容易被忽视的几点。

4. 验证配置正确性的方法

写完 robots.txt 并上传后,不能只靠肉眼检查,还应该借助以下手段确认生效:

  1. 在浏览器直接访问 https://yourdomain.com/robots.txt,确认文件可正常加载且无乱码。
  2. 使用搜索引擎站长平台的抓取测试功能,输入一个被禁止的 URL,观察返回结果是否为"禁止抓取"。
  3. 查看服务器访问日志,确认爬虫是否活跃请求了被 Disallow 的路径;如果仍有大量请求,需检查是否有其他规则绕过限制。

5. 常见问题

5.1 robots.txt 写错会导致网站被降权吗?

不会直接导致降权。但如果误写了 Disallow: / 却并未打算屏蔽全站,会使得爬虫长期无法抓取新内容,间接影响新页面的收录和排名,建议上线后尽快检查并纠正。

5.2 Allow 指令在哪些爬虫中不生效?

并非所有爬虫都支持 Allow 指令,例如百度官方文档明确指出其只识别 Disallow,不识别 Allow。如果你的站点面向百度优化,建议仅使用 Disallow 列出需屏蔽的路径,其余路径天然允许抓取,避免依赖 Allow 来放行。

5.3 网站换了域名,旧 robots.txt 需要处理吗?

需要。若旧域名仍处于可访问状态,应保留其 robots.txt 内容或直接返回 404,避免旧规则影响新站。同时,务必在新域名根目录上传一份全新的、路径正确的 robots.txt,并更新 Sitemap 地址。

6. 总结

robots.txt 虽是一份简单文本文件,却直接影响爬虫效率与网站安全性。建议遵循"尽量只禁止明确无用的目录"的原则,避免过度限制;每块 User-agent 规则保持精简;上线前务必通过站长平台工具实测抓取结果。把精力花在优化页面质量上,robots.txt 只需做到不添乱、保隐私、引导核心资源即可。

图1 图2

nginx