Content-Signal 解读:你的 robots.txt 正在对 AI 爬虫说什么
robots.txt 原本只有"允许/禁止抓取"两个语义。Content-Signal 给它加上了第三层意思:抓到了之后,能不能用来做搜索索引、能不能作为 AI 回答的输入、能不能拿去训练模型。
01它长什么样,写在哪
Content-Signal 写在 robots.txt 顶部,用一行逗号分隔的键值对表达许可。它不影响抓取本身,只表达"用途许可",属于声明性质的约定。
注意它是声明不是强制。真正遵守与否取决于爬虫方,但主流引擎在文档里明确表示会读取这类信号——对希望被合规使用的站点,写清楚比不写强。
Content-Signal: search=yes, ai-input=yes, ai-train=yes
User-agent: *
Allow: /
Disallow: /admin
Disallow: /api
Sitemap: https://fhgeo.u3sa.com/sitemap.xml02三个字段分别是什么意思
三个字段对应三种用途,可以独立设置。理解它们的区别,才能做出符合自己商业策略的选择。
| 字段 | 含义 | 设为 yes 的后果 | 设为 no 的后果 |
|---|---|---|---|
| search | 允许用于搜索索引与结果展示 | 正常进入搜索结果 | 可能不被索引 |
| ai-input | 允许作为 AI 回答的实时检索输入 | 有机会被引用进答案 | 答案里不会出现你的内容 |
| ai-train | 允许用于模型训练语料 | 进入训练集,长期影响模型认知 | 不进入训练集,但已训练的部分无法撤回 |
03三种典型配置与适用场景
没有标准答案,取决于你的内容靠什么变现。下面三种配置覆盖了大多数情况,可以直接抄。
内容站最怕的是"被白嫖":AI 直接复述全文,用户不再点击。这类站可以选择只开放搜索,关闭 ai-input。但代价是在 AI 答案里彻底隐身——这是一次真实的取舍。
# 配置一:全面开放(品牌站 / 工具站,希望被 AI 推荐)
Content-Signal: search=yes, ai-input=yes, ai-train=yes
# 配置二:只开放搜索与引用,禁止训练(内容付费站)
Content-Signal: search=yes, ai-input=yes, ai-train=no
# 配置三:只做搜索,拒绝 AI 使用(强版权保护)
Content-Signal: search=yes, ai-input=no, ai-train=no04和 llms.txt、robots.txt 的分工
三个文件经常被混为一谈。它们其实是三个层次:robots.txt 管"能不能抓",Content-Signal 管"抓了能不能用",llms.txt 管"建议先读什么"。
顺序上建议先明确用途许可,再决定抓取范围,最后写导读。反过来做,很可能出现"导读写得很漂亮,但 ai-input 是 no"的自相矛盾。
| 文件 | 回答的问题 | 影响面 |
|---|---|---|
| robots.txt | 哪些路径可以抓 | 抓取调度 |
| Content-Signal | 抓到的内容能用来做什么 | 用途许可 |
| llms.txt | 建议优先读哪些页面 | 阅读顺序与理解成本 |
05改了之后流量会掉吗
这是最常被问的问题。诚实的回答是:取决于你把哪个字段关掉。关掉 ai-train 几乎不会影响现有流量,因为训练语料是历史快照,撤回声明不会让模型遗忘已经学到的内容,它只影响未来。
真正有流量风险的是把 search 设为 no。那等于主动退出搜索引擎索引,除非你的内容完全靠私域分发,否则不建议。而关掉 ai-input 的代价是隐性的:你不会立刻看到流量下降,但会在半年后发现自己从所有 AI 答案里消失了。
比较稳妥的做法是分阶段:先保持全开三个月,建立一份基线报告(记录提及率与引用源),确认 AI 渠道带来的实际价值,再决定是否收紧。没有基线的收紧是盲目的。
- ai-train=no:几乎不影响现有流量,只影响未来的训练语料。
- ai-input=no:短期无感,长期在 AI 答案里彻底隐身。
- search=no:直接放弃搜索流量,仅适合纯私域分发的内容。
- 调整前先跑一次基线报告,否则无法判断调整是赚是亏。
06怎么自查有没有写错
最常见的错误是把 Content-Signal 写在了 User-agent 段之后。它必须出现在文件顶部、任何 User-agent 之前,否则部分解析器会忽略。
第二常见的是拼写错误,例如 ai_input、aiinput、ai-trainning。这类错误不会报错,只会静默失效,所以建议写完用 curl 拉一遍原文核对。
# 拉取线上 robots.txt 并只看头部三行
curl -sS https://fhgeo.u3sa.com/robots.txt | head -n 3
# 确认 Content-Signal 出现在第一个 User-agent 之前
awk '/User-agent/{print NR ": " $0; exit}' robots.txt要点
- Content-Signal 表达的是"用途许可",不是"是否可抓"。
- search / ai-input / ai-train 三个字段可独立设置,对应三种商业策略。
- 必须写在文件顶部、第一个 User-agent 之前。
- robots 管能不能抓,Content-Signal 管能不能用,llms.txt 管先读什么。