每个网站都可以在根目录放置一个名为 robots.txt 的文本文件,它承担着与搜索引擎爬虫沟通的职责,相当于一份访问许可清单。通过这份清单,你可以引导爬虫优先抓取重要页面、避开重复或低价值区域。然而,一份错误配置的 robots.txt 可能让网站陷入抓取危机,甚至导致整站从搜索结果中消失。本文将从基础概念到具体语法,再到常见场景的配置方法,帮你掌握这份文件的核心要点。
robots.txt 是一个约定俗成的标准文件,它的访问地址是固定的,即“域名/robots.txt”这个路径。比如你的网站是example.com,那么在浏览器中访问example.com/robots.txt 就能看到这个文件的内容。它必须被放置在网站服务器的顶层目录(即根目录),且文件名的大小写、拼写不能有任何差错,否则爬虫将无法识别它。
需要明确的是,robots.txt 的作用是管理爬虫是否能够抓取某个地址,而不是控制页面是否被收录。如果希望某个页面彻底从搜索结果中消失,你需要在页面本身的HTML中添加 noindex 标签指令。此外,这个文件对于正规搜索引擎的爬虫具有约束力,但对于恶意采集程序或非正规工具而言,它们通常不会遵守此文件的规定。
因此,如果网站中包含用户隐私、会员专享或付费内容等敏感数据目录,务必同时配合登录权限验证、IP 白名单等硬性防护措施,而不是仅仅依赖 robots.txt 进行阻拦。
与此同时,你还应定期检查该文件的内容,确保没有意外暴露内部敏感路径,防范信息泄漏风险。
robots.txt 的语法结构清晰,本质上是由“User-agent”开头的多个规则组构成。每条记录遵循“字段: 值”的格式,冒号后面通常跟一个空格,字段名统一使用小写字母,以提升兼容性。
该指令用于声明规则的作用对象。例如,填写 User-agent: Googlebot 表示这条规则只针对 Google 的抓取爬虫;而填写 User-agent: * 则代表规则适用于所有搜索引擎。一个文件中可以包含多组规则,并为不同的搜索引擎设置不同的权限级别。当某个爬虫同时匹配多组规则时,搜索引擎通常采用匹配路径最长的那组规则,遇到不确定的情况时,可使用站长平台提供的 robots 测试工具进行验证。
这两个指令互为补充。Disallow 表示禁止抓取的起始路径,Allow 则明确允许抓取。若 Disallow 字段留空且不包含任何内容,则表示不限制任何路径,意味着全站开放。当两个指令冲突时,搜索引擎会以“路径最长者优先”的原则处理。例如,同时配置了 Disallow: /api/ 和 Allow: /api/public/ 两条规则,那么 /api/public/ 目录下的资源仍可被抓取。书写时建议从根目录写全路径,避免使用含糊的缩写。
Sitemap 指令用于声明网站地图的完整 URL,通常放在文件末尾,便于爬虫快速获知全站内容清单,目前主流搜索引擎均支持该指令。Crawl-delay 指令曾用于设置抓取间隔,但 Google 早已公开声明不再支持这个指令,如果你需要限制 Google 的爬取频率,应前往 Google Search Console 后台进行速率设置;该指令对 Bing 等部分搜索引擎依然有效,可以作为预留设置。
在实际配置中,针对不同搜索引擎需要使用特定的 User-agent 名称。以下列举几个主流爬虫标识:
如果不想针对某一特定爬虫做细致区分,可以直接使用 User-agent: * 覆盖所有未单独列出的爬虫。但若同一文件里既有针对特定爬虫的规则组,又有通配符规则组,搜索引擎会优先匹配特定规则组。
以下列举几种高频场景的配置模板,可直接参考替换目录路径后使用。
另外还需注意:尽量不要在 Disallow 路径中只写“/cgi-bin/”这种过深且不规范的目录名,以免误伤子目录中的公开内容。同时,文件编码建议使用 UTF-8 无 BOM 格式,以避免注释出现中文乱码。
配置文件发布后并不代表万事大吉,还有几个检测步骤值得做好。一是打开浏览器直接访问 robots.txt 文件,确认内容语法正确、指令生效。二是使用各大站长平台自带的抓取测试工具,查看 Google、Bing、百度是怎么解读这份文件的。三是借助第三方 robots.txt 校验器进行分析,它会用不同爬虫的视角去模拟解析,帮助你排查规则冲突或路径拼写错误。
此外,当网站进行重大改版、迁移域名或删除大量页面时,应适当更新 robots.txt 内容,并在调整后进行监控,确保核心页面的抓取量没有异常波动,以免因小失大。
需要保留。只要网站域名不变,并且希望继续对搜索引擎开放友好,就应在新服务器的根目录重新放置一份正确的 robots.txt 文件。迁移过程中如果不小心遗漏,爬虫会默认网站没有任何抓取限制,可能与预期不符。
不建议使用。虽然部分搜索引擎对 UTF-8 编码的中文有较好的兼容性,但为安全起见,建议统一使用英文或拼音路径,注释使用英文或拼音,并将文件保存为 UTF-8 无 BOM 格式,可以避免因编码识别不一致导致的解析异常。
这个问题要先分两步排查。第一步查看 robots.txt 文件本身是否有语法错误或者误设了 Disallow: / 这种屏蔽全站规则;第二步检查页面是否添加了 noindex 标记,或者网站是否因刚部署而尚未被收录。排除以上原因后,再去站长平台提交 URL 并申请抓取。
robots.txt 虽然只是一个几行文字的TXT文件,但它对搜索引擎的抓取效率与网站内容的可见度有着直接的影响。建议站长根据自身站点结构,设置合理的 Allow/Disallow 规则,并及时利用各平台的抓取测试工具进行验证。最重要的是,不要将安全防线完全寄托于 robots.txt,敏感目录务必要叠加其他防护手段。定期检查配置文件,并根据网站结构调整及时更新,才能让爬虫始终在你的规划范围内高效工作。