robots.txt 是放在站点根目录的纯文本文件,用来告诉搜索引擎爬虫哪些路径可以抓取、哪些不要访问。它常被误当成保密工具或收录开关,一旦写错,反而会让整站被拒绝抓取。下面从语法、常见误区到上线校验,整理一份可以直接照抄的写法。
![]
一、robots.txt 的作用与基本语法
1. 文件位置与生效范围
robots.txt 必须放在域名根目录,通过绝对地址访问,路径固定为 /robots.txt,不能放在子目录或用相对路径引用。它只对声明支持该协议的爬虫生效:规则按 User-agent 分组,爬虫会先找到与自己名称匹配的那一组再逐条判断,不匹配则读取 * 组。需要明白的是,该协议没有强制力,正规搜索引擎会遵守,而恶意采集脚本通常直接无视,因此它不能作为访问控制手段。
2. 常用指令字段
robots.txt 的字段名要求首字母大写,路径值则区分大小写,常见字段有四类:
- User-agent:指定规则适用的爬虫名称,星号代表所有爬虫
- Disallow:禁止抓取的路径,值留空表示允许全部
- Allow:在 Disallow 范围内开放例外路径
- Sitemap:声明站点地图地址,便于爬虫发现页面
每个 User-agent 组内的规则顺序不敏感,百度与 Google 会取最长匹配的那条;若长度相同,Allow 优先于 Disallow。
二、常见写法与误区
1. 全站屏蔽与 Allow 例外
想整站禁止抓取时,写 Disallow: / 即可,此时所有路径都不可访问。但要注意:整站屏蔽只是让爬虫不再抓取,已经收录的页面不会立即从索引中消失,要删除收录得靠页面级 noindex 或返回 410。如果只想屏蔽某个目录、又开放其中一个子路径,就用 Allow 做例外:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
2. 路径匹配与通配符
Google 与百度都支持星号通配符和 $ 结尾符,但不少小众爬虫并不支持。写法上以最小公倍数为准,能用普通路径就少用通配符。屏蔽带参数的动态地址可以写 Disallow: /?,屏蔽备份文件用 Disallow: /.bak$。另一个高频错误是漏掉结尾斜杠:Disallow: /admin 会同时命中 /administrator,应该明确写成 Disallow: /admin/,只屏蔽该目录本身。
三、上线前的校验与配合
1. 校验工具与测试方法
发布后先在浏览器直接打开 robots.txt,确认返回 200 且 Content-Type 为 text/plain,若返回 404 或 HTML 页面,爬虫会认为文件不存在而放弃读取。接着用站长平台的测试工具逐条验证,百度搜索资源平台和 Google Search Console 都能报告某条规则命中了哪个 URL。若站点部署了 Nginx,还要确认伪静态规则没有把该文件一并重写,可用一行 location 精确放行:
location = /robots.txt { root /www/wwwroot/site; access_log off; }
2. 与 Sitemap 的分工
robots.txt 与 Sitemap 职责互补:前者管不抓什么,后者管该抓什么。可以在文件末尾声明站点地图,爬虫读取后会自动发现其中的页面:
User-agent: *
Disallow: /search/
Sitemap: https://www.codewithtu.cn/sitemap.xml
这份配置既屏蔽了站内搜索结果页,又指明了地图位置。
关键配置提示
- 文件放根目录,直接访问需返回 200 且类型为 text/plain
- Disallow 路径带上结尾斜杠,避免误伤同前缀目录
- 它不能删除已收录页面,删除收录需配合 noindex 或 410

快来评论,快来抢沙发吧~