robots.txt是一个位于网站根目录的文本文件,用来告知搜索引擎爬虫哪些页面可以抓取,哪些页面应当忽略。正确配置它,既能保护后台目录、用户数据等敏感信息,又能确保核心页面稳定出现在搜索结果中。配置失误则可能导致页面漏抓,甚至整个站点索引异常,因此值得仔细对待。
robots.txt的结构由多个规则组构成,不同规则组之间以空行分隔,每个组内通过若干指令对特定爬虫的访问行为进行约束。
路径匹配遵循前缀匹配原则,而且大小写敏感。例如,“/Images”与“/images”会被视为两个完全不同的路径。另外要留意,尽管Allow指令已被主流搜索引擎广泛支持,但仍有部分小众爬虫并不理会它,所以对于流量关键的页面,不能单纯依赖Allow来确保其可被访问。
一个最基础的配置示例如下:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
要兼顾隐私保护与抓取效率,可以按照下面几个步骤来逐步完成配置。
实际操作中,有几类错误出现的频率较高,需要特别注意。
文件放置位置不对。robots.txt必须位于域名根目录,一旦放到子目录下,爬虫就无法读取。访问“https://你的域名.com/robots.txt”应该能直接看到内容,如果返回404,说明位置有问题。
路径大小写混乱。由于匹配规则区分大小写,如果屏蔽了“/User”,但实际路径是“/user”,规则就不生效。建议在编写前先确认服务器上目录的真实命名,并保持前后一致。
使用通配符不当。虽然“*”和“$”在部分搜索引擎中支持通配匹配,但并非所有爬虫都支持。为了保证兼容性,最好使用具体前缀路径,不要依赖过于复杂的通配符写法。
误屏蔽整站。如果Disallow写成了“Disallow: /”,所有爬虫都会被拒之门外,站长工具里会看到索引量骤降。只有在网站需要完全关闭抓取时(如测试环境)才使用这种写法。
此外,修改robots.txt后,搜索引擎重新抓取并生效通常需要一些时间,短期内看不到变化并不代表规则有问题,可以借助站长工具里的“抓取测试”功能来核对实时返回内容。
对于大型站点,robots.txt也可以由程序动态生成。例如,根据不同环境(开发、预发布、生产)输出不同的内容,或者依据服务器状态临时屏蔽某些目录。这种方式灵活,但需要确保生成逻辑不异常,否则可能导致整站规则失效。
还有一些细节值得注意:robots.txt不适用于阻止包含敏感信息的页面被爬取,因为它只是“君子协定”,真正需要保密的内容应当配合登录验证或noindex标签使用。另外,对于资源文件(如JS、CSS),不建议在robots中屏蔽,因为这会影响爬虫对页面渲染效果的理解,进而影响排名判断。
正常情况下,配置错误不会直接引发搜索引擎惩罚,但可能造成页面无法收录、索引量骤降等后果。尤其是误将“Disallow: /”写入线上环境,会使整个网站从搜索结果中消失,需要及时修正并等待爬虫重新抓取。
不同规则块之间相互独立。爬虫在匹配时,会优先查看是否有针对自己名称的精确规则块;如果存在,就使用该块的指令,忽略其他块。如果没有精确匹配,则可能采用“User-agent: *”的通用规则。
搜索引擎不会实时重新抓取robots.txt,生效时间从几分钟到几天不等。大多数情况下,一周内即可完全生效。若想加速,可以在站长平台中手动提交robots.txt内容,或者触发一次抓取。
配置robots.txt属于典型的“小事不小”的工作。建议在动手前先梳理全站目录,写完后用浏览器实际访问校验,再通过站长工具确认抓取结果。把每一步验证落实到位,就能在保护隐私和提升收录效率之间找到稳定的平衡点。