robots.txt 配置完整指南:语法规则与实操要点

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

robots.txt 是放在网站根目录下的一个纯文本文件,用来向搜索引擎爬虫说明哪些路径可以抓取、哪些应当绕行。它不承担安全防护职责,但在保护非公开目录、控制抓取配额、降低服务器压力方面作用明显。无论站点规模大小,掌握这份文件的配置方法都很有必要。

1. 理解 robots.txt 的基础语法结构

这份文件的规则并不复杂,本质上是少量固定单词的组合。先把下面三个核心概念弄清楚,大多数配置需求都能在此基础上拼装完成。

需要注意,每个 User-agent 分组下至少应包含一条 Disallow 或 Allow 语句,否则该分组形同虚设。同时要记住,这个文件只约束搜索引擎的抓取程序,普通访客通过浏览器依然能直接访问页面,涉及敏感信息的内容不能依赖它来保护。

2. 创建并部署你的首个 robots.txt 文件

不管网站大小,都可以从一个简单清晰的初始版本开始。下面这个模板可以作为起点。

  1. 新建一个纯文本文件,将以下内容粘贴进去:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Sitemap: https://www.example.com/sitemap.xml
  1. 将示例域名替换为你的真实站点地址,并仔细核对每个目录名,确保没有拼写错误。
  2. 将文件重命名为 robots.txt,通过 FTP 工具或主机控制面板的文件管理功能,上传到网站根目录。

部署后,在浏览器中直接访问 你的域名/robots.txt,若能原样显示文件内容,即表示上传成功。新手常见的失误是把规则写成 Disallow: /,这会让整站从搜索引擎结果中消失。此外,路径末尾的斜杠不能省略,例如 Disallow: /tmp 并不会覆盖 /tmp/ 目录。

3. 利用 Allow 指令实现局部放行

随着站内目录层级变多,全盘允许或全盘禁止往往不够灵活,Allow 指令正是解决这类需求的工具。一个常见场景是:想隐藏整个图片素材库,但又希望其中某张品牌宣传图能被搜索引擎收录。

User-agent: *
Disallow: /images/archive/
Allow: /images/archive/logo-main.png

实际使用时要留意,Allow 与 Disallow 的匹配规则是取最长匹配前缀,也就是说更具体、更长的路径会优先生效。建议在部署后通过搜索引擎管理后台的 robots 测试工具来验证规则效果,避免因路径层级理解偏差导致放行失败。

4. 让 sitemap 与 robots.txt 协同配合

搜索引擎发现新内容的速度,很大程度上依赖 sitemap 的提交。在 robots.txt 中明确声明 sitemap 地址,可以降低爬虫遗漏重要页面的概率。推荐在文件末尾添加一行声明,格式如下:

Sitemap: https://www.example.com/sitemap_index.xml

这里有几个实践要点:

另外,修改 robots.txt 后建议定期复查访问日志,留意主要搜索引擎的抓取频率变化。如果发现核心页面抓取量明显下降,优先检查是否误写了过宽的 Disallow 规则。

5. 常见问题

5.1 robots.txt 写错了会不会立刻被搜索引擎惩罚?

不会立刻受到惩罚,但可能造成页面收录延迟或抓取异常。若误将 Disallow: / 写入文件,搜索引擎会停止抓取整站内容,待修正文件并重新提交后,收录会逐步恢复。

5.2 多个爬虫规则同时存在时,优先级如何判断?

搜索引擎爬虫会按 User-agent 名称的精确匹配度来选择规则。若存在针对某个特定爬虫的分组,该爬虫会忽略通配符 * 分组中的规则,直接使用与其名称匹配的分组配置。

5.3 robots.txt 能阻止他人直接访问页面吗?

不能。它只对遵守协议的搜索引擎爬虫生效,真人通过浏览器仍可正常打开页面。若需限制访问权限,应使用登录验证或服务器端的访问控制机制。

6. 总结

配置 robots.txt 的关键在于明确目标:既要让搜索引擎高效抓取有价值的内容,也要主动屏蔽无意义的页面。建议从一份包含基础 Disallow 和 Sitemap 声明的文件起步,在站点结构调整或抓取日志出现异常时,再有针对性地调整 Allow 与 Disallow 组合。记住,每次修改后都要验证文件可访问性,并持续观察搜索引擎的抓取反馈。

图1 图2

nginx