robots.txt 完整配置指南:语法、常见错误与实战范

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

搜索引擎的爬虫访问一个网站时,最先请求的往往不是首页,而是根目录下的 robots.txt 文件。这个纯文本文件相当于网站的“访客须知”,告诉爬虫哪些内容可以抓取、哪些区域禁止入内。一份配置得当的 robots.txt,不仅能避免后台、测试页等敏感信息被索引,还能减少无效请求对服务器资源的占用,让爬虫的抓取额度花在刀刃上。

1. 语法核心:每个字段的含义与边界

robots.txt 必须放置在网站根目录(如 https://example.com/robots.txt),文件使用 UTF-8 编码,每一行一条指令,路径区分大小写。一个完整的文件通常包含以下字段:

一个典型配置示例如下:

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

这段规则的意思是:所有爬虫默认可以抓取全站,但 /admin/ 目录被排除;同时该目录下的 /admin/public/ 子路径被单独放行。这里最大的误读是认为 Allow 和 Disallow 有优先级之分——实际上,多数搜索引擎采用最长匹配原则,即更具体的路径规则优先。但仍有部分爬虫不识别 Allow,此时你的“放行”指令并不会生效。

2. 场景化配置:三种常用模板参考

根据不同运营目标,robots.txt 的写法需要灵活调整。以下三种场景覆盖了大多数站点的实际需求。

2.1 全站开放:适合内容型新站

如果网站处于冷启动期,或者本来就是内容平台,希望页面尽快被收录,那就让所有爬虫畅通无阻。对应的写法是将 Disallow 留空:

User-agent: *
Disallow:

也可以直接省略 Disallow 这一行,效果相同。此配置最容易踩的坑是把冒号后面误写成空格或斜杠,特别是 Disallow: / 会导致全站被封禁,收录立刻归零。自检时重点关注冒号后的内容是否完全为空。

2.2 定向屏蔽:拒绝特定搜索引擎

当你不希望某个搜索引擎收录站点,但又想保留其他搜索来源时,可以只对它的爬虫单独设限:

User-agent: Bingbot
Disallow: /

这样配置之后,Bing 的爬虫被彻底拒绝,而 Google、百度等其他蜘蛛不受影响。需要提醒的是,不同爬虫的名称必须精确匹配,例如百度是 Baiduspider,Google 是 Googlebot,名称写错会导致规则失效。

2.3 阻止抓取资源文件:节省带宽与流量

对于图片、CSS、JS 等静态资源,如果不需要被索引(比如不想让图片出现在搜索结果中),可以统一屏蔽,降低服务器压力:

User-agent: *
Disallow: /images/
Disallow: /css/
Disallow: /js/

但要谨慎:如果这些静态资源本身承载了页面样式或功能,屏蔽抓取可能导致页面渲染不完整,进而影响 SEO 质量分。建议只屏蔽确实没价值的目录。

3. 避坑清单:多数站点常犯的几个错误

除了上面提到的 Allow 指令兼容性问题,还有几个高频错误值得留意。

4. 修改后的检查与验证方法

每次修改 robots.txt 后,不要直接上线就完事,需要做两件事:一是打开根目录地址检查文件是否可正常访问且没有语法错误;二是使用搜索引擎官方提供的 robots 测试工具,例如 Google Search Console 的 robots.txt 测试器,输入一条页面路径即可验证它是否被允许抓取。

另外,robots.txt 文件的修改通常在几分钟到几小时内生效,但对已经被抓取或收录的页面,需要另行提交删除索引或等待自然更新,不会因为修改文件而立即消失。养成记录修改时间的习惯,有助于排查后续抓取异常的根源。

5. 常见问题

5.1 robots.txt 中可以添加注释吗?怎么写?

可以。在行首使用 # 符号即可添加注释,例如 “# 禁止抓取后台目录”。注释不会被爬虫解析为指令,适合用来标记每一段规则的作用,便于日后维护和团队协作。

5.2 如果 Allow 和 Disallow 冲突,搜索引擎会怎么处理?

Google 等主流引擎遵循最长匹配原则,谁的路径字符串更长谁生效。比如 Disallow: /admin/ 和 Allow: /admin/public/,后者更长,所以 /admin/public/ 可以被抓取。但部分小型搜索引擎不支持 Allow,遇到冲突时会直接执行 Disallow,所以尽量不用依赖优先级的设计。

5.3 robots.txt 封禁页面后,就能从搜索结果中移除吗?

不能。robots.txt 只是阻止新抓取,已经收录的 URL 依然可能出现在搜索结果里,只是标题下方会提示“无法访问”。想要彻底清除,需要用 noindex 标签或通过搜索引擎的删除索引工具提交请求。

6. 总结

配置 robots.txt 的核心原则是“少用 Disallow,确需时明确到目录”;全站开放对多数新站是最优解,定向屏蔽时务必写对爬虫名称。改完文件后,立即用官方工具检验一次,同时定期复查文件内容,避免因路径变更或目录移动导致旧规则失效。记住,它只是抓取引导工具,绝不是安全防线。

图1 图2

nginx