协议规范

8 条可执行规范,逐步让你的网站被 AI 正确理解与调用。

01

提供 llms.txt 与 llms-full.txt

为 LLM 提供机器可读的站点索引与全文,让 AI 一次读对。

llms.txt 是一个约定:网站根目录下放置一个纯文本文件,用 Markdown 风格列出站点简介与分区链接,供大语言模型在访问前快速索引。llms-full.txt 则提供站点全文。

目标

让 LLM 与 AI 代理在零阻碍的前提下,快速、准确地了解你的站点结构并定位相关内容。

为什么重要

  • LLM 抓取整站既慢又贵,llms.txt 提供低成本、高准确度的入口。
  • 主动提供索引 = 主动被「看见」,是 AI 时代的内容倡导方式。
  • 属于公开、可验证的规范,任何站点都能立刻落地。

做法清单

  • 在站点根目录发布 /llms.txt,首行声明规范版本,随后列出 H1 站点描述与分区块。
  • 提供 /llms-full.txt,包含更完整的正文内容(可选但推荐)。
  • 链接一律用绝对 URL,描述精确、简洁,避免营销话术。
  • 保持与站点实际内容同步,定期更新。

验收标准

  • 访问 /llms.txt 返回 200 与正确的 text/plain 内容。
  • 内容能被解析成清晰的分区块与链接。
  • 使用任意 LLM 前置上下文加载即可获得准确的站点概览。
02

正确的 robots.txt 指令

允许主流 AI 爬虫合理抓取,避免误伤与误拦。

robots.txt 是你与 AI 爬虫之间的第一份「通行证」。一份正确的 robots.txt 应该精准表达哪些内容允许被抓取,而不是一刀切地封禁所有爬虫。

目标

在可控的前提下,让主流 AI 爬虫(如 GPTBot、ClaudeBot、Google-Extended 等)能访问你的公开内容,同时拦截你不欢迎的行为。

为什么重要

  • 封禁所有爬虫会让你的站点在 AI 时代「隐形」,错失被检索与推荐。
  • 错误的 User-agent 大小写或指令会让爬虫误解本意。
  • 这是一份双方都能理解的语言,越清晰越公平。

做法清单

  • 列出你允许的主流 AI 爬虫,并给出明确的 Allow 或 Disallow 规则。
  • 对不希望被抓取的路径单独设置 Disallow,而非整站封禁。
  • 在文件末尾用注释说明政策意图,方便人工与 AI 共同理解。
  • 加上 sitemap.xml 指向,帮助爬虫发现站点地图。

验收标准

  • 用机器人协议测试工具验证各规则符合预期。
  • 允许的 AI 爬虫能抓取关键页面与 llms.txt。
  • 敏感路径被明确阻止。
03

完整且 locale 感知的 sitemap.xml

一张清晰的站点地图,让 AI 与搜索引擎抓取到每一个页面。

sitemap.xml 为爬虫提供站点的完整页面清单,配合 lastmod 与多语言版本标记,能让抓取更高效、更不易遗漏。

目标

保证站点的每一个公开页面都被正确收录,多语言版本的对应关系清晰可查。

为什么重要

  • 没有 sitemap,深层页面可能长期不被发现。
  • 多语言站点缺少版本映射,AI 可能抓取到错误语言的内容。
  • lastmod 让爬虫知道哪些内容更新过,减少无效抓取。

做法清单

  • 自动生成包含所有公开页面的 sitemap.xml。
  • 为每个 URL 标注 lastmod(内容修改时间)。
  • 多语言页面提供 xhtml:link rel="alternate" hreflang 备用版本。
  • 在 robots.txt 中声明 sitemap 地址。

验收标准

  • 爬取所有 URL 均返回 200。
  • 多语言版本映射正确。
  • sitemap 通过校验工具检查无错误。
04

结构化数据(JSON-LD / schema.org)

把产品、组织、FAQ 等信息以结构化方式呈现,让 AI 精准理解。

结构化数据(如 JSON-LD + schema.org)把页面中的人类可读信息,额外以机器可读的方式明确表达出来,消除理解歧义。

目标

让 AI 与搜索引擎准确识别你的组织、产品、价格、FAQ 等关键信息。

为什么重要

  • AI 能从结构化数据中直接读取「事实」,而不必从文本里猜测。
  • 提升在 AI 搜索与对话推荐中的准确率与出现率。
  • 属于开放的公开标准,成本低、收益直接。

做法清单

  • 首页注入 Organization / WebSite 的 JSON-LD。
  • 商品页注入 Product + Offer(含价格、库存、货币)。
  • FAQ 页或常见问题使用 FAQPage 结构。
  • 用校验工具定期验证 JSON-LD 语法。

