AI 爬虫读得到你的网站吗?我查了我自己的
我用八个 AI 爬虫的名字测试了这个网站,八个都进得来。真正被挡住的,是我自己的分享预览图,挡住它的是我自己 robots.txt 里的一行。这里是那条命令、结果、我修了什么,以及我现在会做的五项检查。
其他语言版本 English

我为什么要查
从 2025 年 7 月起,Cloudflare 对新域名默认屏蔽 AI 爬虫,除非站长另行选择。这个网站就跑在 Cloudflare 上。我在这里写东西,是为了让人、搜索引擎和答案引擎都能找到我的想法,而一个答案引擎不可能引用一个它从来不被允许抓取的页面。
所以在做任何聪明的事之前,我想先回答那个无聊的问题:它们到底进不进得来?
我用两个 Claude 会话经营这个网站,一个负责规划的 Brain,一个负责建造的 Hand。这次审计是 Brain 的工作,只读:从外面看线上的网站,什么都不改,把事实写下来。
检查,只要一条命令
每个爬虫都用一个 user-agent 字符串报上名字。你可以自己发出同样的字符串,看你的服务器怎么回答:
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" \
-A "Mozilla/5.0 (compatible; GPTBot/1.1)" \
https://yappatyih.com/writing/the-mamak-table-question/
返回 200 而且是完整的页面大小,表示这个名字被放行。返回 403、一个验证页面,或者大小明显变小,表示网站前面有东西在把它挡回去。
这是 2026 年 10 月 2 日对这个网站一篇文章的测试结果:
| 名字 | 属于 | 做什么 | 状态 |
|---|---|---|---|
| GPTBot | OpenAI | 收集页面用于训练 | 200 |
| OAI-SearchBot | OpenAI | 建立 ChatGPT 的搜索索引 | 200 |
| ChatGPT-User | OpenAI | 用户提问时抓取页面 | 200 |
| ClaudeBot | Anthropic | 收集页面用于训练 | 200 |
| Claude-User | Anthropic | 用户提问时抓取页面 | 200 |
| PerplexityBot | Perplexity | 建立 Perplexity 的索引 | 200 |
| CCBot | Common Crawl | 许多模型使用的开放网页存档 | 200 |
| Bytespider | 字节跳动 | 为它的模型收集页面 | 200 |
| Google-Extended | 不是爬虫,见下文 | 200 | |
| Applebot-Extended | Apple | 不是爬虫,见下文 | 200 |
每一个拿到的,都是和浏览器一样的 54,570 字节。
这个检查不能告诉你的事
从我的笔记本上得到的 200,能证明的比看起来少。我宁可说清楚,也不想夸大它。
第一,我是在假装。请求来自我自己的地址,只是借了一个名字。它说明网站前面没有东西按名字屏蔽。它不能说明真正的爬虫从它自己的网络过来时会怎样,如果防火墙是按地址或行为来判断的话。唯一完整的证明是你的服务器日志:真正的机器人,真正的状态码。
第二,我的八个名字里有两个是错的。Google-Extended 和 Applebot-Extended 不是爬虫。它们是写在 robots.txt 里的词,用来告诉 Google 和 Apple:它们的普通爬虫已经抓取的页面,可不可以用于 AI。从来没有任何东西会自称 Google-Extended 来访问你的网站,所以用 curl 测这个名字,什么也没测到。我 9 月 30 日的审计把这两个都列为「收到 200」的爬虫。那一行是真的,也是没有意义的。对这两个,检查的方法是读你的 robots.txt,而不是发请求。
日志怎么说
这篇文章发出之后,我去看了我说自己没查过的那份日志。Cloudflare 为 AI 爬虫单独留了一份。从 2026 年 9 月 28 日到 10 月 2 日上午,它记录了 17 个爬虫(包括搜索引擎的)对这个网站的 959 次请求,没有任何一个爬虫被拦截。
| 爬虫 | 属于 | 得到回应的请求 |
|---|---|---|
| GPTBot | OpenAI | 217 |
| ClaudeBot | Anthropic | 158 |
| OAI-SearchBot | OpenAI | 31 |
| ChatGPT-User | OpenAI | 27 |
| CCBot | Common Crawl | 24 |
| PerplexityBot | Perplexity | 14 |
| Bytespider | 字节跳动 | 4 |
| Claude-User | Anthropic | 3 |
所以那次敲门是诚实的:真正的爬虫拿到的,和我借来的名字拿到的一样,都是 200。这篇文章本身在发布后的头三个小时里被抓取了 17 次。而 Google-Extended 和 Applebot-Extended 在名单里完全没有出现,对两个本来就不是爬虫的名字来说,这正是该有的样子。
日志还显示了一件事。有东西自称是 AI 爬虫,向这个网站索要名为 .env.production 和 credentials.json 的文件。每一次得到的都是 404,因为这些文件根本不在那里。爬虫的名字只是一个名字。让真正的爬虫进来,并且不要在网站上放任何你介意陌生人来要的东西。
真正被挡住的:我自己的图片
这次审计第一个真正的发现,和 AI 一点关系都没有。我的 robots.txt 写着:
User-agent: *
Allow: /
Disallow: /og/
它看起来很整齐:一个放工具图片的文件夹,不让爬虫碰。但 /og/ 里放的是 en.png 和 zh.png,也就是每一个没有自己封面的页面,交给任何来要预览图的程序的那张图。那些遵守 robots.txt 的预览抓取程序,被我亲口告知:不要来拿我专门为它们做的那张图。
修法是删掉一行。这个文件现在只有四行,/og/en.png 返回 200,类型是 image/png。
同一轮还找到三件同类的事,每一件都是网站在对机器说的一个小谎:
- 一个不存在的站点地图地址。
/sitemap.xml返回 404,而 Bing 的记录里还留着它。现在它会跳转到真正的索引。 - 一家公司,两个 id。 在结构化数据里,我的个人资料用一个 id 称呼 BlackRevo,而这个网站上 BlackRevo 自己的页面用的是另一个。对机器来说,那是两家公司。现在每个组织在所有地方都只有一个 id,和它自己官网用的一样。
- 倒着走的日期。 站点地图里文章的
lastmod是它最后一次保存的日期,按 UTC 算,所以一篇在发布时间之前保存的文章,会声称自己在存在之前就被修改过。现在它显示发布时间,直到真的有修改为止。
Hand 在 9 月 30 日把这些全部修好,并留下 102 个通过的测试,其中有专门钉住这些 id 和站点地图日期的。
我不再追的东西
这里的每篇文章都以常见问题结尾,并标记为 FAQPage 数据。我以前把它看成赢得 Google 结果下方那些可展开问题的方法。那个奖品已经没有了:Google 在 2023 年 8 月把 FAQ 富媒体结果限制在政府和健康类网站,而它的文档现在写明,从 2026 年 5 月 7 日起完全不再显示。
我还是把常见问题留了下来,只是改了它的用途。每个问题现在是一个真正的标题,有自己的链接,按人会问的方式来写,答案可以独立成立。这不是为了富媒体结果。这是为了跳着读的读者,也为了把页面拆成一段一段来读、需要每一段都能独立看懂的答案引擎。
这个网站上最重的东西,页面背后的 three.js 世界,也是在同一次审计里被测量的。那成了另一个故事:我的文章页只得了 39 分的那个晚上。
五项检查
这就是全部的方法。十分钟,不需要任何付费工具。
- 像陌生人一样读你的 robots.txt。 在浏览器里打开它。对每一行 Disallow,说出那里放的是什么。说不出来,就在爬虫之前先弄清楚。
- 用每个爬虫的名字敲门。 对一个页面,用每个真正的爬虫的名字跑一次上面的 curl 命令。状态和大小要和浏览器一样,否则你就有一个屏蔽要找出来。
- 抓取你的页面指向的每一样东西。
og:image、站点地图、canonical 地址、订阅源。检查状态码和内容类型,而不只是「有东西回来」。 - 一样东西,一个 id。 在结构化数据里,一个人或一家公司只有一个 id,在每个页面、在你控制的每个网站上都一样。
- 不会说谎的日期。 发布日期、修改日期和站点地图里的日期,应该彼此一致,也和真正发生的事一致。
这些都不会让答案引擎引用你。它们只是拿掉你自己造成的、让它不引用你的理由。被引用的,仍然是一个把一件真实而具体的事说清楚的页面。这张清单只是确保那个页面走得到。
常见问题
怎么检查 AI 爬虫能不能访问我的网站?
用爬虫的 user-agent 字符串请求你的一个页面,例如 curl -A "Mozilla/5.0 (compatible; GPTBot/1.1)",然后看状态码和大小。返回 200 和完整页面,表示这个名字被放行。对你在意的每个爬虫重复一次,再到服务器日志里确认真正的机器人拿到的也是 200。
Cloudflare 会默认屏蔽 AI 爬虫吗?
对 2025 年 7 月之后加入的域名,Cloudflare 会屏蔽已知的 AI 爬虫,除非站长选择放行;它也可以代管你的 robots.txt。在这个网站上,2026 年 9 月 30 日和 10 月 2 日的测试都没有任何屏蔽,robots.txt 也原样提供。如果你的网站在 Cloudflare 上,去看控制台里的 AI Crawl Control,并自己跑一次检查。
Google-Extended 是爬虫吗?
不是。Google-Extended 是 robots.txt 里的一个标记,用来告诉 Google:它的普通爬虫抓取的内容,可不可以用于它的 AI 模型。没有任何东西会用这个名字访问你的网站。Applebot-Extended 对 Apple 也是同样的作用。这两个都在 robots.txt 里控制,不在防火墙里。
2026 年还值得加 FAQ 结构化数据吗?
为了富媒体结果,不值得:从 2026 年 5 月 7 日起,Google 不再显示 FAQ 富媒体结果。我仍然在每篇文章里写常见问题,用真正的标题和可以独立成立的答案,因为读者会直接跳到那里,而答案引擎是一段一段地读页面的。结构化数据留着没有任何成本。