搜索爬虫和 AI 爬虫都从站点根目录的同两个文件入手。Blume 每次构建都会写出这两个文件,而 robots.txt 承载着 AI 爬虫会去找的内容使用信号 —— 因此这里是可发现性的搜索侧与智能体侧的交汇点。
Sitemap#
Blume 在构建时写出一份包含每个可索引页面的 sitemap.xml。它需要一个绝对的 deployment.site,并列出除草稿、隐藏和 noindex 页面之外的所有页面。在带版本的站点上,canonical 指向线上对应页面的归档页面也会被排除 —— 该被索引的是线上页面。默认开启:
seo: {
sitemap: true,
}
放入自己的 public/sitemap.xml 即可接管 —— Blume 绝不会覆盖你放在 public/ 里的文件。
Robots#
Blume 写出的 robots.txt 允许所有爬虫访问,声明你的内容信号,并在有 sitemap 时加上一行指向它的 Sitemap:。默认开启:
seo: {
robots: true,
}
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=yes
Allow: /
Sitemap: https://docs.example.com/sitemap.xml
内容信号#
Content-Signal 这一行 —— 正在成形的内容使用约定 —— 声明 AI 爬虫可以如何复用你的文档。Blume 默认输出它,且每个信号都设为 yes,这与它「文档对人和智能体一律开放」的立场一致:
search—— 传统搜索与 AI 搜索索引aiInput—— 回答时的 grounding / RAGaiTrain—— 模型训练
把任一信号设为 false 即可限制它;不写的那些仍为 yes:
agents: {
contentSignals: {
aiTrain: false, // 退出训练,保留搜索与 grounding
},
}
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /
设置 contentSignals: false 即可完全去掉这行声明:
agents: {
contentSignals: false,
}
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
agents.contentSignals? |
boolean | object |
- | Content-Signal 声明。为 true 或不写时所有信号都输出为 yes;为 false 时删掉这一行;为对象时逐个设置信号。 |
contentSignals.search? |
boolean |
- | 允许用于搜索索引(search)。默认 true。 |
contentSignals.aiInput? |
boolean |
- | 允许在回答时用于 AI grounding / RAG(ai-input)。默认 true。 |
contentSignals.aiTrain? |
boolean |
- | 允许用于 AI 模型训练(ai-train)。默认 true。 |
内容信号表达的是一种偏好,而不是访问控制:它告诉守规矩的爬虫你希望内容被如何使用,而是否遵守由爬虫自己负责。同一份策略会以 contentUsage 的形式镜像在智能体可读性清单里,因此从不读 robots.txt 的智能体也能看到它。
放入自己的 public/robots.txt 即可接管。