Robots.txt文件配置指南:语法规则、场景写法与避坑要点

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

Robots.txt是放在网站根目录下的纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些不能碰。配置得当,后台、购物车等敏感区域不会被收录,抓取额度也能集中在核心内容上;一旦配置失误,新页面可能迟迟不被索引,严重时整站都会从搜索结果中消失。下面就从文件放置、语法规范、场景写法和常见错误几个方面来梳理。

1. 文件位置与语法基础

文件必须命名为robots.txt(全部小写),放在域名根目录,例如https://example.com/robots.txt。内容为纯文本,每条指令由“字段名: 值”组成,英文冒号后加一个空格。

核心字段包括User-agent、Disallow、Allow和Sitemap。User-agent指定规则适用的爬虫,星号代表所有爬虫。完全放行的配置如下:

User-agent: *
Disallow:

这表示允许所有爬虫抓取全站。注意字段名区分大小写,路径必须以根斜杠/开头,编码建议使用UTF-8且不带BOM,否则部分爬虫可能解析异常。注释以井号#开头,但各爬虫对注释的支持程度不同,核心规则不要依赖注释来维持功能。

2. 不同业务场景下的配置写法

动手配置前,先梳理站点目录结构和抓取需求,明确哪些路径需屏蔽、哪些需重点抓取。以下是几种典型场景的写法参考。

每组规则之间用空行隔开,便于日后阅读和调整。

3. 高频失误盘点与规避策略

以下错误在日常运维中最常出现,且影响容易被忽视。

  1. 路径缺少斜杠:例如Disallow: admin会同时拦截/admin、/superadmin、/admindata等所有包含“admin”字样的路径,造成误伤。正确写法是Disallow: /admin/,精确匹配该目录。建议所有路径前后统一加斜杠。
  2. 爬虫名称拼写错误:百度蜘蛛官方名称为Baiduspider,谷歌为Googlebot,大小写必须与官方文档完全一致,否则规则不生效。
  3. 遗漏Allow规则:当需要屏蔽大部分目录但放行个别子目录时,必须显式添加Allow,否则Disallow会优先拦截所有匹配路径。
  4. 使用robots.txt做安全防护:该文件仅是对爬虫的礼貌性提示,恶意爬虫或攻击者不会遵守。后台密码、服务器配置等敏感数据仍须通过认证和访问控制保护。

4. 常用案例与更新要点

以电商站点为例,通常需要屏蔽购物车、结算和用户账户页面,因为这些页面频繁变化且无索引价值:

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Allow: /product/
Allow: /category/

配置完成后,应通过浏览器访问robots.txt文件,确认返回的文本内容与预期一致。修改文件后,可在搜索引擎站点管理后台提交更新或使用抓取测试工具验证规则生效情况。另外,robots.txt的变更不影响已在搜索结果中收录的页面,若需移除已有页面,还需结合noindex标记或站内删除操作。

定期检查抓取日志和搜索引擎后台的收录数据,能及时发现配置是否合理,避免长期抓取浪费。

5. 常见问题

5.1 robots.txt写错了会影响已收录页面吗?

不会。robots.txt只影响爬虫未来是否抓取,不会直接移除已收录的页面。如需删除已有收录,仍需通过noindex标签、后台移除请求等方式处理。

5.2 多个User-agent规则可以合并写吗?

可以。每个User-agent组内可包含多条Disallow和Allow规则,但不同爬虫的规则需分别声明。例如对Googlebot和Baiduspider分别配置时,应写成两组独立的User-agent块。

5.3 robots.txt文件本身需要被保护吗?

不需要。该文件本身就是公开的,用于告知所有爬虫规则,无需加密或限制访问。相反,若文件无法正常访问(如返回404),部分爬虫反而可能默认抓取全站内容。

6. 总结

合理配置robots.txt能提升抓取效率并保护敏感区域,但需注意:路径写全斜杠、爬虫名称拼写准确、必要时补充Allow规则、明确该文件不是安全工具。配置完成后,定期查看抓取日志和收录状态,根据站点结构调整规则,是保持其有效的关键动作。

图1 图2

nginx