不少网站明明只是想屏蔽采集器,结果连搜索引擎蜘蛛一起挡在门外。
也见过有人在 robots.txt 里写了一堆看起来很专业的 User-Agent,实际上一个都没生效,服务器还是被爬得一塌糊涂。
接下来小编就从实际站长视角出发,聊一聊 robots.txt 里的 User-Agent 到底该怎么写,才能尽量少踩坑、不出问题。

User-Agent 就是你在告诉搜索引擎或爬虫,“我现在说的规则是给谁看的”。
比如最常见的:User-agent: * Disallow: /admin/
这里的 *,代表的是所有爬虫,包括搜索引擎蜘蛛、采集工具、某些自动化脚本等。
而如果你写成:User-agent: Googlebot Disallow: /test/
那意思就是:只限制 Google 的爬虫,其他爬虫不管。
所以,User-Agent 写不写对,直接决定了你的 robots 规则有没有生效。
很多新手会犯一个错误:只凭爬虫名字判断身份。比如看到请求头里写着 Googlebot,就默认是谷歌蜘蛛。
但实际上,现在伪造 User-Agent 的工具太多了,光靠字符串根本不靠谱。
这里就涉及到 User-Agent 解析 的问题了:
• 是否符合官方 UA 规范
• 是否携带合理的系统信息
• 是否和 IP 段匹配
• 行为是否像正常搜索引擎爬虫
这也是为什么有些站长明明在 robots.txt 里放行了 Googlebot,结果还是被异常抓取拖垮服务器。
这类写法没问题,但前提是你真的不打算限制任何爬虫。
如果你有后台、测试目录、重复内容页面,建议还是单独加规则。
比较稳妥的写法是:
这样做的好处是:
• 可读性强
• 后期排查问题更方便
• 避免被通配规则误伤
网上有些教程会教你屏蔽一堆“看起来很高级”的 UA,但很多其实根本不存在。robots.txt 不会报错,但写了等于白写。
现在很多采集器、自动化工具,根本不看 robots.txt,它们更在意的是:
• 浏览器指纹检测
• 行为轨迹
• 请求频率
• JS 执行能力
也就是说,就算你 User-Agent 写得再完美,如果没有基础的浏览器指纹检测,对方照样可以模拟一个“看起来很真实”的爬虫。
这也是现在很多站点开始结合 指纹识别 + 行为分析 来做访问控制的原因。
用ToDetect指纹查询工具 来做辅助判断,你可以看到:
• UA 是否被大量工具复用
• 是否存在异常指纹组合
• 是否符合正常浏览器环境
• 是否存在明显的自动化特征
这一步对于判断“是真蜘蛛,还是假爬虫”非常有帮助,尤其适合中大型站点。
• robots.txt 区分大小写,User-Agent 建议按官方写法
• 不要在同一个 User-Agent 下写冲突规则
• 修改 robots 后记得清缓存、重新测试
• 搜索引擎对 robots 生效有延迟,不是立刻见效
这些细节不注意,很容易误以为“robots 没用”。
如果你的网站已经开始被频繁采集、刷流量,那就别再指望只靠一行 User-Agent 规则“挡天下”。
robots.txt里的User-Agent 一定要写真实、写规范,不要只依赖 User-Agent解析 + 行为判断更靠谱。
想防采集robots只是第一步,ToDetect浏览器指纹检测才是关键,如果你站点规模较大,那就一定要往指纹和行为层面再走一步。