robots.txt 配置全解:语法要点、实用方案与避坑提醒

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

访问一个网站时,搜索引擎爬虫通常先读取根目录下的 robots.txt 文件。这份纯文本文件相当于站点与爬虫间的“抓取约定”,清楚标明哪些页面可以抓取、哪些区域应避开。如果配置合理,能避免后台或重复页面被编入索引,同时让爬虫将抓取额度集中用于核心内容。

1. 语法核心字段解析

robots.txt 文件须放置在网站根目录,文件名与路径均区分大小写,并建议以 UTF-8 格式保存,每条指令单独一行。一个典型配置常由以下四类字段构成:

以下是一个常见写法的组合:

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

这条规则表示:所有爬虫都能访问站点,但 /admin/ 路径整体禁止,其中 /public/ 子目录例外。由于 Allow 指令并非所有爬虫都识别,对于未知晓该命令的爬虫,更严格的 Disallow 规则仍然生效,所以想局部放宽限制不能依赖 Allow。

2. 不同场景的推荐配置

不同站点的抓取需求存在明显差异,以下三种思路基本涵盖了主流情况,可直接套用或适当调整。

2.1 内容型新站:全面开放抓取

内容型网站希望爬虫尽可能多地收录页面,此时将 Disallow 留空即可:

User-agent: *
Disallow:

需留意的是,如果完全删掉 Disallow 这一行,效果同样一致。常见的失误是把这行写为 Disallow: /,一旦如此,所有爬虫都会停止访问整站,收录随即停滞,这个细节务必警惕。

2.2 仅屏蔽特定搜索爬虫

有些站点不想被某个搜索引擎收录,但又不愿影响其他搜索入口,可以单独为它定制规则:

User-agent: Bingbot
Disallow: /

上述配置只对 Bing 的爬虫生效,Google 和百度的抓取行为不受任何影响。操作前最好去各搜索引擎官方站点核对爬虫的准确名称,例如百度对应 Baiduspider,名称拼写有误,屏蔽便形同虚设。

2.3 网站改版期:临时停止全站抓取

遭遇整站改版或敏感数据迁移时,短暂禁抓全站是稳妥的防护手段:

User-agent: *
Disallow: /

但切记,这仅是临时措施。改版完成后若忘了恢复规则,搜索收录会持续陷入停滞,恢复后还需通过平台工具主动提交链接,以加速重新抓取。

3. 配置时的常见误区与应对

实践中,不少站长在以下环节容易踩坑,提前了解能省去返工成本。

4. 验证规则是否生效的技巧

写完 robots.txt 后,建议先验证再投入线上使用,以免出现意料之外的屏蔽。

  1. 先在浏览器中直接访问 https://yourdomain.com/robots.txt,确认内容显示正常且无乱码。
  2. 利用 Google Search Console 的 robots.txt 测试工具,模拟 Googlebot 抓取指定 URL,查看抓取结果是否与预期一致。
  3. 检查网站日志中的爬虫访问记录,观察是否有异常的 404 或频繁请求被封路径,以判断规则的执行情况。

这些步骤能帮你快速发现规则冲突或拼写错误,避免收录损失。

5. 常见问题

5.1 robots.txt 被忽略时怎么办

先确认文件是否位于根目录且格式无误,再检查是否有重复的 User-agent 规则产生了冲突。若仍无效,可尝试删除文件后重新上传,并清除缓存再复核。

5.2 能否用 robots.txt 阻止整站被索引

不能。robots.txt 只是阻止爬虫抓取内容,并不保证页面不会出现在搜索结果中,比如外部链接的锚文本仍可能带来展示。需要彻底排除索引时,应使用 noindex 标签或密码保护。

5.3 Allow 与 Disallow 同时出现时以哪个为准

对于支持 Allow 的爬虫(如 Google),会根据规则匹配的最长路径长度判断,较长的规则优先。对于不识别 Allow 的爬虫,则 Disallow 规则直接生效,因此不能仅靠 Allow 来开放子目录。

6. 结语

robots.txt 配置看似简单,实际牵涉细节众多。从文件放置位置到字段名称拼写,再到临时规则的恢复,每个环节都可能影响抓取效果。建议你现在就检查一下站点的现有配置,确认没有误写 Disallow: / 或文件放置错误,同时留意 Allow 指令的兼容性,并养成改版后及时恢复规则的习惯,这样能让爬虫更高效地为你服务。

图1 图2

nginx