robots.txt 是什么?搜索引擎爬虫怎么工作
robots.txt 是什么?讲清 robots 协议的机制、常用指令与通配符,以及配置失误的常见风险,帮你正确管理搜索引擎爬虫的访问范围。
robots.txt 是什么
robots.txt 是网站根目录下的一个纯文本文件,用来告诉搜索引擎爬虫:你哪些目录可以抓,哪些不能抓。 它是爬虫进入网站前先读取的"门卫",属于 Robots 排除协议(REP)的一部分。
它的文件结构很简单,基本单位是"用户代理 + 规则"。比如:
User-agent:
Disallow: /admin/
Allow: /admin/login
Sitemap: https://example.com/sitemap.xml
这段配置的意思是:对所有爬虫,禁止抓取 /admin/ 目录,但允许抓取登录页,同时把 sitemap 的地址告诉爬虫。
搜索引擎爬虫怎么工作
理解 robots.txt 之前,先理解爬虫的完整行为链。爬虫(比如百度的 Baiduspider、Google 的 Googlebot)在访问你的网站时,会按这样的顺序行动:
- 查 robots.txt:先请求
https://你的域名/robots.txt,读取规则。 - 决定抓不抓:如果当前 URL 被
Disallow命中,就跳过;命中Allow就继续。 - 发起抓取:下载页面 HTML 与资源。
- 解析与索引:分析内容,可能收录进索引库。
注意:robots.txt 的作用发生在"抓取之前",它管的是"来不来抓",而不是"抓了之后收不收"。想要理解抓取之后发生了什么,可以看 搜索引擎收录是什么。
常用指令
| 指令 | 作用 | 示例 |
|---|---|---|
User-agent | 指定规则适用哪个爬虫 | User-agent: Baiduspider |
Disallow | 禁止抓取某个路径 | Disallow: /private/ |
Allow | 允许抓取某个路径 | Allow: /private/login |
Sitemap | 声明网站地图地址 | Sitemap: https://example.com/sitemap.xml |
Crawl-delay | 要求爬虫抓取间隔(非标准,多被忽略) | Crawl-delay: 5 |
User-agent: 表示规则对所有爬虫生效。Disallow: 后面为空表示什么都不禁止。
通配符
robots.txt 支持两个常用通配符:
匹配任意字符序列,如Disallow: /.pdf表示禁止抓取所有 PDF 文件。$表示路径结尾,如Disallow: /.pdf$和上面的写法作用相同。
不同爬虫对通配符的支持程度不完全一致,Google 支持良好,百度对部分写法解释不同,写规则时尽量保持简单清晰。
常见配置场景
场景一:屏蔽后台目录User-agent:
Disallow: /admin/
Disallow: /api/
后台管理、内部 API 一般不想被收录,屏蔽是合理的。但要注意,屏蔽的是"抓取"而非"访问",不代表别人打不开。
场景二:允许抓取全站User-agent:
Disallow:
这相当于告诉爬虫:全站都可以抓。新站如果没有特殊需求,用这种配置最省心。
场景三:指定 sitemapUser-agent:
Disallow:
Sitemap: https://example.com/sitemap.xml
把 sitemap 写进 robots.txt,是给爬虫指路的一种方式,和站长平台提交是互补关系,详见 sitemap 网站地图是什么。
配置失误的常见风险
风险一:误屏蔽全站。 最经典的翻车现场:为了"防采集"写Disallow: /,结果把 Google、百度全部挡在门外,站内页面集体从索引里消失。
风险二:屏蔽了 CSS/JS。 有些站为了省流量屏蔽静态资源,结果搜索引擎渲染页面时缺样式缺脚本,内容可读性大降,间接影响收录质量。
风险三:以为 robots.txt 是安全措施。 它既不是防火墙也不是权限控制,只是给守规矩的爬虫看的说明。把敏感数据放在"只是 Disallow 掉"的目录里,等于放在大门口。
风险四:多个规则冲突。 同一路径既有 Allow 又有 Disallow 时,按匹配最长且最具体的规则优先,规则写得混乱会导致爬虫行为不可预期。
实操建议
- 新站默认放行。 没有特殊需求时用
Disallow:(空)放行全站,避免误伤。 - 改完立刻验证。 修改 robots.txt 后用站长平台的"抓取检测"工具模拟爬虫,确认规则符合预期。
- 区分 robots 与 noindex。 不想某页出现在搜索结果里,更稳妥的做法是加
noindex标签;robots.txt 只管抓取,管不了"收录后不展示"。 - 别把 SEO 的希望寄托在 robots.txt 上。 它的职责是"放行/拦截抓取",真正决定收录和排名的是内容质量,这点在 SEO 是什么 里有系统说明。
必须说明的边界
需要明确:robots.txt 只是给搜索引擎的"请求",爬虫可以选择不遵守(不守规矩的工具本来就无视它)。同时,正确配置 robots.txt 不保证收录,错误配置则几乎必然阻碍收录。配置时保持保守,拿不准就放行。
下一步
- 想理解收录的完整流程?看 搜索引擎收录是什么
- 想提交网站地图加速收录?看 sitemap 网站地图是什么
- 想系统学习 SEO?看 SEO 是什么
常见问题
相关推荐
获取更多 AI 内容
订阅更新,第一时间获取新教程和工具推荐。