跳转到正文
AI 科普·

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:

这相当于告诉爬虫:全站都可以抓。新站如果没有特殊需求,用这种配置最省心。

场景三:指定 sitemap
User-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 不保证收录,错误配置则几乎必然阻碍收录。配置时保持保守,拿不准就放行。

下一步

常见问题

相关推荐

获取更多 AI 内容

订阅更新,第一时间获取新教程和工具推荐。