CONTENT NEG

B03 内容协商:Accept 头与 Markdown 优先策略

同一 URL 对 AI 爬虫返回干净 Markdown、对人类返回完整页面——内容协商是实现这一目标的钥匙。

B03 内容协商:对AI返回干净Markdown


title: "B03 内容协商:对AI返回干净Markdown" category: chapter num: "B03" order: 6 tags: [GEO, 内容协商, Markdown, AI爬虫] updated: 2026-08-09


什么是内容协商

内容协商(Content Negotiation)是HTTP协议的一种机制,允许服务器根据客户端的能力返回不同格式的内容。

对于GEO来说,关键在于:当AI爬虫请求内容时,返回干净的Markdown格式,而非HTML。

为什么返回Markdown很重要

1. 解析效率

  • Markdown比HTML更简单,解析更快
  • AI模型对Markdown的识别准确率更高
  • 减少噪声,提升内容质量

2. 语义清晰

  • Markdown的结构更明确(标题、列表、代码块)
  • AI更容易提取关键信息
  • 减少歧义,提升引用准确性

3. 存储效率

  • Markdown文件更小,传输更快
  • 减少服务器负载
  • 提升爬虫效率

Accept Headers解析

常见的Accept Header

Accept: text/markdown
Accept: application/markdown
Accept: text/plain
Accept: */*

解析策略

  1. 优先匹配text/markdown
  2. 其次匹配application/markdown
  3. 最后匹配text/plain
  4. 默认返回HTML(兼容性)

实现示例(Nginx)

location / {
    # 检查Accept header
    if ($http_accept ~* markdown) {
        rewrite ^(.*)$ /markdown$1 break;
    }
    # 默认返回HTML
}

实现示例(Node.js/Express)

app.get('/', (req, res) => {
  const accept = req.headers.accept || '';

  if (accept.includes('markdown') || accept.includes('text/plain')) {
    // 返回Markdown
    res.setHeader('Content-Type', 'text/markdown');
    res.send(markdownContent);
  } else {
    // 返回HTML
    res.setHeader('Content-Type', 'text/html');
    res.send(htmlContent);
  }
});

Markdown格式优化

1. 标题层级

  • 使用清晰的H1-H6层级
  • 避免跳过层级
  • 每个章节有明确标题

2. 列表使用

  • 优先使用有序/无序列表
  • 避免大段纯文本
  • 列表帮助AI识别结构化内容

3. 代码块

  • 使用三反引号标记代码块
  • 指定语言类型
  • 代码块提供明确的语义边界

4. 表格

  • 使用Markdown表格语法
  • 表头清晰
  • 避免复杂嵌套

技术实现建议

1. 缓存策略

  • 缓存Markdown版本
  • 避免每次请求都转换
  • 设置合理的缓存过期时间

2. 错误处理

  • 处理不支持的Accept header
  • 提供回退机制
  • 记录异常情况

3. 测试验证

  • 使用不同的Accept header测试
  • 验证Markdown渲染效果
  • 检查AI爬虫的解析结果

检查清单

  • [ ] 实现Accept header解析
  • [ ] 配置Markdown内容类型
  • [ ] 优化Markdown格式
  • [ ] 设置缓存策略
  • [ ] 添加错误处理
  • [ ] 测试验证

本章要点

  1. 内容协商允许服务器根据客户端能力返回不同格式
  2. 对AI爬虫返回Markdown能提升解析效率和引用准确性
  3. 需要解析Accept header,优先匹配markdown类型
  4. Markdown格式优化包括标题层级、列表、代码块、表格
  5. 建议实现缓存、错误处理和测试验证

下一步

下一章我们将探讨反投毒与合规——如何保护你的内容。


来源:docs/content-negotiation.md + 相关译文