返回文档中心
robots.txtContent-Signal

Content-Signal 解读:你的 robots.txt 正在对 AI 爬虫说什么

robots.txt 原本只有"允许/禁止抓取"两个语义。Content-Signal 给它加上了第三层意思:抓到了之后,能不能用来做搜索索引、能不能作为 AI 回答的输入、能不能拿去训练模型。

6 分钟6 节

01它长什么样,写在哪

Content-Signal 写在 robots.txt 顶部,用一行逗号分隔的键值对表达许可。它不影响抓取本身,只表达"用途许可",属于声明性质的约定。

注意它是声明不是强制。真正遵守与否取决于爬虫方,但主流引擎在文档里明确表示会读取这类信号——对希望被合规使用的站点,写清楚比不写强。

代码 · text
Content-Signal: search=yes, ai-input=yes, ai-train=yes

User-agent: *
Allow: /
Disallow: /admin
Disallow: /api

Sitemap: https://fhgeo.u3sa.com/sitemap.xml

02三个字段分别是什么意思

三个字段对应三种用途,可以独立设置。理解它们的区别,才能做出符合自己商业策略的选择。

Content-Signal 字段语义
字段含义设为 yes 的后果设为 no 的后果
search允许用于搜索索引与结果展示正常进入搜索结果可能不被索引
ai-input允许作为 AI 回答的实时检索输入有机会被引用进答案答案里不会出现你的内容
ai-train允许用于模型训练语料进入训练集,长期影响模型认知不进入训练集,但已训练的部分无法撤回

03三种典型配置与适用场景

没有标准答案,取决于你的内容靠什么变现。下面三种配置覆盖了大多数情况,可以直接抄。

内容站最怕的是"被白嫖":AI 直接复述全文,用户不再点击。这类站可以选择只开放搜索,关闭 ai-input。但代价是在 AI 答案里彻底隐身——这是一次真实的取舍。

代码 · text
# 配置一:全面开放(品牌站 / 工具站,希望被 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=no

04和 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 拉一遍原文核对。

代码 · bash
# 拉取线上 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 管先读什么。