robots.txt 是一个存放在网站根目录的纯文本文件,它的作用是向搜索引擎爬虫说明站内哪些页面可以抓取、哪些路径应当跳过。配置得当能帮助爬虫聚焦核心内容,减少无效抓取;一旦规则有误,轻则页面漏收,重则整站被搜索引擎从索引中移除。本文从它的用途出发,拆解文件语法、匹配逻辑以及常见误区,帮助你安全地完成配置。
robots.txt 并不具备强制执行力,也并非安全屏障。主流搜索引擎的爬虫会默认遵循该文件,但这是行业约定而非硬性规定,恶意程序更不会理会。在常规运营中,它的实用价值体现在三方面:屏蔽后台目录、测试页面等不需要展出的路径;阻止爬虫抓取携带大量跟踪参数的动态地址,以节约服务器资源;在文件内标注 Sitemap 的完整地址,帮助新内容被更快发现。
需要特别注意的是,文件对所有访客公开可见,任何人直接在浏览器输入域名后加 /robots.txt 都可以查看全部规则。因此,涉及用户隐私、后台接口或商业敏感的数据绝对不能依赖该文件隐藏,必须配合登录权限、IP 白名单或防火墙策略再行保护。
文件遵循“字段名: 值”的格式,一行只写一条规则。字段名不区分大小写,但路径部分区分大小写。掌握以下五个字段足以覆盖大部分使用场景。
User-agent 声明规则针对哪类爬虫,如 Googlebot、Baiduspider;用星号(*)通配所有未被单独指定的爬虫。Disallow 用于列出禁止访问的路径,值为斜杠(/)时表示禁止全部爬虫抓取整站。
Allow 可以在被禁止的范围内单独放行某个子路径,常用于“屏蔽整个目录但保留其中一个页面”的精细控制。Sitemap 字段则填写站点地图的绝对路径,帮助爬虫更准确地了解站点的结构。还有 Crawl-delay 字段用于建议爬虫在两次请求之间等待的秒数,不过它并非被所有搜索引擎原生支持。
规则的实际生效并不完全按照文件中编写的先后顺序,理解匹配原理能帮助你写出更可靠的配置。对同一爬虫,当一条路径同时命中 Allow 和 Disallow 时,搜索引擎会根据两者匹配的字符长度来决定优先级:长度更长(即规则更具体)的一方生效;若长度相同,则 Allow 优先。
举例来说,想阻止爬虫抓取 /download/ 目录下的内容,但又允许其中一份用户手册 /download/manual.pdf 被收录,就需要为这条允许规则单独追加一行。这种“先封后放”的做法正是利用了更长的匹配路径获得更高的优先权,是精细粒度控制的核心方式。
此外,路径的匹配是前缀匹配(以该字符串开头的所有 URL 均会被匹配),而不是通配符式模糊匹配。Disallow: /tmp 会同时禁止 /tmp/page.html 和 /tmppage,如果不希望误伤,务必在末尾加上斜杠以明确目录界限。
许多网站在配置过程中因认知偏差产生两类典型风险:一是误用文件本身的公开属性去保护私有内容,结果是敏感信息被爬虫直接获取;二是将不合适的路径一刀切屏蔽,导致页面的 CSS、图片等静态资源无法被抓取,从而削弱页面渲染的质量评估。
另外,很多运营者会忽视顺序与空行带来的影响。在文件末尾存在的空行也可能被某些解析器视为新的指令分隔符,从而引发误读;同理,注释行虽然以井号开头,但夹杂在规则行之间若格式不规范也可能干扰爬虫的解析。为避免此类问题,推荐在每次修改后用常见的搜索引擎抓取测试工具进行验证,确保实际匹配结果符合预期。
更值得留意的是,Disallow: / 一旦误写入文件就相当于对全站关闭索引入口,且该指令在多数主流搜索引擎中会立即生效,后果通常是整站搜索收录归零。这类操作应避免在流量高峰期进行,并保留一份可快速回退的正确版本备查。
假设一个资讯站点需要屏蔽管理后台 /admin/、搜索结果页 /search?q=,同时希望保留站点地图的发现路径,可采用下述结构:
User-agent: *
Disallow: /admin/
Disallow: /search?
Sitemap: https://www.example.com/sitemap.xml
同一份文件若还希望单独屏蔽百度爬虫对某个临时促销页面的抓取,则可新增规则段:
User-agent: Baiduspider
Disallow: /promo/
最后建议在完成修改后,将文件保存为纯文本格式(UTF-8 无 BOM),并置于网站访问根目录,确保能够通过域名直接访问到该路径进行核对。
不能绝对保证。它阻止的是抓取行为,而非收录结果。如果其他网站通过外链指向该页面,搜索引擎在未抓取的情况下仍可能根据链接信息建立索引(通常只显示网址而没有摘要),所以对需要彻底隐藏的内容还应在 HTTP 层面配合登录验证或 noindex 标签。
搜索引擎会优先采用匹配字符长度更长的规则,若两条规则长度相同则 Allow 优先生效。因此,想在被禁止的目录中放行特定文件,需要保证放行路径的字符长度严格大于禁止路径。
主流搜索引擎会定期重新抓取该文件,短则几小时,长则几天。若想加速生效,可以通过各站长平台的“抓取诊断”或“验证”工具主动提交更新,不必等待自然刷新周期。
robots.txt 是网站与搜索引擎沟通的第一道关口,用对了能显著提升抓取效率,用错了则可能造成流量损失。建议从最小化的规则开始配置,只屏蔽明确无效的路径,并对每条规则做一次可视化的抓取测试确认;同时定期复查文件内容,删除过时的条目。牢记它只是一份公开建议而非防护手段,敏感数据务必在应用层与网络层设置真正的访问控制。