robots.txt 是放在网站根目录下的一个纯文本文件,它直接决定了搜索引擎爬虫如何访问你的站点。配置得好,爬虫会优先抓取重要内容,后台和临时目录得到保护;配置出错,首页可能从索引中消失,网站流量大幅下滑。这篇内容会讲清楚它的工作原理、核心语法,以及那些容易让人踩坑的细节。
这份文件相当于站长与搜索引擎之间的一份公开约定,明确写出哪些链接可以被爬虫顺着访问,哪些路径需要绕开。Google、百度等主流搜索引擎都会读取并尽量遵循这些规则,但它并不是一道强制性的安全防线,更像是一份协作协议。
在实际使用中,它主要承担三类任务:第一,隔离站内的管理后台、测试环境等不想被收录的路径;第二,拦截带有大量参数、容易产生重复内容的动态链接;第三,在文件内声明 Sitemap 地址,帮助爬虫更快掌握网站的更新动态。
需要牢记的是,robots.txt 所有人可见,内容完全公开。如果某条路径下存放着真实敏感的接口或数据,仅靠这个文件来屏蔽是远远不够的,必须配合服务器层面的访问控制或者身份验证措施,才能确保安全。
robots.txt 的语法非常直观,基本的书写格式是"字段名: 值",一行对应一条指令。字段名不区分大小写,但路径部分是区分大小写的,这一点在书写时需要格外留意。
假设站点内有一个仅供内部使用的目录 /backoffice/,但其中的一个公告页需要被正常收录。同时,你想把 Sitemap 的地址告诉爬虫。配置可以这样写:
User-agent: *
Disallow: /backoffice/
Allow: /backoffice/notice.html
Sitemap: https://www.example.com/sitemap.xml
这段规则的含义很清楚:所有爬虫都不能访问 backoffice 目录下的内容,但 notice.html 是个例外,可以被抓取;最后一行则告知了站点地图的位置。
编写 robots.txt 虽然上手简单,但要保证规则不出偏差,需要掌握背后的匹配逻辑,并遵循一套清晰的流程。
robots.txt 的路径匹配属于前缀匹配,只要 URL 开头与规则中的路径一致,就会命中规则。这意味着 Disallow: /admin 不仅会屏蔽 /admin 本身,还会屏蔽 /administer 这类以它开头的路径。此外,当 Allow 与 Disallow 发生冲突时,以更长的匹配项为准,即更具体的路径拥有优先权;这也是为什么一个 Disallow 规则可以配合多个 Allow 规则来使用。
很多站点出问题,往往不是语法写错,而是在疏忽中埋下了隐患。最常见的误区在于文件大小和格式,比如单个文件超过 500KB 或者规则行数过多,部分搜索引擎会停止读取后面的内容,导致规则失效。另外,将不带协议的相对路径写入 Sitemap 字段,或者将文件放在子域名而非根域名下,同样无法起到预期效果。
还有一点值得注意,robots.txt 中不应包含敏感信息,也不适合用它来隐藏已经对外开放的链接。爬虫不会因为该文件里有规则就完全不去抓取,外部链接仍然可能带来抓取行为,真正的隐藏需求应通过权限控制来实现。
不能。它只是告诉爬虫"不要来",但不等于页面在搜索结果中立即消失。已经收录的页面仍然可能一段时间内显示在结果中,只是抓取频率降低。如果需要彻底移除并保证不被收录,可以使用 noindex 标签并配合 URL 移除工具。
搜索引擎会优先采纳匹配路径更长的一条规则。例如 Disallow: /shop 和 Allow: /shop/cart.html 同时存在,由于后者的路径更长,cart.html 会被正常抓取,而其他以 /shop 开头的页面则被禁止。
没有固定的时间表,通常取决于爬虫抓取该文件的周期,一般从几小时到几天不等。修改后可以主动通过搜索引擎的站长工具提交文件内容,以提醒爬虫尽快更新。
robots.txt 虽小,却是一个网站与搜索引擎之间沟通的重要桥梁。合理的配置能节省爬虫资源,提升优质内容的收录效率;不当的规则则可能带来整站消失的风险。建议你在完成任何修改后,都借助站长工具的测试功能进行检查,同时把更新文件的时间记录在案,以备回溯排查。