
# 如何检查 ChatGPT、Claude 和 Perplexity 能否读取你的网站

当有人向助手打听你的公司时，只会发生两件事之一：它凭训练数据作答，那些数据往往滞后好几个月；或者它当场抓取你的网站并阅读。

你能影响的是后者，而结果由三件事决定。

## 一、你的 robots.txt 放行了吗

AI 公司为不同任务使用不同的 user-agent，拦住一个并不会拦住其余。目前需要关注的是这些：

| User-agent | 公司 | 用途 |
|---|---|---|
| `GPTBot` | OpenAI | 为训练抓取 |
| `OAI-SearchBot` | OpenAI | 为 ChatGPT 搜索建索引 |
| `ChatGPT-User` | OpenAI | 因为用户此刻提问而抓取页面 |
| `ClaudeBot` | Anthropic | 为训练抓取 |
| `Claude-SearchBot` | Anthropic | 为搜索建索引 |
| `Claude-User` | Anthropic | 代表用户抓取 |
| `PerplexityBot` | Perplexity | 为作答建索引 |
| `Perplexity-User` | Perplexity | 按请求抓取 |
| `Google-Extended` | Google | 控制 Gemini 训练，不影响搜索 |
| `Applebot-Extended` | Apple | 控制 Apple Intelligence 训练 |
| `CCBot` | Common Crawl | 为许多其他数据集提供来源 |
| `Bytespider` | ByteDance | 为训练抓取 |

几乎所有人都会弄错的一点：**以「-User」结尾的并不是爬虫**。它们抓取页面，是因为有人正好在这一秒问起了它。屏蔽 `GPTBot` 拦的是训练；屏蔽 `ChatGPT-User` 拦的是潜在客户拿到关于你的答案。大多数网站想要前者，而不想要后者。

先看看你实际提供的是什么：

```bash
curl -s https://yoursite.com/robots.txt
```

用爬虫的眼光去读：`User-agent: *` 下的 `Disallow: /` 会拦住所有没有专属规则的对象，上表中的每一个都在内。

**一个值得知道的陷阱。** 如果你在 Cloudflare 后面且没有自己的 robots.txt，Cloudflare 可能会替你提供一份，也就是它托管的 Content Signals Policy。你会拿到 `200` 和一个看起来完全合理、但并非你写的文件，里面没有你的任何规则，也没有你的站点地图。我们就这样过了好几个月：我们自己的服务器对 `/robots.txt` 返回 `404`，却没人发现，因为每次检查拿到的都是来自边缘节点的 `200`。要分辨两者，直接问你的源站：

```bash
curl -sI https://yoursite.com/robots.txt | grep -i "server\|cf-cache-status"
```

## 二、没有 JavaScript 时内容还在吗

多数 AI 爬虫不执行 JavaScript。如果你的页面在客户端渲染，它们拿到的就是一个空壳。

```bash
curl -s https://yoursite.com/page | wc -c
curl -s https://yoursite.com/page | grep -o "<p>" | wc -l
```

只有几百字节、一个段落都没有，就说明这个页面在爬虫看来是空的，无论它在浏览器里多好看。服务端渲染、静态生成或预渲染都能解决，选哪一种并不重要。

## 三、提取之后还剩多少

即便页面被抓取并渲染，智能体也会丢掉导航、页脚、Cookie 横幅和几乎全部标记，只留下看起来像正文的部分。留下的这些，才是关于你的引用内容。

这一步几乎没人检查，而意外通常就藏在这里。最快的办法是按智能体保留的样子读一遍自己的页面：纯文本，没有骨架。如果剩下的只有两句话和一串菜单项，再怎么调 robots.txt 也无济于事。

## 另外值得准备的

**根目录的 `llms.txt`**：用 Markdown 写的重要页面简要地图。它是一项年轻的约定，不是谁都必须遵守的标准，但成本极低，而且确实会被读取。

**`Content-Signal`**：它让你说明内容可以被怎么使用——为搜索建索引、作为回答的素材、用于训练——而不只是能不能被抓取。全部封禁并非唯一选项，对多数生意来说是错误的那个。

**干净的语义化 HTML。** 真正的标题、`<article>`、`<main>`、替代文本。这与照顾屏幕阅读器是同一份工作，也正是提取能留下正确内容的原因。

## 简短版

按这个顺序跑这三条：

1. `curl -s https://yoursite.com/robots.txt` —— 它们进得来吗？
2. `curl -s https://yoursite.com/page | wc -c` —— 没有 JavaScript 时有内容吗？
3. 读一读提取后剩下的东西 —— 那是你希望被引用的内容吗？

大多数网站过了第一关，倒在第三关，而且从来不知道。

[检查你的网站](/zh) · [面向 AI 机器人的 robots.txt](/zh/tools/robots-txt-generator) · [机器人被允许了吗](/zh/tools/ai-crawlers-checker)
