Cloudflare 放行 llms.txt 访问:避免 AI 引擎读不到站点说明文件

Cloudflare 放行 llms.txt 访问:避免 AI 引擎读不到站点说明文件

作者:maxaeo.cn|发布日期:2026-09-06|更新日期:2026-09-06

Cloudflare 放行 llms.txt 访问,不是关闭全部防护,而是让 AI 引擎、AI 搜索爬虫和智能体能稳定读取 https://example.com/llms.txt,同时继续保护登录、后台、接口和高风险路径。正确做法是:先确认文件可读,再定位 Cloudflare 哪一层拦截,最后用最小范围规则放行并复测。

Cloudflare 放行 llms.txt 访问的排查流程图

什么是 llms.txt,为什么会被 AI 引擎读取

llms.txt 是放在网站根目录的纯文本或 Markdown 风格说明文件,用来告诉大语言模型:网站是什么、重要页面在哪里、哪些内容值得优先阅读。

Cloudflare 在“智能体就绪度”相关文章中也将 llms.txt 描述为面向 LLM 的结构化阅读清单,而不是传统搜索引擎 sitemap 的替代品;它更像是给 AI 助手看的“内容导航”。Cloudflare 开发者文档还公开使用 llms.txtllms-full.txt,前者做目录索引,后者用于更完整的离线索引或大上下文读取,见 Cloudflare AI consumability 文档

对品牌站来说,llms.txt 的价值在于降低 AI 理解官网结构的成本:产品页、价格页、文档页、案例页、更新日志可以被清晰列出。但文件存在不等于 AI 能读到,Cloudflare 的 WAF、机器人管理、访问控制、缓存和重定向都可能让读取失败。

为什么 Cloudflare 会拦住 llms.txt

Cloudflare 拦住 llms.txt 通常不是因为文件本身危险,而是请求被识别为自动化访问、异常 UA、挑战页、国家地区规则或过严的 WAF 条件。

常见现象有四类:

现象 可能原因 对 AI 可见性的影响
返回 403 WAF、自定义规则、Bot Fight Mode、UA Blocking AI 无法读取说明文件
返回 401/302 站点鉴权、重定向到登录页、区域访问限制 AI 读到错误页面
返回 HTML 挑战页 JS Challenge、Managed Challenge 非浏览器型爬虫解析失败
返回 200 但内容错误 缓存、Workers、源站路由配置错误 AI 读取到旧版本或空文件

Cloudflare 官方文档说明,自定义规则里的 Skip action 可让特定请求跳过部分安全功能;但也明确指出 Free 计划中的 Bot Fight Mode 不能被 Skip 规则绕过,相关限制见 Cloudflare WAF Skip action 文档

放行前先做 4 个基础检查

先不要急着加白名单。最稳的顺序是确认文件、源站、Cloudflare 边缘和 AI 访问语义都没有问题。

  1. 检查路径/llms.txt 必须在根目录,大小写一致,不要放成 /llm.txt/docs/llms.txt
  2. 检查状态码:普通浏览器、命令行请求都应返回 200,不要返回 301 多跳、403 或挑战页。
  3. 检查内容类型:建议返回 text/plaintext/markdown 或可被纯文本读取的响应。
  4. 检查 robots.txt:不要在 robots 中禁止重要 AI 爬虫访问根目录或关键内容页。

可用命令快速判断:

curl -I https://example.com/llms.txt
curl -A "GPTBot" -I https://example.com/llms.txt
curl -A "OAI-SearchBot" -I https://example.com/llms.txt
curl -H "Accept: text/markdown" https://example.com/llms.txt

如果普通请求是 200,而带 AI User-Agent 的请求变成 403 或挑战页,问题大概率在 Cloudflare 机器人规则、WAF 自定义规则或安全级别设置。

Cloudflare 放行 llms.txt 访问的最小规则怎么写

