Cloudflare Markdown for Agents:AI时代网站内容交付的范式变革与GEO实操指南

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。整个流程如下:

  1. AI Agent在HTTP请求中加入Accept: text/markdown请求头(通常与text/html一起作为可接受的格式列表)
  2. Cloudflare边缘节点检测到该请求头
  3. Cloudflare向源站请求原始HTML内容
  4. 在边缘层将HTML实时转换为Markdown
  5. Content-Type: text/markdown返回给AI Agent
  6. 响应头包含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用户)。免费计划目前不支持。

全站启用

  1. 登录Cloudflare Dashboard
  2. 选择你的账户和域名
  3. 进入AI Crawl Control部分
  4. 找到Quick Actions,开启「Markdown for Agents」开关

按子域名或路径启用(更精细的控制):

  1. 进入Rules → Overview → Create rule → Configuration Rules
  2. 设置匹配条件(如http.host eq "docs.example.com"starts_with(http.request.uri.path, "/blog/")
  3. 在设置中启用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/markdown
  • x-markdown-tokens: [数字]
  • Content-Signal: ai-train=yes, search=yes, ai-input=yes
  • Vary: 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及以上)

  1. 立即启用Markdown for Agents
  2. 用curl验证转换效果
  3. 优化HTML语义结构以提升转换质量
  4. 在Cloudflare Analytics中监控AI爬虫的Markdown请求量

如果你不使用Cloudflare

  1. 评估是否迁移到Cloudflare(这可能是一个强有力的理由)
  2. 部署llms.txt作为过渡方案
  3. 确保网站HTML语义清晰、结构化数据完整
  4. 关注WordPress Markdown Alternate等独立工具

所有网站都应该做的

  1. 审视你的内容在「禁用CSS和JavaScript后」的可读性——这接近于AI爬虫看到的原始状态
  2. 确保核心内容在HTML初始渲染中就已完整呈现(而非依赖JavaScript加载)
  3. 将GEO(生成式引擎优化)纳入你的SEO策略框架
  4. 持续关注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官方文档获取最新信息。

(本文最新更新时间:
TAG
相关文章
本文标题:《Cloudflare Markdown for Agents:AI时代网站内容交付的范式变革与GEO实操指南》
本文链接:https://zhangwenbao.com/cloudflare-markdown-for-agents-ai-seo-geo.html
版权声明:本文原创,转载请注明出处和链接。许可协议:CC BY-NC-SA 4.0
发表新评论