Cloudflare WAF User-Agent 白名单配置指南

Cloudflare WAF User-Agent 白名单配置指南

作者: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 白名单?

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 做白名单。

常见场景包括:

  1. AI 平台无法抓取公开文章或产品页;
  2. SEO、可用性监控频繁收到 403;
  3. 社交分享预览机器人被挑战;
  4. API 合作方有固定客户端标识;
  5. 站点开启严格 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 平台,可用于观察放行后的回答变化。

AI 爬虫 User-Agent 放行与日志验证流程

Cloudflare 后台配置步骤

配置 Cloudflare WAF User-Agent 白名单时,建议按“新建规则、低风险生效、观察日志、逐步扩大”的顺序操作。

  1. 进入 Cloudflare Dashboard;
  2. 选择对应站点;
  3. 打开 Security → WAF → Custom rules
  4. 新建规则,例如命名为“Allow selected AI crawlers”;
  5. 在表达式编辑器中粘贴 UA 与路径条件;
  6. Action 选择 Skip
  7. 只勾选需要跳过的规则组件;
  8. 保存并部署;
  9. Security Events 查看是否命中;
  10. 用源站日志确认状态码从 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 秒即可生成首份包含提及率与核心结论的报告,并可进一步分析引用来源。

Cloudflare WAF User-Agent 白名单与 robots.txt、llms.txt 的关系

推荐的上线与回滚策略

白名单规则上线应当先小范围验证,再扩大覆盖,不要一次性放开所有 AI 爬虫和所有路径。

推荐节奏:

  1. 第 1 天:日志取样
    找出被拦的 UA、路径、状态码和触发规则。

  2. 第 2 天:灰度放行
    只对 1–3 个确认需要的 UA 放行公开内容路径。

  3. 第 3–7 天:观察波动
    查看请求量、错误率、源站负载和异常路径访问。

  4. 第 7 天后:复测 AI 回答
    用同一组品牌、品类和竞品问题复测提及率、推荐位次与引用来源。

  5. 出现异常时:立即回滚
    先禁用规则,再缩小路径或改用 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、站点地图和页面入口。两者要结合日志判断。