robots.txt 是网站根目录下一个不起眼的纯文本文件,却掌控着搜索引擎爬虫的访问边界。配置得当,它能保护敏感目录、节约服务器资源,并引导爬虫高效抓取;配置失误,则可能导致整站被屏蔽或后台页面被收录。以下从规则原理到实操细节,帮助你系统掌握这份文件的编写方法。
简单来说,robots.txt 通过明确的指令向搜索引擎爬虫传达“哪些路径可以来,哪些路径不要碰”的信息。它本质是一份公开的君子协定,Google、百度、Bing 等主流引擎会遵守,但并非强制性的安全防护手段。
在网站运营中,它的价值主要体现在三类场景:
必须明确一点:这个文件对任何互联网用户都是公开可读的。因此,包含用户隐私、数据库连接或付费资源链接的目录,绝不能只依赖 robots.txt 来隐藏,必须配合服务器端的访问控制或登录验证。
robots.txt 的语法非常简洁,一条规则一行,格式为“字段名: 值”。字段名不区分大小写,但路径部分严格区分大小写。大多数情况下,每个爬虫分组由 User-agent 开始,后跟若干规则。
这段规则表达了三层含义:第一,所有爬虫均被禁止访问 admin 目录;第二,该目录下的 public-info.html 文件是例外,允许抓取;第三,向爬虫告知了站点地图的位置。这里的关键在于匹配规则:最长的匹配路径优先,当 Allow 规则比 Disallow 规则匹配得更具体时,Allow 生效。
动手编写前,先梳理网站结构,再做规则规划,能避免许多后续调整的麻烦。
路径匹配遵循前缀匹配原则,因此 /private 会同时匹配 /private/index.html 和 /private-files/。若只想屏蔽前者,应写成 /private/。此外,星号(*)可在路径中充当通配符,美元符号($)可表示路径末尾,例如 /print$ 只匹配以 print 结尾的 URL。但要注意,不同搜索引对通配符的支持程度不一,基础规则尽量使用简单直接的路径,以兼容更多引擎。
很多网站管理者在配置时容易踩坑,以下是几个高频问题及规避方法。
这是一个典型误解。robots.txt 只是“请”爬虫不要访问,它不会阻止恶意访问。任何含有登录凭据、用户数据或未发布内容的路径,必须用服务器端的认证机制来保护。如果仅靠 robots.txt,这些信息可能被搜索引擎缓存或其他工具抓取并公开。
编写时误将 Disallow: / 当作默认配置,或者复制了测试环境的规则,都会导致整站被屏蔽。这类问题通常在改动后一两天内就会反映为收录量骤降。建议在修改文件后,使用搜索引擎的模拟抓取工具,检查首页和关键页面是否正常返回。
有的站点地图文件早已更新,但 robots.txt 中的 Sitemap 行仍指向旧地址。这会导致爬虫抓取失败,延误新内容的收录。每次更新站点地图后,应同步核对 robots.txt 中的声明。
搜索引擎的爬虫会定期重新抓取 robots.txt 文件,通常在两到四十八小时内生效。你可以通过搜索引擎站长平台主动提交该文件,加速规则变更的生效过程。
规则按顺序读取,匹配时采用最长匹配优先原则。也就是说,路径字符数更长的那条规则优先执行。如果两条规则匹配长度一致,则以先出现的规则为准。建议在编写时特意避免这种重叠,增加规则的可读性。
Google 官方明确表示忽略 robots.txt 中的 Crawl-delay 指令。如果抓取速度过快导致服务器异常,应通过 Google Search Console 的爬取速率设置来控制。百度、Bing 等其他引擎则可能支持该指令,不必特意删除。
robots.txt 是一个简单但影响深远的配置文件。掌握每个字段的含义、遵循物理路径的前缀匹配规律,并避免将其用于安全防护,是配置正确性的核心。建议完成编写后,逐一检查是否有遮挡整站的误伤规则,并定期复查文件中的 Sitemap 链接是否有效。把这些基础工作做扎实,网站的抓取效率和索引质量都能得到稳步提升。