robots.txt 配置教程:屏蔽爬虫与指定 sitemap
robots.txt 配置教程:从零讲解 robots.txt 语法与常见指令,含 User-agent、Allow/Disallow、通配符与 Sitemap 声明,附误配案例分析,避免屏蔽正常页面。
robots.txt 是什么
robots.txt 是放在网站根目录的纯文本文件,用来告诉搜索引擎爬虫:哪些页面可以抓,哪些不能抓。它不是强制性的安全机制,而是一份"君子协定":搜索引擎可以选择遵守,恶意爬虫也可以无视。想理解协议层面的背景,看 robots.txt 是什么。
基本语法
一个最小可用的 robots.txt:
User-agent:
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
三行分别表示:对所有爬虫生效、禁止抓取 /admin/ 目录、声明 sitemap 位置。Sitemap 行不是 robots 协议的标准部分,但多数搜索引擎都支持,方便爬虫发现 sitemap。
常用指令
| 指令 | 作用 | 示例 |
|---|---|---|
| User-agent | 指定规则适用的爬虫 | User-agent: Baiduspider |
| Disallow | 禁止抓取指定路径 | Disallow: /private/ |
| Allow | 允许抓取指定路径 | Allow: /public/ |
| Sitemap | 声明 sitemap 地址 | Sitemap: https://example.com/sitemap.xml |
| Crawl-delay | 请求间隔(多数引擎忽略) | Crawl-delay: 10 |
不同搜索引擎的 User-agent
不同爬虫有各自的 User-agent,需要按引擎分别控制:
| 爬虫 | User-agent | 用途 |
|---|---|---|
| 百度 | Baiduspider | 百度搜索收录 |
| Googlebot | Google 搜索收录 | |
| Bing | bingbot | Bing 搜索收录 |
| 360 | 360Spider | 360 搜索收录 |
写法是:一段规则块开头写一个 User-agent,下面跟它适用的 Allow / Disallow,不同 User-agent 的规则块之间用空行隔开。想针对某个引擎做精细控制,就给它的 User-agent 单独写一个块。注意一个常见误配:写了 User-agent: Baiduspider 之后,下面的规则只对百度生效,不会影响 Google。
通配符用法
robots.txt 支持两个通配符:
匹配任意字符序列,例如Disallow: /.pdf会屏蔽所有 PDF 文件。$匹配结尾,例如Disallow: /.pdf$只屏蔽以.pdf结尾的路径。
Disallow:(后面留空)表示允许抓取全部;Disallow: / 表示禁止抓取所有路径,两者语义完全不同。想屏蔽整个目录时用的是后者,想放行时用的是前者。
一个完整的示例
User-agent: *
Disallow: /admin/
Disallow: /api/
Allow: /public/
User-agent: Baiduspider
Crawl-delay: 5
Sitemap: https://example.com/sitemap.xml
这个例子中,所有爬虫都不能抓 /admin/ 和 /api/,但可以抓 /public/;百度额外被设置了 5 秒的请求间隔,用来降低服务器压力。
误配的常见根源
绝大多数 robots.txt 问题来自三处:对 Disallow 语义理解偏差、路径与目录混淆、以及改完文件后没有验证。下面几个案例覆盖了最常见的情况,可以直接对照检查自己的配置。
误配案例
误配一:屏蔽了整站。 有人想屏蔽后台,写了Disallow: /,结果把整个站都屏蔽了,首页也抓不到。Disallow: / 只应在确实不想让任何页面被抓时使用,屏蔽单个目录应该写具体路径。
误配二:路径大小写写错。 robots.txt 的路径是大小写敏感的,/Admin/ 不会屏蔽 /admin/,两边必须一致。很多站点的后台是大小写混用的,写规则前先看一遍真实路径。
误配三:只写 Disallow 不放行子目录。 用 Disallow: /private/ 屏蔽整个目录、但想放行 /private/demo/ 时,需要显式加一行 Allow: /private/demo/。多数引擎按最长匹配生效,单独写 Allow 才会放行子目录。
误配四:把 robots.txt 当成安全手段。 robots.txt 只是给搜索引擎看的提示,无法阻止恶意爬虫或真人直接访问。需要保护的内容应配合登录鉴权,而不是指望 robots.txt。
配置后怎么验证
- 直接访问
https://你的域名/robots.txt,确认内容正确返回、没有 404。 - 在百度搜索资源平台的"抓取诊断"里,可以查看爬虫抓到的页面和资源。
- 确认正常页面没有被 Disallow 误伤,重点看首页和文章页。
- 修改后及时回滚错误配置,观察索引量变化,确认没有异常下降。
与 sitemap 配合
robots.txt 里的 Sitemap 行是辅助手段,真正的提交还要按平台流程做。想了解 sitemap 的生成与提交,看 sitemap 网站地图是什么 和 网站收录提速教程。
必须说明的边界
配置好 robots.txt 能减少抓取层面的障碍,但不保证页面被收录,更不保证排名。收录由搜索引擎算法结合内容质量等因素决定,robots.txt 只是"放行"而不是"邀请进索引"。想理解从抓取到收录的完整链路,看 搜索引擎收录是什么。
下一步
- 想理解 robots.txt 的协议背景?看 robots.txt 是什么
- 想生成并提交 sitemap?看 网站收录提速教程
- 想排查爬虫抓不到内容?看 网页抓取与渲染优化教程
常见问题
相关推荐
robots.txt 是什么?搜索引擎爬虫怎么工作
robots.txt 是什么?讲清 robots 协议的机制、常用指令与通配符,以及配置失误的常见风险,帮你正确管理搜索引擎爬虫的访问范围。
sitemap 网站地图是什么?为什么新站要主动提交
sitemap 网站地图是什么?讲清 sitemap.xml 的作用、XML 结构、提交给百度和 Google 的方式与时机,以及为什么新站尤其需要主动提交。
网站收录提速教程:sitemap 提交与索引请求
网站收录提速怎么做?本教程手把手教你用百度搜索资源平台和 Google Search Console 提交 sitemap、请求索引,缩短新站从上线到被收录的时间。
获取更多 AI 内容
订阅更新,第一时间获取新教程和工具推荐。