robots.txt 是网站根目录下一个不起眼却影响深远的文本文件。它负责向搜索引擎爬虫传达抓取许可信息,直接关系到页面能否被收录以及抓取预算如何分配。配置得当,网站的核心内容能被更快发现;配置失误,则可能让重要页面从搜索结果中消失。本文围绕其作用、语法细节和典型错误展开说明。
这个文件本质上是网站与爬虫之间的一份公开协议。它告诉来访的爬虫哪些路径可以进入,哪些路径应避开。主流搜索引擎通常都会遵守其中的规则,但它并非强制性的安全屏障。
合理使用 robots.txt 能带来几方面好处:一是屏蔽后台管理界面、临时测试页等不需被抓取的内部区域;二是阻止爬虫抓取大量带跟踪参数、内容高度重复的动态地址,从而为真正的优质内容留出更多抓取机会;三是通过在其中声明 Sitemap 地址,帮助爬虫更快勾勒出全站内容地图。
需要牢记的是,该文件对所有访问者一律公开,任何浏览者都能查看其内容。想要隐藏真实的敏感数据或内部接口,应依赖密码验证、IP 白名单等手段,而不是指望 robots.txt 来保护。
robots.txt 采用声明式写法,每行由“字段值”构成,指令名不区分大小写,而路径中的字母大小写则需严格区分。熟悉常用字段,即可应对大多数站点场景。
假设站点存在一个 /admin/ 路径不希望被收录,但其中有一页公开说明需要被索引,同时还需告知爬虫地图位置。配置文件可以这样构思:
User-agent: *
Disallow: /admin/
Allow: /admin/public-info.html
Sitemap: https://www.yourdomain.com/sitemap.xml
这段配置传达了三个层次:所有爬虫被禁止访问 admin 目录;public-info.html 作为例外被允许抓取;全站 sitemap 地址一同提供给爬虫。书写时需注意指令顺序,通常精确到具体路径的 Allow 规则应放在对应的 Disallow 规则之后。
规则匹配遵循最长的路径前缀优先原则。也就是说,爬虫会按顺序检查规则,并选择与请求路径匹配程度最高、字符数最多的那条规则作为最终依据。忽略这一点,容易写出逻辑混乱的配置文件。
编写过程中还应留意以下细节:
许多站点因配置不当产生隐性损失。以下几种典型问题值得警惕。
有人为了暂缓新页面收录,临时在 robots.txt 中将其 Disallow,事后忘记删除。这会导致该页面长期无法被索引,直到规则被移除并重新抓取才恢复,延误了内容上线的最佳时机。
robots.txt 的作用是阻止抓取,而 noindex 是阻止索引。面对一个希望从搜索结果移除、但入口页面上无需直接抓取的资源(如 PDF 文件),单纯靠 robots.txt 并不能保证链接不会出现在结果中。正确的逻辑应该是:允许抓取该资源,并在页面或响应头中声明 noindex。
Crawl-delay 字段对 Google 已不再适用,Sitemap 指令也并非所有引擎都认可。若站点主要流量来自不支持这些字段的搜索引擎,则这些配置很可能形同虚设,甚至让规则行为变得不可预期。
没有固定时间表。发现规则变化后,爬虫需要重新访问该文件并重新抓取相关路径,通常需要数天至数周不等。可通过搜索引擎的抓取工具主动提交验证,以加快处理进程。
可以。在 User-agent 一栏填写该爬虫的唯一标识名称,并在其后为其单独配置 Disallow 规则,即可定向拦截。前提是该爬虫确实遵循 robots.txt 协议,一些恶性爬虫可能无视此约定。
文件必须是纯文本格式,编码建议使用 UTF-8,且不应包含非法字符。每行指令长度不宜过长,避免使用特殊符号。若格式错误,可能导致整份规则被忽略,使所有内容处于可抓取状态。
配置 robots.txt 不宜求全,而应明确意图、保持简洁、定期检查。建议每半年审视一次当前文件,核对是否存在因业务调整而失效的路径规则,同时结合站点日志观察抓取异常。确保重要的内容保持开放,真正的私密数据依赖系统层面的权限控制,这样才能让这份小文件发挥最大价值。