Robots.txt 是一个位于网站根目录的纯文本文件,作用是告诉搜索引擎爬虫哪些页面可以抓取,哪些页面应该绕开。它是一种行业公认的协作约定,而非安全机制。正确配置它,能让爬虫把资源聚焦在高价值页面上,同时也能减轻源站服务器的无效负担。
搜索引擎的爬虫在访问站点时,会优先在根目录查找 robots.txt 文件。若文件存在且能被解析,爬虫就会根据其中的声明来确定抓取范围;若文件缺失,爬虫通常默认为可以访问所有公开内容。该协议主要应用于屏蔽后台登录入口、过滤站内搜索结果页或标签汇总页等低权重页面,也通过设定抓取间隔来平抑服务器瞬时压力。
需要注意的是,严格遵守这份协议的只有主流正规搜索引擎。对于恶意程序、内容采集器或非公开 API 的数据抓取,robots.txt 不具备任何强制力。因此敏感信息、用户隐私数据绝不可依赖此文件进行保护。
在文件结构上,每条规则组都是以 User-agent 字段开头,其后是对该爬虫生效的具体配置。掌握以下五个指令,足以覆盖绝大多数站点的管理需求:
以下是一份结构完整的参考写法:
User-agent: *
Disallow: /uploads/
Disallow: /private/
Allow: /private/faq.html
Sitemap: https://www.example.com/sitemap.xml
该段规则声明:屏蔽所有爬虫抓取 uploads 与 private 两个目录,但 private 目录下的 faq.html 得到例外放行,同时向爬虫提供了站点地图的存放地址。
语法本身并不复杂,但实际配置中因疏忽而导致策略未生效的情况并不罕见。以下场景是失误的高发区,值得重点关注:
编写文件时,应严格遵循以下基本规范:仅支持一种独立编码,推荐 UTF-8 无 BOM;每条指令必须单独占一行;路径大小写敏感;每行结束需有换行符,且整套规则的定义顺序会影响解析结果。建议每次修改后都做一次验证,确保策略与预期一致:
不能。该文件只是对遵守协议的正当爬虫做出抓取约束,并不能阻止用户在未授权链接中直接访问页面。想要保护内容不外泄,应使用登录校验或访问权限控制,而不是依赖 robots.txt。
不会直接威胁安全,但可能导致页面被误屏蔽而降低收录量。例如误写 Disallow: / 会让整站失去搜索流量,影响是显性且长久的,因此修改后务必验证。
首先要确认 Allow 与 Disallow 是否位于同一 User-agent 组内;其次检查网页本身是否存在 noindex 标签、Canonical 指向冲突或服务器返回了 404/5xx 状态码,这些因素都会阻止页面进入索引,甚至优先级高于 robots.txt 指令。
Robots.txt 的配置原则在于精细而非宽泛:明确哪些不该抓,而不是含糊地放行一切。建议每次修改文件后先进行模拟验证,并在线上观察数日的抓取日志。若你正在处理站点规模扩张或页面瘦身需求,务必从低价值路径的屏蔽入手,避免一刀切影响核心内容的索引效率。