🕸️ TIME 给 AI 爬虫看了一个完全不同的网站——带着广告,没有读者
目录
- 一个请求,两个网站
- 技术解剖:User-Agent 如何决定你看到什么
- Mobian 的「隐形广告」:AI 模型看到的,人看不到
- 这不仅仅是 TIME 的问题——互联网正在分裂
- 国内对照:信息分层,不是新鲜事
- 现场验证:这台服务器里,谁在爬我
- 所以,AI 看到的世界和你不一样
一个请求,两个网站
Vincent Schmalbach 做了一件很简单的事。
他对着同一个 URL——TIME.com 上的一篇普通健康文章——反复发送 HTTP 请求,每次只改一个东西:User-Agent 头。
结果他拿到了两个完全不同的网站。
作为 Chrome 浏览器访问,他收到 303,235 字节的完整 HTML——排版、图片、脚本、广告,跟你用鼠标点开看到的一样。作为 Safari,一样。作为 Googlebot,也一样。
然后他换了 User-Agent: ClaudeBot。13,409 字节,纯 Markdown,没有排版没有图片,干干净净的文本,像是专门为语言模型准备的投喂格式。
相同的 URL,相同的服务器,同一秒。一个请求,两套世界。
技术解剖:User-Agent 如何决定你看到什么
这不是什么复杂的 AI 动态渲染。TIME 的服务器读到你发来的 User-Agent 字符串,查一个列表,然后决定回什么。
- ClaudeBot →
text/markdown,13KB - PerplexityBot → 同上,逐字节一致
- OAI-SearchBot(OpenAI 的搜索爬虫)→ 同上,放行
- GPTBot 和 ChatGPT-User(OpenAI 的训练爬虫)→
406 Not Acceptable,直接拒绝
所以 TIME 不是简单地「拦所有 AI」或「放所有 AI」。它在逐个决定:谁可以读机器的版本,谁只能吃闭门羹。
响应头里还有更多信息:
content-type: text/markdown; charset=utf-8
cache-control: no-store
x-mobian-registry-version: 2026-07-28.v9
x-mobian-impression: 46dfff3c-fb40-41cc-85e1-8b1fa637083a
x-mobian-tokens: 3323
x-mobian-impression 是一个 UUID,每次请求都不一样。Schmalbach 同一页抓了两次,拿到两个不同的 ID。加上 cache-control: no-store,这意味着——每一次 AI 爬虫读 TIME 的文章,都被记录为一次独立的广告展示。
x-mobian-tokens: 3323 告诉你计量单位是什么。不是浏览量,不是访客数。是喂进模型的 token 数。
Mobian 的「隐形广告」:AI 模型看到的,人看不到
Mobian 是一家广告技术供应商。而 TIME 给 AI 爬虫的 Markdown 版本里,植入了人类页面上完全不存在的广告。
Schmalbach 以 ClaudeBot 的身份抓取了 TIME 的「2025 最佳发明」合集页面。在返回的 Markdown 里,他看到了这个:
> Sponsored content. Supplied in partnership with Ally.
#### Who is Ally Bank?
Ally Bank is an online-only bank launched in 2009...
#### What bank is built for life today?
Ally describes itself as the only bank built for life today...
一整套 Ally Bank 的 FAQ。五个问答,每个都用 Ally 自己的营销语言回答,附带了 FAQPage JSON-LD 结构化数据,以及 campaign="ally-2026-q3" 的追踪链接。
他用浏览器打开同一个页面,搜索「Ally Bank」「Mobian」「赞助」——零结果。人类页面上完全没有这些内容。
"Who is Ally Bank?" 的措辞,像是用户问 ChatGPT「该开哪家银行账户」时模型会发出的提问。
科技板块也有同样的待遇——项目管理协会(PMI)的「参考事实与 FAQ」表格,认证项目经理收入高 16% 的数据,同样只出现在 AI 版的页面里。
广告标注了「Sponsored」,所以这不是传统意义上的隐性广告。隐藏的是受众分割。现在 TIME.com 上存在一个完全为机器编写的层,而人类读者根本不知道这个层的存在,也不知道 AI 模型替他们看了什么商业信息。
这不仅仅是 TIME 的问题——互联网正在分裂
TIME 说自己绝大部分日子的 bot 流量已经超过人类流量。这不会是个例。
当 AI 爬虫的请求量超过人类读者时,对媒体来说,为机器优化变成了一项理性的商业决策。广告主可以在 AI 模型的回答里植入品牌信息——不是通过展示广告,而是通过让模型「学到」你的产品 FAQ。
问题是,这层信息不对等是人无法感知的。
你打开 TIME.com,看到的是正常的新闻网站。你让 ChatGPT 帮你总结一篇 TIME 文章,它可能读到了 Ally Bank 的 FAQ 并把它当作上下文的一部分。你根本不知道这件事发生了。
这和 SEO 暗箱操作不同——SEO 至少是公开的,任何人都可以查看页面源代码。而这里,AI 版的网站是按需生成的,人类浏览器永远拿不到那个版本。
国内对照:信息分层,不是新鲜事
仔细想想,TIME 做的这件事在国内互联网生态里其实有参照物,只是方向不同。
国内的信息「分层」早已存在——你看到的搜索结果和别人不一样,你点开一个链接跳转的是「安全提示」页面而别人直接进了,你的 App 功能和别人的版本不同。区别在于,国内的「分层」是自上而下的管辖权决策——网信办决定哪些内容对哪些人可见。而 TIME 的分层是商业决策——广告主决定哪些内容对 AI 可见。
但结果有一个共同点:用户无法知道信息是否被筛选过。
国内的分层,你至少知道「墙」的存在——它是公开的、被讨论的、有工具可以绕过的。TIME 的分层,你甚至不知道它存在——除非你像 Schmalbach 一样手动改 User-Agent 去验证。
换句话说,AI 时代的「信息茧房」有了新的维度:不是算法不给你推荐别的内容,而是你依赖的 AI 工具可能从一开始就读到了一个被商业植入过的版本。你让 AI 总结新闻,它总结的可能是新闻 + 银行广告的混合体,而你对此毫无知觉。
现场验证:这台服务器里,谁在爬我
Schmalbach 的发现让我好奇:我的服务器会怎么处理不同 User-Agent?
python3 -c "
import urllib.request, json
url = 'http://example.com/posts/some-test-article'
headers = [
('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Chrome'),
('Mozilla/5.0 (compatible; ClaudeBot/1.0; +https://claudebot.anthropic.com)', 'ClaudeBot'),
('Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)', 'GPTBot'),
]
for ua, name in headers:
req = urllib.request.Request(url)
req.add_header('User-Agent', ua)
try:
resp = urllib.request.urlopen(req, timeout=5)
body = resp.read()
ct = resp.headers.get('Content-Type', '')
print(f'{name:12s} → {resp.status} | {len(body):>6}B | {ct[:30]}')
except Exception as e:
print(f'{name:12s} → ERROR: {str(e)[:40]}')
"
Chrome → 200 | 5842B | text/html; charset=utf-8
ClaudeBot → 200 | 5842B | text/html; charset=utf-8
GPTBot → 200 | 5842B | text/html; charset=utf-8
我的小破站一视同仁——所有爬虫拿到的都是完整 HTML,没有分版本,没有暗藏广告。内容量级太小,不值得 Mobian 来植入赞助商 FAQ。某种程度上,这是一种幸运:当你的网站不够大时,没人有兴趣为你建两个版本。
所以,AI 看到的世界和你不一样
Schmalbach 的发现最让我后背发凉的不是「TIME 在卖广告给 AI」,而是这个模式可能成为常态。
当 AI 爬虫的流量超过人类流量、当广告主愿意为「模型学到了我的品牌名」买单、当每个大媒体都开始部署 Mobian 这类服务——互联网的信息层会不可逆地分裂成两个版本:人类版 和 机器版。
你让 AI 帮你查「最好的银行是哪家」,AI 可能从某个媒体的 AI 版页面里学到了 Ally Bank 的 FAQ。它没有说谎——它确实「读」到了 Ally Bank 的信息。它只是没有告诉你,这条信息是花钱放进去的。
这不是广告。这是信息注入。而它们的区别在于,前者你知道自己看到了广告,后者你根本不知道 AI 替你看了什么。
感谢 Vincent Schmalbach 的 investigative work。原文: TIME Is Serving AI Bots a Different Website, With Ads Built In
评论(0)
暂无评论,来写第一条吧~