Cloudflare Markdown for Agents:AI时代网站内容交付的范式变革与GEO实操指南
引言:Web内容交付的第二层表达
2026年2月12日,Cloudflare宣布推出一项可能深远改变Web内容交付方式的新功能:Markdown for Agents。简单来说,当AI爬虫或AI Agent访问你的网站时,Cloudflare可以在CDN边缘层自动将HTML页面实时转换为Markdown格式回传——同样的内容,Token消耗降低高达80%。
这不是一个小优化。当Cloudflare承载着全球约20%的Web流量,当AI爬虫流量已经达到Googlebot流量的28%,当每31次网站访问中就有1次来自非人类Agent时——在基础设施层面为AI系统建立一条专属的内容获取通道,这是Web架构演进中一个标志性的事件。
但这个功能也引发了激烈的行业争论:Google的John Mueller公开批评向AI系统提供Markdown版本是个糟糕的主意;SEO顾问警告这可能开启新形态的「AI Cloaking」风险;而另一方面,Claude Code、OpenCode等AI编程工具已经开始发送Accept: text/markdown请求头。
保哥认为,这个功能的意义远超技术层面——它代表了Web从「只为人类设计」向「人机双重受众」的架构转型,也标志着GEO(Generative Engine Optimization,生成式引擎优化)从理论概念走向了基础设施级别的落地。
一、技术原理:HTTP内容协商机制的巧妙运用
1.1 工作流程
Markdown for Agents的技术实现基于HTTP协议中已有的内容协商(Content Negotiation)机制,而不是创建新的URL或检测User-Agent。整个流程如下:
- AI Agent在HTTP请求中加入
Accept: text/markdown请求头(通常与text/html一起作为可接受的格式列表) - Cloudflare边缘节点检测到该请求头
- Cloudflare向源站请求原始HTML内容
- 在边缘层将HTML实时转换为Markdown
- 以
Content-Type: text/markdown返回给AI Agent - 响应头包含
Vary: Accept,表明不同Accept头会获得不同的响应内容
对于普通浏览器用户,一切照常——他们发送的请求不包含text/markdown偏好,所以获得的是正常的HTML页面。
1.2 Token节省的量化数据
Cloudflare以自己的博客文章为例量化了Token节省效果:
- HTML版本:16,180 tokens
- Markdown版本:3,150 tokens
- 节省比例:约80%
更微观地看:一个简单的## About Us Markdown标题大约消耗3个tokens;而对应的HTML版本<h2 class="section-title" id="about">About Us</h2>则需要12-15个tokens——这还没算上外层的<div>包裹、导航栏、脚本标签等与语义无关的页面元素。
1.3 关键响应头设计
Cloudflare在Markdown转换响应中附加了两个重要的自定义响应头:
x-markdown-tokens:提供该Markdown文档的Token数量估算值。AI Agent可以在实际处理内容之前,先通过这个头部值来评估文档是否能放入当前的上下文窗口(Context Window),或者决定分块策略。这个「预检」机制避免了Agent先下载完整内容再判断是否过大的浪费。
Content-Signal:默认值为ai-train=yes, search=yes, ai-input=yes,明确声明内容可用于AI训练、搜索索引和AI Agent输入。这与Cloudflare此前提出的Content Signals框架整合,未来将支持站长自定义授权策略。
1.4 缓存策略
通过Vary: Accept头,Cloudflare自动为HTML和Markdown响应创建独立的缓存条目。同一个URL在CDN中会同时存在两个缓存版本——HTML版本服务于浏览器,Markdown版本服务于AI Agent——而不会产生缓存冲突。
二、Content Signals:AI时代的内容授权框架
2.1 三维授权语义
Content Signals是Cloudflare在2025年Birthday Week期间提出的一个框架,旨在让网站所有者明确表达其内容被使用的偏好。它定义了三个核心用途维度:
- search:内容是否可用于搜索索引
- ai-input:内容是否可作为AI系统的实时输入(包括AI Agent的检索增强生成场景)
- ai-train:内容是否可用于AI模型训练
每个维度可以设置为yes(允许)、no(不允许),或不声明(表示无偏好)。
2.2 与现有robots.txt的关系
Content Signals可以通过robots.txt注释来表达,也可以通过HTTP响应头来传递。它是对现有robots.txt规范的一种语义扩展——robots.txt告诉爬虫「能不能来」,Content Signals告诉爬虫「来了之后能怎么用」。
需要注意的是,Cloudflare自己也承认Content Signals目前只是「偏好声明」,而非强制执行的技术壁垒。AI爬虫运营商是否尊重这些信号,取决于它们自己的政策决定。
2.3 对内容创作者的意义
保哥认为Content Signals框架的出现,代表了Web内容授权从「全有或全无」(要么允许爬取,要么完全屏蔽)向细粒度授权的演进。一个新闻网站可能允许其内容被用于搜索索引和AI实时回答,但不允许用于模型训练。这种灵活性在之前是不存在的。
不过,这个框架的生态影响力最终取决于AI平台是否愿意尊重它。在当前竞争激烈的AI市场中,这是一个充满不确定性的因素。
三、行业争论:Cloaking还是Content Negotiation?
3.1 Google的反对声音
Google的John Mueller在Markdown for Agents发布前后多次表态,对向AI系统提供专门的Markdown版本持批评态度。Mueller的核心论点是:LLM从一开始就在训练中接触过大量HTML网页,它们完全能处理HTML;为什么要给机器人看一个用户永远看不到的页面版本?他在Reddit上直接评论道,为什么不把精力花在为所有人改善网站,而非创建一个只给爬虫看的并行版本?
微软的Bing团队也表达了类似立场,强调他们仍然会爬取HTML版本来检查内容一致性,制作专门的爬虫版本只会增加爬取负担。
3.2 Cloaking风险的技术分析
SEO顾问David McSweeney指出了一个具体的安全隐患:Cloudflare将Accept: text/markdown请求头转发给了源服务器。这意味着源服务器可以检测到这是一个AI请求,然后返回一个专门为AI定制的不同HTML(例如包含SEO操纵内容或虚假产品信息),Cloudflare再把这个不同的HTML转换为Markdown返回给AI。
结果就是:人类用户看到的是真实页面,AI系统看到的是被操纵的内容——这就是经典的Cloaking(内容隐藏),只不过升级到了AI版本。
技术SEO顾问Jono Alderson进一步提出了一个哲学层面的警告:当你把一个页面扁平化为Markdown时,你不仅移除了杂乱,也移除了判断和上下文。一旦发布了一个机器专用的页面表达版本,你就创建了第二个「现实的候选版本」,系统必须决定哪个才真正反映了页面内容。
3.3 为什么这不完全等同于传统Cloaking
保哥认为,这个争论需要做一个关键的技术区分:
传统Cloaking:服务器检测User-Agent(「你是谁」),然后主动决定给不同的爬虫展示不同的内容。这是服务器端的单方面行为。
内容协商:客户端在请求中声明自己偏好的格式(「我想要Markdown」),服务器响应这个偏好。这是HTTP协议中已有的标准机制,与提供不同语言版本(Accept-Language)或不同压缩格式(Accept-Encoding)的逻辑完全一致。
Cloudflare的Markdown for Agents属于后者——它基于Accept头的内容协商,不创建新的URL,不修改内容本身(只转换格式)。从HTTP规范的角度看,这是完全合规的。
但问题在于,源服务器收到转发的Accept头之后的行为是不可控的。如果源服务器利用这个信号来返回不同的HTML内容,那就确实构成了Cloaking。Cloudflare的转换本身是无辜的,但它无意中创造了一个可被滥用的信号通道。
四、战略意义:为什么这是GEO的基础设施时刻
4.1 从SEO到GEO的范式迁移
过去二十年,我们为Google做SEO——关键词、反向链接、结构化数据。现在,流量来源正在分散。越来越多的用户不再搜索,而是直接向ChatGPT、Claude、Perplexity提问。这些AI系统不依赖PageRank来决定信任谁——它们依赖Token。
每个AI都有上下文窗口限制。当AI访问你的网站时,如果页面充斥着<div>包装、导航栏、脚本标签,真正重要的内容就被稀释了。在上下文窗口寸土寸金的世界里,谁的内容能以更少的Token传达更多的语义,谁就在AI引用竞争中占据优势。
Markdown for Agents正是这个逻辑的基础设施级实现。
4.2 Cloudflare的战略定位转变
值得注意的是,Cloudflare此前推出过AI爬虫收费模型——对AI爬虫返回HTTP 402「需要付款」响应,让出版商可以对AI访问进行收费或屏蔽。当时Cloudflare的定位是「保护出版商免受AI抓取」。
而现在推出Markdown for Agents,Cloudflare的定位转变为「帮助出版商更高效地服务AI系统」。这不是矛盾——这是一个从「防御」到「积极参与」的战略演进。Cloudflare正在把自己定位为AI时代Web基础设施的中间层——既能保护内容,也能优化内容的AI可访问性。
4.3 生态信号:谁已经在使用?
根据多方报道,以下AI工具已经在请求中发送Accept: text/markdown头部:
- Claude Code(Anthropic的命令行编程工具)
- OpenCode(开源AI编程工具)
- OAI-SearchBot(OpenAI的搜索爬虫)
这意味着Markdown内容交付不是一个理论上的「未来可能」,而是一个已经在发生的现实。
五、实操指南:如何启用与优化
5.1 启用Markdown for Agents
前提条件:网站使用Cloudflare,且订阅Pro、Business或Enterprise计划(或SSL for SaaS用户)。免费计划目前不支持。
全站启用:
- 登录Cloudflare Dashboard
- 选择你的账户和域名
- 进入AI Crawl Control部分
- 找到Quick Actions,开启「Markdown for Agents」开关
按子域名或路径启用(更精细的控制):
- 进入Rules → Overview → Create rule → Configuration Rules
- 设置匹配条件(如
http.host eq "docs.example.com"或starts_with(http.request.uri.path, "/blog/")) - 在设置中启用Markdown for Agents
API启用:
curl -X PATCH \
"https://api.cloudflare.com/client/v4/zones/{zone_tag}/settings/content_converter" \
-d '{"value": "on"}'5.2 验证是否生效
启用后,用curl命令测试:
curl https://你的域名/任意页面 \
-H "Accept: text/markdown" \
-v检查响应头中是否包含:
Content-Type: text/markdownx-markdown-tokens: [数字]Content-Signal: ai-train=yes, search=yes, ai-input=yesVary: Accept
5.3 优化Markdown输出质量
虽然Cloudflare自动处理HTML到Markdown的转换,但转换质量取决于你的HTML结构。以下做法可以提升转换效果:
语义化HTML:使用正确的标题层级(h1→h2→h3),使用<article>、<section>等语义标签,使用<ul>/<ol>列表和<table>表格。语义越清晰,Markdown转换后的结构越完整。
减少非内容元素:精简导航栏、侧边栏、页脚中的冗余HTML。虽然这些对人类用户是必要的,但它们在Markdown转换中会变成噪声。考虑使用<main>标签明确标识主体内容区域。
结构化数据保持在HTML中:Schema.org的JSON-LD结构化数据是嵌入在<script>标签中的,不会被Markdown转换影响。确保你的结构化数据完整——它是AI系统理解你内容的重要辅助信号。
5.4 不使用Cloudflare的替代方案
如果你的网站不使用Cloudflare,仍然可以通过以下方式提升AI可读性:
llms.txt:在网站根目录放置一个llms.txt文件,提供网站的结构化摘要供AI系统参考。
WordPress Markdown Alternate插件:由Yoast创始人Joost de Valk开发,为WordPress页面提供专门的Markdown端点,支持更丰富的元数据。
服务端Markdown API:自建一个API端点,根据Accept头返回Markdown版本。
Fasterize EdgeSEO:类似Cloudflare的边缘转换服务,专门面向AI爬虫提供Markdown输出。
5.5 监控AI爬虫行为
Cloudflare Radar平台新增了AI Insights面板,可以按MIME类型分组查看AI爬虫获取的内容类型分布。启用Markdown for Agents后,你可以在Cloudflare Analytics中观察有多少AI请求以Markdown格式获取了你的内容,以及具体是哪些AI爬虫在发送text/markdown请求。
六、保哥的判断与行动建议
6.1 这不是可选的优化,而是竞争必需
我的观点是:Markdown for Agents代表的不仅仅是一个CDN功能,而是Web内容交付范式的分水岭。过去我们问「Google怎么看我的网站」,现在需要同时问「AI怎么理解我的内容」。
当你的竞争对手的内容还在HTML的噪声中消耗着AI系统宝贵的上下文窗口时,你的内容已经以精练的Markdown格式被AI高效消化和引用。在AI搜索引用的竞争中,这80%的Token节省转化为你内容被完整理解和引用的概率优势。
6.2 但要警惕滥用
不要利用这个功能做「AI Cloaking」——向AI系统提供与人类用户不同的内容。短期内可能获得AI引用优势,但长期来看,AI平台一定会发展出检测Markdown和HTML内容一致性的验证机制。建议建立自动化的CI检查流程,确保HTML和Markdown输出的内容一致性。
6.3 行动清单
如果你使用Cloudflare(Pro及以上):
- 立即启用Markdown for Agents
- 用curl验证转换效果
- 优化HTML语义结构以提升转换质量
- 在Cloudflare Analytics中监控AI爬虫的Markdown请求量
如果你不使用Cloudflare:
- 评估是否迁移到Cloudflare(这可能是一个强有力的理由)
- 部署llms.txt作为过渡方案
- 确保网站HTML语义清晰、结构化数据完整
- 关注WordPress Markdown Alternate等独立工具
所有网站都应该做的:
- 审视你的内容在「禁用CSS和JavaScript后」的可读性——这接近于AI爬虫看到的原始状态
- 确保核心内容在HTML初始渲染中就已完整呈现(而非依赖JavaScript加载)
- 将GEO(生成式引擎优化)纳入你的SEO策略框架
- 持续关注Content Signals框架的演进——它可能成为AI时代的新「robots.txt」
结语
Web正在迎来它的第二层受众。第一层是人类用户——他们需要丰富的视觉设计、交互体验和品牌表达。第二层是AI系统——它们需要精练的、结构化的、Token高效的文本表达。
Cloudflare的Markdown for Agents是第一个在基础设施层面系统性地满足第二层受众需求的方案。它用HTTP内容协商这个已有数十年历史的标准协议机制,巧妙地实现了「同一URL,双重表达」的架构——无需改代码,无需建新页面,无需维护两套内容。
在AI时代,网站的效能不再仅仅是加载速度,更是「被AI理解的效率」。越早开始优化这个维度的团队,越能在即将到来的AI搜索生态重构中占据先机。
本文发布于 2026年2月13日。Markdown for Agents目前处于Beta测试阶段,功能细节可能随Cloudflare的迭代而变化。Content Signals框架也在持续演进中。建议关注Cloudflare官方文档获取最新信息。
- Google移除JavaScript SEO警告:渲染能力进化背后的技术真相与实操陷阱
- AI爬虫眼中的你的网站:从"看不见"到"被推荐"的AEO优化实操指南
- 存量内容翻新术:如何将旧文章改造为AI搜索的引用源
- AI时代内容营销已变天!从SEO流量到品牌心智的实战转型指南
- 语境优先SEO:AI搜索时代的内容优化底层逻辑与实战框架
- GSC挖掘AI搜索提示词:用Regex提取用户Prompt的实战教程
- Reddit不再是GEO最佳渠道?2025年替代策略全解析
- 20款GEO/AEO监控工具深度评测与选型指南
- 与SEO关键词有关的实用AI提示词汇总
- 如何使用GA4追踪来自GEO的流量