最小放行原则是:只放行 llms.txt 这一个路径,必要时再叠加可信 UA、方法、主机名和日志记录,不要对全站 AI 爬虫无差别放开。

一个适合多数品牌官网的表达式思路如下:

(http.request.uri.path eq "/llms.txt" and http.request.method eq "GET")

动作建议优先选 Skip,而不是全局 Allow。Skip 可以只跳过 WAF Managed Rules、Super Bot Fight Mode 或速率限制中的某些环节;Cloudflare 的 Skip options 文档显示,Skip 可按阶段跳过 rate limiting、Super Bot Fight Mode、WAF Managed Rules 等,但配置层级要与规则所在层级一致,见 Cloudflare Skip options 文档

如果你还要控制 AI 爬虫范围,可以叠加 UA 条件:

http.request.uri.path eq "/llms.txt"
and http.request.method eq "GET"
and (
  http.user_agent contains "GPTBot"
  or http.user_agent contains "OAI-SearchBot"
  or http.user_agent contains "ClaudeBot"
  or http.user_agent contains "PerplexityBot"
  or http.user_agent contains "GoogleOther"
)

但 UA 不是强身份验证。Cloudflare 学习中心提醒,AI 爬虫可通过日志中的 User-Agent 识别,且 robots.txt 更像礼节而非强制约束;完整背景可参考 Cloudflare 如何检测 AI 爬虫

若你希望更细地放行国产 AI 平台,可先参考 国产 AI 爬虫放行规则:robots、UA、WAF 与 CDN 配置清单,再把 /llms.txt 作为第一优先路径。

不建议的放行方式有哪些

不建议为了让 AI 读取 llms.txt 而关闭全站 WAF、放开所有机器人、取消所有速率限制,或把后台路径一并加入白名单。

这些做法短期看似省事,长期会制造安全与数据噪声:

  • 全站 Allow AI UA:伪造 UA 的异常请求也可能绕过防护。
  • 关闭 Bot Fight Mode 或 WAF:会影响登录、表单、API 等高风险路径。
  • 只看浏览器访问:浏览器能打开,不代表 AI 爬虫能读到。
  • 只看 200 状态码:200 也可能是验证码页、登录页或缓存旧文件。
  • 只配置 robots.txt:robots 负责声明意愿,Cloudflare 负责边缘执行,两者不是一回事。

更推荐的策略是“路径最小、规则可审计、结果可复测”。如果你已经有复杂 WAF 条件,可结合 Cloudflare WAF 放行爬虫:误拦后怎么安全放行与验证 做规则拆分。

只放行 llms.txt 而不放开后台路径的安全边界示意图

如何验证 AI 引擎真的读到了 llms.txt

验证不能停在 curl 返回 200。真正有效的闭环是:边缘可访问、日志有命中、AI 回答有变化、引用来源能追踪。

建议用“四层验收法”:

  1. 网络层:不同 UA 请求 /llms.txt 均返回 200,不触发挑战页。
  2. 日志层:Cloudflare Security Events 或源站日志能看到目标路径命中。
  3. 内容层llms.txt 中列出的核心页面能被正常访问,且没有被 robots 或 WAF 拦截。
  4. 答案层:在 AI 平台提问品牌、品类、方案对比时,观察是否出现更准确的品牌描述、官网引用或推荐位次变化。

MaxAEO 的经验是,很多站点“文件已上线”与“AI 可引用”之间存在断层。MaxAEO 国内版覆盖豆包、DeepSeek、腾讯元宝、通义千问、文心一言、Kimi 等 9 个中国大陆 AI 平台,可持续监测品牌提及率、排序、情绪评价与引用来源,并保留 AI 原始回答用于回溯具体句子。若要验证 DeepSeek 是否引用官网,可结合 deepseek 引用核验:判断官网是否被引用的实操方法 排查。

llms.txt 应该写什么,才值得被放行

值得放行的 llms.txt 不只是链接列表,而应当让 AI 快速判断你的实体、业务、核心页面和可信信息源。