验收标准

  • 通过 Schema.org 校验(无语法错误)。
  • 关键字段(名称、价格、描述)被正确识别。
  • 在使用支持的结构化测试工具中能渲染出富媒体结果。
05

语义化 HTML 与清晰层级

用正确的标签与标题层级,让内容结构一目了然。

语义化 HTML 让内容的「骨架」可见:一篇文章哪里是标题、哪里是正文、哪里是导航,都在结构上清清楚楚,而不是依赖样式猜测。

目标

让 AI 与任何解析器仅凭 HTML 结构就能还原页面的信息层级。

为什么重要

  • 正确的标题层级(h1>h2>h3)是 AI 理解文档结构的核心信号。
  • <main>/<article>/<nav> 等语义标签降低理解噪音。
  • 纯文本可提取,意味着无关技术的可及性与可读性都更好。

做法清单

  • 每页只有一个 h1,下级标题按层级推进。
  • 使用 <main>、<article>、<nav>, <header>、<footer> 语义区块。
  • 避免把关键信息(如价格、规格)嵌入图片或无文本的交互组件。
  • 避免过度依赖客户端 JS 渲染核心内容。

验收标准

  • 关闭 JS 后核心内容仍可读取。
  • 用无障碍/结构检查工具验证标题层级无跳级。
  • 页面能纯粹按文本提取得到完整语义。
06

正确的语言声明与 meta 标签

告诉 AI 你的页面用什么语言,并提供完整的分享元信息。

html lang 声明让 AI 知道你页面的语言,meta 与 Open Graph 标签则为分享与检索提供标准化的描述信息。

目标

让 AI 准确识别页面语言,并在任何平台分享时都有完整的标题、描述与预览。

为什么重要

  • 语言声明错误会让 AI 用错误的语言模型理解你的内容。
  • 缺失 meta description 时,AI 只能从正文猜测,容易失真。
  • 规范的社交分享标签让你的内容在 AI 平台与社交网络上都能体面呈现。

做法清单

  • 在 <html lang="..."> 正确声明主语言(如 zh-CN、en)。
  • 提供 meta description 与 canonical。
  • 配置 Open Graph(og:title, og:description, og:url, og:image)与 Twitter Card。

验收标准

  • 页面语言被正确识别,与内容实际语言一致。
  • 抓取工具能读取到完整的标题、描述与 OG 标签。
  • 多语言页面各自声明正确语言。
07

内容可访问性与纯文本可提取

让关键信息不依赖图片与脚本即可获得。

内容可访问性意味着:任何关键信息都不应只存在于图片、视频或纯客户端脚本里。AI 需要能够通过纯文本提取拿到完整内容。

目标

保证站点在无脚本、纯文本提取的情况下,核心信息依然完整可读。

为什么重要

  • 图片中的文字需要 OCR,成本高且易错。
  • 过度依赖 JS 渲染会让许多爬虫拿到空壳。
  • 可访问性本身也是对人类残疾用户负责。
  • AI 与辅助技术共享同一条可被读取的通路。

做法清单

  • 关键信息(价格、规格、联系方式、条款)以文本呈现,而非仅图片。
  • 图片提供有意义的 alt 文本。
  • 核心内容服务端渲染(SSR/SSG),而非必须执行 JS。
  • 使用足够的对比度与较大的可读字号(对 AI 无影响,对人类有益)。

验收标准

  • 禁用 JS 后仍能获得完整核心内容。
  • 纯文本提取结果包含所有关键事实。
  • 图片 alt 能独立描述图片内容。
08

让 AI 代理可调用(进阶)

提供的接口与操作最好有结构化描述,便于 AI 代理直接调用。

对于更高阶的站点,你可以更进一步:让 AI 代理不仅能读取你,还能安全地调用你的公开能力,如查询、下单引导、信息检索等。这是「可被理解」到「可被协作」的升级。

目标

在安全前提下,让 AI 代理能够发现并正确地使用你的公开接口。

为什么重要

  • AI 代理正在成为执行任务的入口,而不只是信息查询。
  • 提供结构化描述(如 OpenAPI、llms 可读的操作说明)能降低误用风险。
  • 主动设计「如何被调用」,能让你在代理生态中占据有利位置。

做法清单

  • 为公开 API 提供机器可读的文档(如 OpenAPI/Swagger)。
  • 在 llms.txt 中列出可供代理调用的操作与用途。
  • 明确权限边界:只暴露确实公开且安全的能力。
  • 提供示例与参数说明,降低代理误用的可能性。

验收标准

  • 代理能仅凭公开文档正确发起一次安全调用。
  • 未授权的操作被明确拒绝。
  • 文档与实际接口行为一致。