robots.txt 是一个存放在网站根目录的纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取,哪些页面应当跳过。配置得当,它能帮你合理分配抓取配额、保护敏感目录;配置失误,则可能导致整站页面从搜索结果中消失。本文将围绕它的语法结构、匹配逻辑和易错点展开,帮你避开那些常见的坑。
robots.txt 本质上是爬虫与站点之间的一种君子协定,主流搜索引擎都会遵守其中的指令,但它并非强制规范,更不能当作安全防线来用——文件内容对任何人都是公开可见的。
在实际操作中,它主要解决三类需求:一是屏蔽后台管理目录、内部测试站或尚未完成的页面,防止它们被索引;二是阻止爬虫抓取带有大量跟踪参数的 URL,避免浪费抓取配额;三是在文件中声明 Sitemap 地址,帮助爬虫更快摸清站点的内容结构。
需要特别留意的是,任何访客都能直接通过浏览器访问并查看该文件。因此,涉及用户隐私数据、登录接口或内部系统信息的路径,绝不可依赖 robots.txt 来保护,必须配合登录验证、IP 白名单等更严格的访问控制手段。
robots.txt 的书写格式是"字段名: 值",每行一条规则。字段名不区分大小写,但路径部分严格区分大小写。掌握以下五个核心字段,就能应对大部分场景。
假设网站有一个内部目录 /admin/,但其中 /admin/login.html 需要被搜索引擎正常收录,同时要告知爬虫 Sitemap 的位置,配置可以写成:
User-agent: *
Disallow: /admin/
Allow: /admin/login.html
Sitemap: https://www.example.com/sitemap.xml
这段规则表达的意思很明确:默认禁止所有爬虫抓取 admin 目录下的内容;但 login.html 属于例外,予以放行;同时附上 Sitemap 地址供爬虫参考。
写 robots.txt 并不难,难的是匹配顺序的细微差别常常带来意想不到的后果。遵循规范的操作流程,能有效降低误伤风险。
匹配时,爬虫会按文件中的顺序逐条比对规则,以字符长度最长且最先匹配到的规则为准。换句话说,长度更精确的路径优先级更高。比如单独设一条 Disallow: /images/,再设一条 Allow: /images/logo.png,爬虫抓取 logo.png 时会优先遵循 Allow 规则。
一个常见误区是认为 Disallow 留空即表示"不限制"。实际上,Disallow 留空等同于该字段不存在,不会对任何路径生效。若想禁止抓取,必须明确写出具体的路径或斜杠。
配置 robots.txt 时,不少站长会栽在以下细节上,值得逐一审视。
robots.txt 的路径值是区分大小写的。若你屏蔽的是 /Product/,而实际目录是 /product/,规则便不会生效。此外,星号(*)和美元符号($)是标准的通配符——前者匹配任意字符序列,后者匹配路径结尾,但并非所有爬虫都完整支持,谨慎使用更稳妥。
前面已经强调过,robots.txt 对所有人可见,不能隐藏敏感信息。真正的隐私保护必须依靠服务器的访问权限控制,比如设置登录口令或限制特定 IP 访问。把关键数据仅靠 robots.txt 遮蔽,无异于把机密文件放在透明柜子里。
当同一条路径同时命中 Allow 和 Disallow 规则时,以更长的匹配路径为准;若长度一致,则按文件中出现的先后顺序决定。因此,书写规则时尽量保持逻辑清晰,先宽后严,并定期用工具复查,避免规则之间静默冲突。
建议使用纯文本格式,文件编码统一为 UTF-8(无 BOM)。这能避免中文字符或特殊符号在部分爬虫端解析出错,确保规则被正确读取。
改版后建议及时清理无用的历史规则。长期保留旧路径的 Disallow 可能造成资源浪费,甚至阻碍新页面的索引。每次结构变动后,都以当前目录为准重新审视一遍 robots.txt 是明智的做法。
恢复时间不定,通常取决于搜索引擎重新抓取该文件的频率。一般从数天到数周不等。修正错误后,建议利用搜索引擎的 URL 提交工具加速,同时保持页面内容质量稳定,以缩短周期。
robots.txt 是网站与搜索引擎沟通的第一道工序,看似简单却充满细节。动手配置前先梳理目录和需求,配置后再用工具验证匹配逻辑,同时牢牢记住它只是协作协议而非安全措施。建站之初就养成定期审核该文件的习惯,能有效规避因规则失误导致的收录问题。建议你现在就检查一遍网站的 robots.txt,确认它对重要路径的指令是否符合预期。