robots.txt 是放置于网站根目录的一个纯文本文件,用来向搜索引擎爬虫说明站点中哪些部分可以被抓取、哪些部分应当回避。配置合理,可以帮助爬虫更高效地收录核心内容,同时降低服务器压力;配置不当,却可能造成整站收录异常甚至隐私目录被索引。下面从语法、匹配逻辑到常见误区,逐一梳理。
这份文件本质上是给合规爬虫的一份“抓取许可声明”,主流搜索引擎都会尽量遵守其中的约定,但它本身不具备强制约束力,更像是一项行业内的默契规则。
它的实际价值主要体现在三方面:将后台、测试环境等非公开目录隔离出索引范围;避免带大量动态参数的 URL 被重复抓取;通过声明 Sitemap 地址帮助爬虫更快定位新内容。然而,文件内容是对所有人公开的,依赖它来保护真正的机密数据并不稳妥,涉及敏感信息时必须叠加登录验证或 IP 白名单等手段。
规划屏蔽策略时要有清晰的边界感:robots.txt 拦得住“守规矩的爬虫”,却拦不住恶意采集程序或直接访问链接的用户。
语法结构并不复杂,遵循“字段: 值”的格式,一行一条指令。字段名不区分大小写,但路径部分区分大小写,配置时容易忽略这一点。
假设站内有一个内部资料目录 /private/,但其中有一篇对外发布的说明书希望被收录,可以这样写:
User-agent: *
Disallow: /private/
Allow: /private/manual.html
Sitemap: https://example.com/sitemap.xml
这段配置的含义一目了然:默认挡住 private 目录下的所有文件,唯独放行 manual.html,同时告知爬虫地图位置。“整体禁止、局部开放”的写法在运维中非常常见。
写出能用的 robots.txt 不难,但写出不会“误伤”的规则,需要掌握编写顺序和匹配逻辑。
匹配是基于“路径前缀”进行的,规则中字符串匹配范围遵循“最长匹配优先”的原则。举例来说,若同时存在 Disallow: /api 和 Allow: /api/public,那么 /api/public 下的请求会命中 Allow 规则而被放行。此外,规则是区分大小写的,/Admin 与 /admin 会被视为两个不同的路径。
另外一个常见误区是:页面中即使没有 Disallow 规则,爬虫也可能不抓取,因为抓取还受外链数量、页面质量、服务器响应速度等因素影响。反过来,robots.txt 屏蔽了某个页面,该页面仍可能出现在搜索结果中(只是没有抓取内容)。
下面这些坑在配置时极易踩到,值得特别留意。
Google 官方已经明确表示忽略这个字段,它更依赖自身算法来控制抓取频率。如果你的站点主要流量来自 Bing 或 Yandex,Crawl-delay 仍然有效。若要限制 Googlebot 的抓取频率,应调整服务器响应速度或使用 Google Search Console 中的速率设置。
可以。robots.txt 只阻止“抓取”内容,不阻止 URL 被索引;只要外部有链接指向该 URL,搜索引擎仍可能将其展示在结果中,只是摘要信息不完整。若希望页面彻底从搜索结果中消失,应使用 noindex 标签或直接在 meta 中声明。
不是强制要求,搜索引擎也能自动发现站点地图,但这需要较长时间。对于内容频繁更新的站点,在 robots.txt 中显式声明 Sitemap 地址可以显著加速新页面的收录进程,建议有条件就写上。
robots.txt 是一份简单但影响深远的文件,掌握它的语法与匹配逻辑,是站点 SEO 运维的基本功。配置前先梳理目录结构,配置后及时校验并观察抓取变化;记住它不承担安全防护职责,敏感内容必须另行加强访问控制。建议每季度复查一次规则,确保它与站点结构调整保持同步。