对于网站运营者来说,robots.txt 是一份决定搜索引擎爬虫行为的关键文件。它既能保护后台数据不被索引,也能引导抓取资源流向核心内容。然而,配置不当引发的后果往往被低估,类似全站不被收录、敏感页面意外泄露等问题,很多都源于这份文件的微小疏漏。
文件必须以小写字母命名,即 robots.txt,并置于站点根目录。正确访问路径大致为 yourdomain.com/robots.txt。文件内部由多个独立规则块组成,块与块之间需用空行分隔,避免解析时发生混淆。
每个规则块需要先声明 User-agent(指定哪个爬虫),随后跟上具体的 Disallow(禁止)或 Allow(允许)指令。指令书写格式为“字段名: 值”,如 Disallow: /private/。字段名不区分大小写,但路径值部分通常区分大小写,建议统一使用小写路径以避免不必要的麻烦。
注释信息以井号(#)开头,既可单独占用一行,也可以接在指令后面。善用注释能让后期维护变得轻松许多,尤其在规则复杂时。
若想禁止所有搜索引擎访问整站,可以采用星号通配符来指示全部爬虫,配合根路径实现:
User-agent: *
Disallow: /
仅屏蔽某个目录,比如后台或缓存文件夹,写法如下:
User-agent: *
Disallow: /admin/
Disallow: /cache/
一个高频错误是遗漏目录末尾的斜杠。Disallow: /admin 会匹配所有以 admin 开头的路径,包括 /administrator 或 /admin-tools。如果这些页面并不想被屏蔽,就会产生非预期的收录问题。因此,除非确实需要前缀匹配,否则目录路径务必带上结尾斜杠。
当需要屏蔽一个目录,但保留其中某个特别子目录时,灵活组合指令即可解决。以屏蔽博客全部内容、只放行专题板块为例:
User-agent: *
Disallow: /blog/
Allow: /blog/special/
这里涉及到匹配优先级:若规则路径长度一致,Allow 的优先级高于 Disallow;若路径长度不同,则较长、更具体的规则优先。所以以上写法能准确让 /blog/special/ 被爬虫访问。
很多配置问题并非出在指令本身,而是藏在细节里。常见情况包括:文件放置在子目录而非根目录,导致规则完全不生效;文件中出现 BOM 字符或非法空行,影响解析;或者误将站点地图地址写在 Disallow 之后,造成注释或格式错乱。
此外,需要注意 robots.txt 只能拦截爬虫,并不能阻止普通用户访问相关页面。如果涉及真正敏感的数据,应配合 HTTP 认证或服务器端权限验证来保障安全。任何不希望被访问的内容,都不应仅依靠这份文件来保护。
规则变更后,与其猜测效果,不如借助搜索引擎站长工具进行在线测试。部分工具支持模拟特定爬虫的抓取视图,能直观展示规则是否按预期生效。建议每次修改后都实际验证一次,尤其是当文件包含多条规则时。
不同搜索引擎的爬虫(如 Googlebot 与 Bingbot)对相同指令的解析存在细微差别,尤其体现在通配符的支持程度与抓取间隔指令(Crawl-delay)的认同上。若站点服务于全球访客,务必在为不同 User-agent 单独设置规则时,反复核验目标爬虫对应的文档。
为特定爬虫单独建立规则区块,可以避免全局配置对其造成误伤。例如,某些图片爬虫可能不需要访问后台接口,或者某些搜索爬虫应被限制访问高频接口以减轻服务器压力。分块管理的好处在于,当某个爬虫行为异常时,可以快速定位对应规则。不过,分块越多,维护成本与出错概率也越高,因此建议仅在确有差异需求时使用。
并非必须,但强烈建议添加。在文件中标注 Sitemap 位置,可以帮助爬虫更快发现新页面或更新内容,提升收录效率。格式一般为 Sitemap: https://yourdomain.com/sitemap.xml,该指令不归属于任何 User-agent 区块,通常放于文件末尾。
部分爬虫支持使用星号(*)和美元符号($)实现模糊匹配或锚定匹配,例如 Disallow: /*?page= 来拦截带特定参数的 URL,或 Disallow: /download/*.zip$ 仅屏蔽 zip 文件。但并非所有爬虫都遵循这套规则,使用前应查阅目标引擎的官方说明,否则可能出现预期之外的访问结果。
没有固定时限。搜索引擎会周期性重新抓取 robots.txt,短则数小时,长则数天。如需加速更新,可使用站长工具主动提交或请求抓取。规则修改后,此前已被索引的页面并不会立即从搜索结果中消失,需要等到爬虫再次访问并依据新规则处理后才会逐步调整。
一份可靠的 robots.txt 需要兼顾语法准确与语义清晰。关键在于始终留意目录路径的结尾斜杠、验证 Allow 与 Disallow 的优先级规则,并定期测试文件是否被正常解析。建议为每次更新留下记录,并借助站长工具模拟验证。此外,切勿将隐私保护寄托于该文件,真正的敏感数据必须依赖更底层的访问控制。扎实做好细节,才能让爬虫为你的站点效力,而不是添乱。