网站robots.txt写法详解:语法规则与常见配置误区

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

robots.txt 是存放在网站根目录的纯文本文件,用来向搜索引擎爬虫说明哪些页面可以抓取、哪些应当跳过。配置得当能提升抓取效率,防止无用页面进索引;一旦写错,则可能让整站从搜索结果里消失。理解它的语法和工作机制,是每个站点运营者的基本功。

1. robots.txt 的职能边界与真实作用

这份文件本质上是给爬虫的“访问声明”,并不具备强制执行力。主流搜索引擎会按行业惯例遵守其中的指令,但爬虫完全可以无视它。它也不是安全工具,无法替代身份验证或防火墙。

日常运营中,它能帮我们做几件实事:屏蔽 /wp-admin/、/tmp/ 等不需要被展示的路径;拦截带大量跟踪参数的动态链接,避免抓取资源被浪费;在文件里声明 sitemap 的完整地址,让新内容更快被爬虫发现。

需要特别留意的是,robots.txt 对所有访客公开。任何人访问 你的域名/robots.txt 都能看到全部内容。所以涉及登录后才能访问的数据接口、后台操作页面或任何敏感业务数据,绝对不要指望用它来隐藏,必须配合登录校验或服务器访问控制。

2. 语法构成与核心字段讲解

文件结构是“字段名: 值”,一行只写一条指令。字段名不区分大小写,但 URL 路径部分严格区分大小写。掌握下面几个常用字段,就能覆盖绝大多数配置场景。

2.1 五个必备字段解析

2.2 综合配置示例说明

假设网站有一个管理后台目录 /backstage/,希望隐藏其中大多内容,但允许某个公开公告页 /backstage/notice.html 被收录,同时想通知爬虫看到地图文件。一个可参考的写法如下:

User-agent: *
Disallow: /backstage/
Allow: /backstage/notice.html
Sitemap: https://www.example.com/sitemap.xml

这段配置表达了三层含义:默认禁止所有爬虫抓取 backstage 目录;单独放行 notice.html 这一页;最后告知地图地址。书写时注意 Allow 规则要放在 Disallow 之后,且路径必须与实际 URL 完全一致。

3. 匹配原则与通配符用法

robots.txt 的匹配以路径前缀为基本规则,同时支持两个通配符:星号(*)表示任意长度字符,美元符号($)表示路径结尾。

假设要屏蔽所有以 .pdf 结尾的文件,可写为 Disallow: /*.pdf$;如果想拦截所有带问号的动态 URL,可写为 Disallow: /*?*。前者会自动匹配 /files/report.pdf 这类地址,后者则覆盖所有含查询参数的链接。

还需注意,空值 Disallow 表示“无禁止项”,即允许抓取全部内容,这与不同时的默认允许状态一致。另外,路径匹配是区分大小写的,例如 /Product 与 /product 指向的其实是两个不同路径。

4. 高频配置误区与避坑建议

很多站点因为配置失误导致收录异常。以下几条是实际运营中最常见的问题,有必要重点规避。

5. 常见问题

5.1 修改 robots.txt 后需要等多久生效?

大多数搜索引擎会定期重新抓取该文件,通常从几分钟到几天不等;也支持通过搜索引擎站长平台手动提交更新请求,可明显缩短等待时间。

5.2 robots.txt 能阻止百度收录页面吗?

可以。百度爬虫会遵守文件中 Disallow 规则阻止对本路径的抓取,未抓取的页面自然不会被收录。但要防止敏感内容被收录,更稳妥的方案是同时使用 noindex 标签,二者互为补充。

5.3 Disallow 和 noindex 有什么区别?

Disallow 是阻止爬虫抓取而达到阻止收录的目的,noindex 则是允许爬虫抓取但要求其不将该页放入索引。对于不想让用户通过搜索访问但又不介意被读取内容的页面,两种方式可结合使用以达到更理想的控制效果。

6. 总结

配置 robots.txt 的关键在于明确文件边界:它只负责抓取引导,不是安全工具。动笔前先梳理清楚哪些目录必须放行、哪些应屏蔽;路径大小写、通配符和规则顺序都要细致核对。日常维护中,每次改动后建议用站长平台的检测工具验证规则是否符合预期,再配合 sitemap 提交来保证新页面及时被爬虫发现。

图1 图2

nginx