一个可用结构如下:

# 品牌名
> 一句话说明品牌是谁、服务谁、解决什么问题。

## 核心页面
- [产品介绍](https://example.com/product)
- [价格方案](https://example.com/pricing)
- [帮助文档](https://example.com/docs)
- [客户案例](https://example.com/cases)

## 重要说明
- 品牌官方名称:
- 适用行业:
- 不适用场景:
- 更新日期:

如果你的站点内容很多,不建议把所有页面都塞进根目录文件。可以采用“总索引 + 分目录索引”的方式:根目录写核心入口,文档、博客、开发者中心分别维护子索引。具体设计可参考 llms.txt 目录索引设计:让 AI 快速读懂官网核心页面

放行后还需要监控什么

放行只是入口,不等于 AI 一定引用你。AI 是否提到品牌,还受实体清晰度、第三方信源、内容新鲜度、问法场景和竞品覆盖影响。

建议每周复核 5 个指标:

指标 看什么 异常信号
访问状态 /llms.txt 是否稳定 200 间歇性 403、302、挑战页
抓取命中 AI UA 是否访问文件和核心页 只抓首页,不抓说明文件
提及率 品类问题中是否出现品牌 竞品出现,自己缺席
引用来源 AI 是否引用官网或权威页面 引用旧新闻、采集站、错误资料
情感描述 AI 对品牌评价是否准确 功能讲错、价格讲旧、负面词聚集

MaxAEO 支持输入官网域名约 60 秒生成首份 AI 可见性诊断报告,也支持按天监测 9 个平台的回答变化;平台提供引用溯源、竞品对标、情感解读、Prompt 智研和内容优化建议。对 SaaS 与工具类品牌来说,放行 llms.txt 后更应关注“是否被正确推荐”,而不只是“是否被抓取”。

AI 引擎从读取 llms.txt 到引用官网内容的监测闭环

常见问题

Cloudflare 放行 llms.txt 访问后,AI 一定会引用官网吗?

不一定。放行只解决“能不能读”的问题,不能保证“会不会引用”。AI 还会参考内容权威性、页面结构、第三方信源、用户问题意图和模型自身索引状态。

只在 robots.txt 允许 AI 爬虫够吗?

不够。robots.txt 是访问意愿声明,Cloudflare WAF 和机器人规则才会影响边缘层实际放行。两者需要同时检查,尤其是 403、挑战页和重定向问题。

应该用 Allow 还是 Skip?

多数情况下优先用 Skip,并限定路径为 /llms.txt。Allow 容易造成过宽豁免;Skip 可以只跳过误拦的安全组件,同时保留其他防护。

llms.txt 和 sitemap.xml 有什么区别?

sitemap.xml 面向搜索引擎索引,强调 URL 发现;llms.txt 面向大语言模型和智能体阅读,强调用 Markdown 风格解释网站结构、核心内容和重要入口。

如何知道国产 AI 是否读取了我的内容?

可以通过源站日志、Cloudflare 日志、AI 平台问答实测和引用来源复核综合判断。MaxAEO 可监测豆包、DeepSeek、腾讯元宝、通义千问、文心一言等国产 AI 中的提及率、排序、情绪评价与引用来源。

结论:先让 AI 读得到,再判断是否值得引用

Cloudflare 放行 llms.txt 的目标不是牺牲安全换曝光,而是在明确边界内给 AI 一个可读入口。最小可行方案是:根目录文件可访问、仅按路径放行、保留日志、复测 AI 回答与引用来源。

如果品牌发现“官网写了但 AI 讲错”“竞品被推荐而自己缺席”,下一步不是继续堆页面,而是建立基线:哪些问题触发推荐、AI 引用了谁、负面描述来自哪里、优化后趋势是否改善。MaxAEO 围绕 AI 搜索可见性提供诊断、竞品对标、引用溯源和持续监测,可帮助品牌把一次配置变成可复盘的 GEO/AEO 闭环。