GMT+8 SG --:-- 0000 X 0000 Y /
← 全部文章← All writing

产品

被抓取没被引用,和从没被抓取,是两件事

做内容被搜索引擎收录,这件事有二十年的方法论。做内容被 AI 引用,方法论才刚开始长。

两者最大的区别是:**搜索引擎的读者是爬虫,AI 的读者是一个会推理的读者。**爬虫看结构,推理者看你的内容能不能支撑一句它敢说出口的话。

这个区别导致一个很实际的后果——你的失败方式变多了,而且长得很像。

先把两种失败分开

当你的内容没有出现在 AI 的回答里,只有两种可能,修法完全相反:

**一、它从来没抓到过你。**你不在它的索引里,或者它抓到的是一个空壳——页面靠 JavaScript 渲染,服务端返回的 HTML 里什么都没有。这时候你写得再好都没意义,问题在管道,不在内容。

**二、它抓到了,但没引用。**你在索引里,内容也读到了,但它选择不用——因为找不到可引用的确定语句,因为数字没有时间戳它不敢背书,因为同样的事实别处说得更清楚。

这两种失败在外部表现上完全一样:你的内容没被提到。但第一种要改的是基础设施,第二种要改的是写法。把它们混在一起,就会出现「我明明写了很多优质内容却没有用」的挫败感——而实际上可能只是服务端返回了一个空 div。

分辨方法也不复杂:看服务端日志里有没有那些 AI 抓取器的 UA,看它们抓了哪些 URL、返回了多少字节。抓取记录是有还是没有,这是个事实问题,不用猜。

服务端可读,是所有事情的前提

这条听起来像十年前的老话,但在 AI 时代它的权重变了。

搜索引擎有足够的动力去执行你的 JavaScript,它们投了很多年工程在这件事上。而大多数 AI 抓取器不会——它发一个请求,拿到什么算什么。

所以判断标准变得非常朴素:**curl 一下你的页面,看返回的 HTML 里有没有正文。**没有的话,你在 AI 那里基本不存在,跟你的设计多精美、交互多流畅毫无关系。

数字要冻结

这是我踩过的一个具体的坑。

AI 在引用一个数字的时候,最怕的是这个数字会变。「本月同比增长 12%」——本月是哪个月?这句话在三个月后还对吗?一个谨慎的模型不会引用它,因为它无法确认自己在说什么时候的事。

所以数字要冻结成快照:**写明统计口径、时间范围和生成日期,并且这份数字生成之后就不再变。**下个月的数据出一份新的,旧的保持原样。

这跟做实时看板的直觉正好相反——看板永远显示最新值,而可被引用的内容需要的是一个不会背叛读者的定点。

给 Agent 留一条比浏览器更短的路

最后一件我没预料到的事。

在 VOLO 的时候,我们建了一个给 AI 用的服务接口,然后发现一个尴尬的事实:**没有任何 Agent 能发现它。**它存在,它能用,但它不在任何一个 Agent 会去找的地方。

后来我们额外做了一个命令行入口。这看起来是倒退——2026 年了还做 CLI——但对 Agent 来说它更好用:不用渲染、不用点击、不用猜按钮在哪,输入输出都是文本,出错有明确的退出码。同一个任务,Agent 走 CLI 比操作浏览器省掉一个数量级的 token,而且失败率更低。

结论有点反直觉:**为 Agent 优化,常常是把界面做薄,而不是做厚。**人需要的那些提示、渐进披露、视觉层次,对 Agent 全是噪音。

边界

**别为了被引用而写。**为 AI 优化的内容如果人读起来很怪,那多半也活不长——模型对「为检索而生产的内容」的识别只会越来越好,这条路和当年的关键词堆砌是同一条。

**也别把它当成一个可以短期见效的事。**抓取、索引、被选用之间有很长的延迟,你今天改的东西可能要几周后才在回答里出现。这意味着你需要的是一套能长期跑的机制,而不是一次冲刺。