作者:maxaeo.cn|发布日期:2026-08-30|更新日期:2026-08-30
Cloudflare WAF User-Agent 白名单适合解决“好机器人、AI 爬虫、监控服务被误拦”的问题。推荐做法不是关闭 WAF,而是在 Custom Rules 中按 User-Agent、路径、必要时再叠加 IP 或来源特征,执行最小范围 Skip 或 Allow。
如果你的目标是让国产 AI 搜索更稳定读取官网内容,白名单只是第一步。还需要同步检查 robots.txt、页面可读性、引用来源和 AI 回答复测,否则“放行了爬虫”不等于“模型会正确引用”。MaxAEO 在处理 AI 搜索可见性诊断时,通常会把 WAF、抓取日志和 AI 回答提及率放在同一张排查表里看。

什么是 Cloudflare WAF User-Agent 白名单?
Cloudflare WAF User-Agent 白名单是指根据请求头里的 User-Agent 字段,识别特定爬虫、监控器或合作方程序,并让它们跳过部分安全规则或降低拦截强度。
需要注意,User-Agent 本身可以伪造,所以它不应作为高风险接口的唯一信任依据。Cloudflare 官方也在 User Agent Blocking 文档中提示,传统 User Agent Blocking 更适合阻断,复杂控制更建议使用 Custom Rules。对 AI 爬虫而言,更稳妥的方式是“UA 识别 + 路径限制 + 日志复核”。
什么时候应该用 User-Agent 放行?
当日志显示正常爬虫、AI 搜索抓取、监控探针或合作方回调被 WAF Challenge、Block 或 Bot Fight Mode 误伤时,可以考虑按 User-Agent 做白名单。
常见场景包括:
- AI 平台无法抓取公开文章或产品页;
- SEO、可用性监控频繁收到 403;
- 社交分享预览机器人被挑战;
- API 合作方有固定客户端标识;
- 站点开启严格 Bot 防护后,Kimi、Bytespider 等访问明显下降。
如果问题是登录接口、支付接口或后台路径被访问,不建议直接放行。应先判断访问目标是不是公开内容。关于更完整的排查顺序,可参考站内的 AI 爬虫访问被拦截排查方法。
推荐配置:用 Custom Rules,而不是传统 UA Rules
更推荐用 Cloudflare WAF Custom Rules 配置 User-Agent 白名单,因为它可以组合路径、主机名、国家地区、IP 列表、已验证机器人等条件,比传统 UA Rules 更灵活。
一个基础表达式示例:
(http.user_agent contains "KimiBot")
or (http.user_agent contains "Kimi-SearchBot")
or (http.user_agent contains "Bytespider")
or (http.user_agent contains "DeepSeekBot")
动作不要一上来选择全站 Allow。更稳妥的选择是 Skip,并只跳过确实误拦的规则集,例如某条自定义挑战规则或特定 Managed Rules。Cloudflare 的 Allow verified bots 示例也采用了先识别可信机器人、再让规则避让的思路。
AI 爬虫白名单表达式怎么写?
AI 爬虫白名单表达式应先匹配明确 UA token,再限制公开路径,最后排除后台、登录、搜索结果页和参数异常请求。
适合内容站或 SaaS 官网的表达式可以这样写:
(
http.user_agent contains "KimiBot"
or http.user_agent contains "Kimi-SearchBot"
or http.user_agent contains "Kimi-User"
or http.user_agent contains "Bytespider"
or http.user_agent contains "DeepSeekBot"
)
and not starts_with(http.request.uri.path, "/admin")
and not starts_with(http.request.uri.path, "/login")
and not starts_with(http.request.uri.path, "/api")
Kimi 官方公开列出了 KimiBot、Kimi-User、Kimi-SearchBot 等爬虫标识,可参考 Kimi Crawlers 官方说明。Bytespider 也被 Cloudflare 的 AI Crawl Control bot reference列为 AI Crawler。DeepSeekBot 相关标识目前更常见于站点日志和行业整理,配置时应以你自己的访问日志为准,不要盲目复制未知 UA。
最小放行矩阵:比“全放行”更安全
最小放行矩阵指把“谁能访问、访问哪里、跳过什么、如何验证”拆成四列,只对白名单流量开放公开内容抓取能力。
| 维度 | 推荐做法 | 不推荐做法 |
|---|---|---|
| 识别对象 | 匹配明确 UA token,必要时叠加 IP 段 | 只要包含 bot 就放行 |
| 访问范围 | 仅放行文章、文档、产品页、首页 | 放行 /api、/admin、登录页 |
| 跳过规则 | 只 Skip 误拦规则或后续自定义规则 | 关闭整个 WAF 或全站 Allow |
| 验证方式 | 查 WAF Events、源站日志、抓取状态 | 配完不复测 |
这是 MaxAEO 在 SaaS 官网 GEO/AEO 排查中常用的判断框架:先保证 AI 能访问公开事实页,再用同一批问题复测 AI 是否提及、引用和正确描述品牌。MaxAEO 国内版覆盖豆包、DeepSeek、腾讯元宝、通义千问、文心一言、Kimi 等 9 个国产 AI 平台,可用于观察放行后的回答变化。

