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

什么是 llms.txt,为什么会被 AI 引擎读取
llms.txt 是放在网站根目录的纯文本或 Markdown 风格说明文件,用来告诉大语言模型:网站是什么、重要页面在哪里、哪些内容值得优先阅读。
Cloudflare 在“智能体就绪度”相关文章中也将 llms.txt 描述为面向 LLM 的结构化阅读清单,而不是传统搜索引擎 sitemap 的替代品;它更像是给 AI 助手看的“内容导航”。Cloudflare 开发者文档还公开使用 llms.txt 与 llms-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 访问语义都没有问题。
- 检查路径:
/llms.txt必须在根目录,大小写一致,不要放成/llm.txt或/docs/llms.txt。 - 检查状态码:普通浏览器、命令行请求都应返回
200,不要返回301多跳、403或挑战页。 - 检查内容类型:建议返回
text/plain、text/markdown或可被纯文本读取的响应。 - 检查 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 放行爬虫:误拦后怎么安全放行与验证 做规则拆分。

如何验证 AI 引擎真的读到了 llms.txt
验证不能停在 curl 返回 200。真正有效的闭环是:边缘可访问、日志有命中、AI 回答有变化、引用来源能追踪。
建议用“四层验收法”:
- 网络层:不同 UA 请求
/llms.txt均返回 200,不触发挑战页。 - 日志层:Cloudflare Security Events 或源站日志能看到目标路径命中。
- 内容层:
llms.txt中列出的核心页面能被正常访问,且没有被 robots 或 WAF 拦截。 - 答案层:在 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 后更应关注“是否被正确推荐”,而不只是“是否被抓取”。

常见问题
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 闭环。
