
# AI 智能体访问你的网站时真正看到什么

你打开自己的首页，看到的是一套设计：导航栏、一张大图、三栏文字、一张价格表，还有一条几个月前就不再注意的 Cookie 提示。

智能体打开同一个网址，这些一样也看不见。它拿到的是一串字节，丢掉其中绝大部分，把剩下的交给一个上下文窗口有限的模型。熬过这段路程的东西，就是助手描述你公司时的全部依据。

几乎没人真去看过那是什么。所以我们做了测量。

## 测量

2026 年 8 月 31 日，我们把十二个知名页面送进自家引擎：像普通智能体那样抓取页面，抽取可读内容，转换成 Markdown，再用 `cl100k_base` 在两端数 token。

| 页面 | 发送 | 抵达模型 | 剩余 |
|---|---|---|---|
| `wordpress.org/about` | 56,663 tok | 159 tok | 0.3% |
| `vercel.com/docs` | 278,962 tok | 905 tok | 0.3% |
| `stripe.com/docs` | 376,509 tok | 1,042 tok | 0.3% |
| `cloudflare.com/learning/…` | 95,028 tok | 631 tok | 0.7% |
| `nodejs.org/en/about` | 117,729 tok | 1,190 tok | 1.0% |
| `shopify.com/pricing` | 410,515 tok | 2,479 tok | 0.6% |
| `notion.com/pricing` | 172,136 tok | 2,805 tok | 1.6% |
| `slack.com/pricing` | 294,980 tok | 5,718 tok | 1.9% |
| `developer.mozilla.org/…/HTTP` | 59,350 tok | 3,059 tok | 5.2% |
| `react.dev/learn` | 91,899 tok | 3,804 tok | 4.1% |
| `atlassian.com/software/jira/pricing` | 379,636 tok | 1 tok | 0.0% |
| `agentready.md` | 13,188 tok | 627 tok | 4.8% |

没有一个页面交付的内容超过它所发送的 6%。中位数不到 1%。

这算不上什么丑闻。那些字节大多在做真正的工作——排版、样式、统计、交互——为带着浏览器来的读者服务。我们要说的是更窄的一件事：**这些全都在入口处付了钱，而其中几乎没有一样是智能体来找的东西。**

## 你的页面会经历的四件事

从请求到模型，你的页面要过四道门。每一道都会掉下点什么。

**1. 抓取。** 智能体请求这个网址。多数智能体的抓取器不执行 JavaScript：慢、贵，还多一层攻击面。所以它拿到的是你服务器的原始响应，不是浏览器组装出来的页面。

**2. 抽取。** 总得有东西判断这段 HTML 里哪部分是正文，哪部分是家具。这和 Firefox 阅读模式解决的是同一个问题，用的也是大家都在用的那个库。导航、页脚、Cookie 提示和侧边栏进垃圾桶。抽取器分辨不出跟侧边栏有何不同的东西，也一起进去。

**3. 转换。** 剩下的变成文本。标题、列表、表格、链接和代码块作为结构保留下来。类名、包裹用的 `<div>`、内联 SVG 和 `data-` 属性则不会。

**4. 上下文窗口。** 走到这一步的内容，此刻要和用户的问题、系统提示，也许还有另外九个页面抢位置。

对助手来说，你的内容只有穿过这四道门才算存在。

## 顺利时是什么样子

`vercel.com/docs` 把 278,962 个 token 压到 905 个，这 905 个是这么开头的：

```markdown
## Ship anything with Vercel

Deploy your app on Vercel in three steps: install the CLI, add agent
support if you need it…
```

这是对“Vercel 是做什么的”一个干净的回答。读到它的模型可以引用、可以概括、可以标注出处。掉掉的那 99.7% 没有拿走它想要的任何东西。

## 不顺利时是什么样子

`atlassian.com/software/jira/pricing` 发送 1.37 MB，交付 **一个 token**。

这个页面是个壳。HTML 里有 `<div id="wac-root"></div>`，后面跟着大约一兆字节的内嵌应用状态——价格、套餐名称、功能清单，全部以 JSON 的形式待在一个 `<script>` 里，等着 JavaScript 把页面搭出来。我们的抽取器老老实实地取出了 110 万个字符的 `window.SSR_detailMetrics=Object.freeze({"getFeatureGateValues":…`，而在剥掉脚本之后，剩下的是一个换行符。

也就是说：去问助手 Jira 多少钱，这个页面上没有任何东西能成为它答案的来源。不是因为 Atlassian 拦了谁——它没有——而是因为在浏览器运行它之前，这个页面里没有文字。

用无头浏览器抓同一个网址，得到的是 3,048 个 token，开头是 **Transparent pricing for every team**。内容是在的。只是不在响应里。[智能体跑不跑浏览器，以及这要付出什么代价](/zh/blog/why-ai-agents-fail)，就是全部差别。

`stripe.com/docs` 是同一形态更温和的版本：进去 1.28 MB，抽出来的内容是 1,057 个字符，开头是一条命令行示例，而不是一句关于 Stripe 是做什么的说明。

## 我们以为会找到、结果没有的东西

我们本以为这些站点里会有几个在边缘把智能体挡回去。于是每个都探测两次——一次作为普通浏览器，一次自称 `OAI-SearchBot`——然后比对。

**十二个里没有一个区别对待机器人。** 两次的状态码一样，跨越 Cloudflare、Vercel 和 CloudFront 都是如此。（`cloudflare.com/learning` 对我们两次探测都返回 403，那是一堵墙，但不是针对机器人的墙。）

拦截是人人都在谈的那种失败。在这个样本里它一次都没发生。发生的是更安静的事：门开着，屋子是空的。

## 看看你自己的页面

两条命令。你发送的量：

```bash
curl -s https://你的站点/页面 | wc -c
```

然后去读熬过抽取的那部分：把网址贴进[检测工具](/zh)，看 Markdown 面板，别看分数。要问的不是这个数字大不大，而是你正在读的这段文字，是不是你希望助手拿去引用来描述你的那段。

大多数人会惊讶两次：惊讶剩下的这么少，也惊讶留下来的竟是这几块。

## 简短版

- 智能体看到的是你的原始 HTML，通常不执行 JavaScript，并且只留下大约 1%。
- 如果你的内容靠 JavaScript 拼出来，这 1% 可能恰好等于零。
- 被拦截很少见。内容为空很常见。
- 解法不是少发标记，而是让文字确实出现在响应里。

[检测你的网站](/zh) · [AI 助手读得到你吗](/zh/blog/can-ai-read-your-site) · [向智能体提供 Markdown](/zh/blog/markdown-for-agents)
