robots.txt 是放在网站根目录的纯文本文件,用来告诉搜索引擎哪些页面能抓、哪些不能抓。它没有强制执行力,属于约定俗成的协议,但主流搜索引擎都会遵守。
基础格式与放置位置
1. 文件名:必须是小写 `robots.txt`,放在网站根目录,通过 `https://你的域名/robots.txt` 能直接访问。
2. 文件格式:UTF-8 编码的纯文本文件,使用英文半角符号(冒号、斜杠),不能用中文标点。
3. 大小限制:建议控制在 500 字节以内,Google 的硬性上限是 500KiB,超出部分会直接忽略。
4. 编码规则:每条指令以 `User-agent` 开头,后面跟 `Disallow` 或 `Allow` 行;不同搜索引擎的规则组之间用空行分隔。
常用写法模板
1. 禁止所有搜索引擎抓取全站
```
User-agent: *
Disallow: /
```
2. 允许所有搜索引擎抓取(空文件或这行都行)
```
User-agent: *
Disallow:
```
3. 只禁止百度抓取,其他正常
```
User-agent: Baiduspider
Disallow: /
```
4. 只允许百度,禁止其他所有
```
User-agent: Baiduspider
Allow: /
User-agent: *
Disallow: /
```
5. 禁止抓取特定目录,但允许其中一个子目录
```
User-agent: *
Allow: /public/
Disallow: /private/
```
6. 禁止抓取特定文件类型
```
User-agent: *
Disallow: /*.jpg$
Disallow: /*.png$
```
> `$` 表示 URL 结尾,`*` 匹配任意字符。比如 `Disallow: /*.jpg$` 就是禁止所有 jpg 图片。
关键细节与避坑
- 语法必须用英文半角:冒号后用空格,`User-agent` 首字母大写,写错会导致规则失效。
- 区分有无斜杠:`Disallow: /help` 会禁止 `/help.html`、`/helpabc.html` 等所有以 help 开头的 URL;`Disallow: /help/` 只禁止 `/help/` 目录下的内容。
- Allow 优先级高于 Disallow:规则冲突时,搜索引擎采用限制更宽松的那条。
- 不要在 robots.txt 里暴露后台地址:黑客常通过这个文件找后台路径,后台建议用登录验证保护,而不是靠 robots 屏蔽。
- 提交 Sitemap:可以在文件末尾加 `Sitemap: https://你的域名/sitemap.xml`,方便搜索引擎发现新页面。
写完可以到百度站长平台或 Google Search Console 里测试一下 robots.txt 是否生效、URL 能不能正常抓取。