当搜索引擎爬虫访问网站时,第一步往往是查看根目录下的 robots.txt 文件。这个纯文本文件是站点管理员与爬虫之间的对话窗口,它清晰划定了哪些页面可以进入,哪些区域需要回避。一份合理的 robots.txt 配置,不仅能够保护后台和数据不被误收录,还能引导爬虫把精力集中在高价值内容上。
robots.txt 文件必须放置在网站根目录(例如 https://yourdomain.com/robots.txt),以 UTF-8 编码保存,每行一条指令,路径区分大小写。理解以下核心字段是配置的第一步:
一个典型的配置示例:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
此配置的核心逻辑是:所有爬虫均可进入站点,但 /private/ 目录整体被禁止访问,其中 /shared/ 子目录作为例外允许抓取。需要留意的是,既然 Allow 并非通用指令,当爬虫不支持时,更严格的 Disallow 规则会占据上风,因此不能将放宽目录的希望完全寄托在 Allow 上。
不同性质的网站对抓取管理的需求大相径庭。下面三种策略覆盖了最常见的应用场景。
对于内容更新频繁的资讯站或博客,目标是让爬虫尽量多收录页面。此时可以用空的 Disallow 指令:
User-agent: *
Disallow:
省略 Disallow 行效果等同。新手最常见的失误是误写为 Disallow: /,这一行会让所有爬虫终止访问,导致网站收录完全停滞,必须警惕。
当你不想让某一家搜索引擎收录内容时,可以单独为该爬虫设立规则,不干扰其他引擎的正常抓取:
User-agent: Baiduspider
Disallow: /
这条规则只针对百度的爬虫生效,Google 与 Bing 等不受牵连。设置前务必查阅对应搜索引擎的官方文档来确认爬虫的准确名称,名称拼写有误会使规则完全失效。
大型网站的抓取配额是宝贵资源,需要针对优先级进行配置。借助通配符可以精确地控制抓取区域:
User-agent: *
Disallow: /*?
Disallow: /directory/*.pdf
上述规则禁止了带参数的动态链接和指定目录下的 PDF 文件,从而保护爬虫预算不被低价值页面消耗。需要注意的是,通配符支持因搜索引擎而异,Google 对 * 和 $ 支持良好,而部分引擎并不认识这些符号,配置前应提前验证目标爬虫对通配符的兼容性。
配置 robots.txt 时的操作失误,往往比不配置更致命。以下几个误区值得格外留意。
第一个常见误区是误设全站禁止收录。很多站长在修改文件时不小心将 Disallow 写成了 Disallow: /,导致网站一夜之间从搜索引擎消失。修改配置后务必用浏览器模拟爬虫访问 robots.txt 文件,检查每一行的实际指向。
第二个误区是忽视字符编码与格式问题。文件应当使用 UTF-8 无 BOM 格式保存,不允许出现中文字符或全角引号,否则指令可能无法解析。另外,路径区分大小写,/Admin 与 /admin 是两个不同目录,写错会导致权限设置失效。
第三个误区是把 robots.txt 当作隐藏敏感信息的工具。该文件是公开可访问的,它只针对合规的爬虫,并不能阻止恶意抓取或数据采集。想保护后台登录页面,应当依靠服务器层面的 IP 限制或认证机制,而非仅依赖 robots.txt。
编写完成并非终点,验证配置的生效情况才是关键。以下是常见的检查方法:
配置并不是一成不变的。网站改版、路径调整或迁移 https 后,都应重新审查该文件。出现收录异常时,第一个排查对象就是它。同时,注意不要把 Sitemap 指令与页面规则混淆,部分搜索引擎需要在该行填写网址时确保使用完整的绝对地址。
对大多数搜索引擎而言,两者效果相同,均表示允许抓取。但留空一行的写法更为明确,便于后来者理解配置意图,避免误读。
不能。该文件只是合规的访问协议,对没有遵守协议的恶意爬虫毫无约束力。应对盗采或攻击,应通过服务器防火墙、验证码或 IP 限制等手段实现。
官方标准并不支持正则表达式,但 Google 等搜索引擎支持 * 和 $ 等通配符。其他引擎对通配符的支持程度不一,使用前应提前核实目标爬虫的文档说明。
配置 robots.txt 的关键在于理解语法、结合场景、避开陷阱。建议先规划好哪些目录必须保护、哪些路径需要放行,再动手编写;配置完成后通过官方工具和日志进行验证。同时定期检查配置的有效性,确保爬虫能够高效访问最有价值的内容页面,从而保证收录质量与网站访问顺畅。