robots.txt配置指南:语法详解与常见错误避坑

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

只要你的网站需要被搜索引擎收录,就离不开 robots.txt 这份文件。它存放在域名根目录,作用就是告诉 Googlebot、Bingbot 等爬虫,站内哪些路径可以爬取,哪些路径不能碰。配置合理,搜索引擎会把你有限的抓取额度花在刀刃上,核心页面更快被收录;配置失误,则可能导致整站收录异常甚至被清出索引。下面就把这份文件的语法规则和踩坑点一次说清楚。

1. 认清 robots.txt 的真实角色与使用前提

robots.txt 的固定访问地址是 域名 加上 /robots.txt,比如 https://example.com/robots.txt。它的本质是引导爬虫如何抓取,而不是决定页面能否被展示。如果某个页面不想出现在搜索结果里,应当使用 meta robots 里的 noindex 标签;robots.txt 仅仅负责拦截抓取动作,两者不能混为一谈。

还要留意一个现实问题:robots.txt 对爬虫而言是"君子协定"。主流搜索引擎都会遵循,但恶意采集程序根本不会看这份文件。凡是涉及用户登录态、支付流程或核心业务数据的目录,绝不能只靠它来防守,必须搭配登录校验、IP 限制等硬性安全策略。

2. 吃透核心语法:字段含义与规则优先级

robots.txt 由若干规则块组成,每个块以 User-agent 开场。书写格式是"字段名: 值",建议字段名小写,冒号后跟一个空格,这样兼容性最好。

2.1 User-agent 指定规则生效对象

它用来声明本组规则针对哪个爬虫。例如写入 User-agent: Googlebot 就只约束谷歌蜘蛛;若想对所有搜索引擎生效,则使用通配符 User-agent: *。同一个文件允许存在多组规则,分别约束不同爬虫。

2.2 Allow 与 Disallow 的搭配逻辑

Disallow 声明禁止抓取的路径,Allow 声明允许抓取的路径。一个常见误区是 Disallow: 留空时,表示解除所有限制,等于放行全站。当 Allow 与 Disallow 同时匹配同一个链接时,搜索引擎会以更长路径的规则为准。例如 Disallow: /api/ 与 Allow: /api/public/ 并存,那么 /api/public/ 下的资源仍可被抓取。

2.3 Sitemap 与 Crawl-delay 的注意事项

Sitemap 字段用来声明站点地图的完整链接,通常放在文件末尾,帮助爬虫快速了解站点结构。Crawl-delay 虽然表示抓取间隔,但 Google 官方已明确忽略此指令,若确有控速需求,请到 Google Search Console 后台设置。

3. 高频场景下的配置模板参考

以下提供几组实用配置,可直接复制后替换为自身路径。

4. 必须避开的典型配置错误

很多站点因为几个小疏忽导致收录异常,以下问题最为高发。

第一是用 robots.txt 保护敏感数据。这是功能错用,一旦爬虫收录了带参数的 URL,就可能暴露后台入口或用户信息,正确做法是配合密码保护。

第二是把 Allow 写在 Disallow 之前。虽然最长匹配优先的规则能化解部分冲突,但混乱的书写顺序容易让维护者自己都看不懂,建议每条规则都写清楚意图。

第三是忘记验证文件是否可访问。有些人将文件放在子目录而非根目录,导致爬虫根本读不到,建议部署后直接在浏览器打开 /robots.txt 确认内容。

5. 常见问题

5.1 robots.txt 写错了能马上恢复吗

能。修改文件后,爬虫通常会在下次抓取时重新读取,但已抓取的页面需要时间处理,一般在几天到几周内恢复正常。

5.2 空白的 Disallow 代表什么含义

代表允许全部抓取。有些站长误以为留空会报错,其实是合法的,常用于声明"全站开放"。

5.3 通配符在 robots.txt 里能用吗

星号可以代表任意字符序列,但部分老式爬虫不一定支持,建议只在主流搜索引擎的规则组中使用。

6. 总结

robots.txt 是搜索引擎抓取的"交通指引",并不承担安全防护职责。配置时务必区分抓取与索引的区别,将敏感目录交给登录验证等硬措施管理;写完规则后,记得去浏览器里核对一遍文件内容,并结合 Search Console 观察抓取报告,就能把收录异常的风险降到最低。

图1 图2

nginx