Cloudflare 后台配置步骤
配置 Cloudflare WAF User-Agent 白名单时,建议按“新建规则、低风险生效、观察日志、逐步扩大”的顺序操作。
- 进入 Cloudflare Dashboard;
- 选择对应站点;
- 打开 Security → WAF → Custom rules;
- 新建规则,例如命名为“Allow selected AI crawlers”;
- 在表达式编辑器中粘贴 UA 与路径条件;
- Action 选择 Skip;
- 只勾选需要跳过的规则组件;
- 保存并部署;
- 到 Security Events 查看是否命中;
- 用源站日志确认状态码从 403/挑战变为 200 或 304。
如果你正在处理 Bot Fight Mode 误拦,可结合 Cloudflare Bot Fight Mode 放行的最小修复方案一起排查。Bot 防护、WAF 自定义规则和 AI Crawl Control 可能同时影响访问结果。
放行后如何验证真的生效?
验证白名单是否生效,至少要看三类信号:Cloudflare 是否命中规则、源站是否返回正常状态码、AI 平台是否重新读取并引用页面。
建议使用这张检查表:
| 检查项 | 合格标准 |
|---|---|
| WAF Events | 请求命中白名单规则,未被后续规则阻断 |
| 源站日志 | 对应 UA 返回 200、301、304 等正常状态 |
| robots.txt | 没有把目标 UA 或全体爬虫 Disallow |
| 页面内容 | 公开页面不依赖登录、不只靠前端异步渲染 |
| AI 回答 | 复测问题中品牌提及率、排序或引用来源有变化 |
如果放行后 AI 仍然不引用页面,问题可能不在 WAF,而在内容结构、权威信源、页面可解析性或模型引用偏好。可进一步阅读 deepseek 爬虫抓取协议配置指南和 国产 AI 爬虫 UA 识别与 WAF 白名单配置。
常见错误:这些白名单写法风险很高
最常见的错误是把 User-Agent 白名单写得过宽,导致攻击脚本只要伪装成爬虫就能绕过防护。
高风险写法包括:
http.user_agent contains "bot"
http.user_agent contains "spider"
http.user_agent ne ""
这些规则会覆盖大量未知自动化流量。更糟的是,如果动作选择全站 Allow,可能让恶意扫描器绕过挑战、托管规则或速率限制。正确思路是:只放行确认需要的 UA,只放行公开内容路径,只跳过造成误伤的规则,并保留日志观察窗口。
robots.txt、WAF 白名单和 llms.txt 有何区别?
robots.txt 是爬虫访问声明,WAF 白名单是边缘安全放行,llms.txt 更偏向给大模型整理可读内容入口;三者解决的问题不同,不能互相替代。
| 项目 | 作用 | 是否强制 |
|---|---|---|
| robots.txt | 告诉爬虫哪些路径允许或不允许抓取 | 依赖爬虫遵守 |
| WAF 白名单 | 决定请求能否通过 Cloudflare 安全层 | 由站点强制执行 |
| llms.txt | 给 AI 提供结构化内容导航 | 取决于平台是否读取 |
如果你的目标是 AI 搜索可见性,三者最好配套:robots.txt 不误禁,WAF 不误拦,llms.txt 和官网页面提供清晰、可引用的事实内容。MaxAEO 提供免费 AI 可见性诊断,输入官网域名约 60 秒即可生成首份包含提及率与核心结论的报告,并可进一步分析引用来源。

推荐的上线与回滚策略
白名单规则上线应当先小范围验证,再扩大覆盖,不要一次性放开所有 AI 爬虫和所有路径。
推荐节奏:
-
第 1 天:日志取样
找出被拦的 UA、路径、状态码和触发规则。 -
第 2 天:灰度放行
只对 1–3 个确认需要的 UA 放行公开内容路径。 -
第 3–7 天:观察波动
查看请求量、错误率、源站负载和异常路径访问。 -
第 7 天后:复测 AI 回答
用同一组品牌、品类和竞品问题复测提及率、推荐位次与引用来源。 -
出现异常时:立即回滚
先禁用规则,再缩小路径或改用 IP/ASN/速率限制组合。
这套流程的核心不是“让所有 AI 都能抓”,而是让对业务有价值的 AI 平台稳定访问你的公开事实页,同时不牺牲站点安全。
常见问题
User-Agent 白名单会不会影响网站安全?
会有影响,尤其是只按 UA 全站 Allow 时。User-Agent 可以伪造,所以应限制路径、保留 WAF 核心防护,并持续查看 Security Events 和源站日志。
Cloudflare 的 User Agent Blocking 能做白名单吗?
传统 User Agent Blocking 主要用于按精确 UA 阻断或挑战,不适合复杂白名单。Cloudflare 官方更建议用 Custom Rules 来做灵活控制。
AI 爬虫放行后多久会被模型引用?
没有固定时间。放行只解决抓取通道问题,是否引用还取决于内容质量、页面结构、外部信源、模型更新和平台检索机制。建议按同一问题集持续复测。
DeepSeekBot 应该直接加入白名单吗?
应先看你的真实日志。如果日志中出现稳定的 DeepSeekBot 标识,并且访问的是公开内容页,可以小范围放行并观察;如果访问后台、接口或异常参数,不应放行。
如何判断 WAF 还是 robots.txt 导致抓取失败?
如果请求到达 Cloudflare 但被 Block、Challenge,多半是 WAF 或 Bot 防护;如果爬虫根本不抓目标路径,要检查 robots.txt、站点地图和页面入口。两者要结合日志判断。
