让网站被 ChatGPT
读到并引用的三项检查
顾客通过 AI 回答找到商家,网站内容也需要能被 AI 读取。Nelson Lee 的指南围绕三项检查展开:源码里有没有正文,搜索和代理抓取类爬虫能否访问,价格、地点和预约方式是否写成纯文字。文中附有分项检查和总检查提示词,可交给 Claude Code 执行。
从 AI 回答到网站访问
2026 年夏天,独立作者 Nelson Lee 在克里特岛参加一场烹饪课。邻座一对从马提尼克飞来的夫妇说,他们通过 ChatGPT 找到了这门课。同桌其他人的答案是 Google 或朋友推荐。2026 年 9 月 11 日,Lee 把这段经历写进 Substack 上的一篇指南:在他看来,通过 AI 找到商家的顾客会越来越多。
ChatGPT 会在回答中附上来源链接,这就是引用。用户点击链接进入网站,就形成一次 AI 推荐访问。

数据来自流量统计公司 Similarweb 的《2026 Generative AI Landscape》报告 [官方]。22.6% 是同一报告按美国桌面端口径统计的旅游类引用率,原文取整写「约 23%」。
网站能否获得这类访问,首先涉及一个基础问题:AI 能不能读到页面内容。Lee 为此提出三项检查:文字是否直接写在网页源码里,AI 爬虫能否访问,价格、地点和预约方式等信息是否写成纯文字。在他看来,大多数小企业网站至少有一项不过关。
三项检查各附一段提示词,末尾还有一段总检查提示词,都可以交给 Claude Code 执行。这个由 Anthropic 推出的 AI 编程助手在电脑终端里运行,可以抓网页、读文件和执行命令。
多数 AI 爬虫只读取网页源码
浏览器打开网页,先下载 HTML 源码这份页面底稿,再运行 JavaScript 程序。很多现代网站靠这些程序把文字和图片填进页面,浏览器随后把结果显示在屏幕上,这个过程叫渲染。
搜索引擎和 AI 公司用爬虫程序自动访问网页、收集内容。但许多 AI 爬虫只下载 HTML,不会继续运行 JavaScript。
2024 年 12 月,网站托管公司 Vercel 与做 SEO(搜索引擎优化)技术咨询的 MERJ 发布了一项分析,对象是 GPTBot 一个月内在 Vercel 网络上的 5.69 亿次抓取。Vercel 的《The rise of the AI crawler》指出,Googlebot 会运行 JavaScript,GPTBot、ClaudeBot、PerplexityBot 等主流 AI 爬虫不会。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Cooking Class</title>
<script src="/app.js"></script>
</head>
<body>
<div id="root"></div>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<title>Cooking Class in Chania</title>
</head>
<body>
<h1>Cooking Class in Chania, Crete</h1>
<p>A four-hour class in a village kitchen.
Cook five Cretan dishes, then eat them
with local wine.</p>
<ul>
<li>Price: €95 per person</li>
<li>Duration: 4 hours</li>
<li>Includes: lunch and wine</li>
<li>Book: hello@example.com</li>
</ul>
</body>
</html>图 2 · 同一门课的页面,两种做法:用 curl 各抓一次,看到的源码如上 · 按原文两张示意图重排(示意,非真实站点)
Google 是一个特殊情况。Google 搜索结果顶部那段 AI 生成的摘要叫 AI Overviews,它建立在 Google 的正常索引之上,而 Googlebot 会运行 JavaScript。因此,第一项修复主要影响 ChatGPT、Claude 和 Perplexity;后两项对这几家的 AI 搜索都适用。
把内容放进 HTML
页面上的文字是否已经写进源码,可以直接检查。Lee 提供了一项不需要专门工具的三十秒测试,也列出了关闭 JavaScript 和使用命令行的替代方法。
最直接的方法是打开首页,在浏览器菜单里选“查看网页源代码”。Chrome 在 Mac 上的快捷键是 Cmd+Option+U,在 Windows 上是 Ctrl+U。搜索页面上的一句话:能找到,就通过了这项测试;如果源码很短、几乎全是脚本标签,又找不到那句话,就没有通过。
第二种方法是关掉 JavaScript。打开 Chrome 自带的开发者工具面板 DevTools,按 Cmd+Shift+P,输入“Disable JavaScript”,回车后刷新。页面如果变成空白,那片空白就是不运行 JavaScript 的 AI 爬虫看到的内容。
也可以在终端运行一行 curl 命令。curl 只下载网页源码,不运行页面程序,用它就能检查原始 HTML 中是否有这句话。
curl -s https://yoursite.com | grep -c "a sentence from your page"结果为 0,说明所查句子不在 HTML 里。
Shopify、Squarespace、WordPress 等常见建站平台会在服务器上生成页面,再发给访客,默认可以通过这项检查。Lee 指出,自行开发的网站更容易出现这个问题。以网页框架 React 为例:通过 Vite 或 Create React App 这类工具创建项目时,默认设置往往只向浏览器发送一个空容器,再由浏览器组装页面。
Lee 给出的修复方法是改用服务器端渲染,让服务器先生成带文字的页面;或采用静态导出,提前保存完整 HTML。Next.js、Astro、Nuxt 等网页框架默认支持这类做法。也可以增加预渲染步骤:提前运行页面程序,把结果保存为爬虫能直接读取的 HTML。
下面的 Claude Code 提示词会用 curl 在不运行 JavaScript 的情况下抓取页面并统计词数,再用没有窗口、在后台运行的无头浏览器启用 JavaScript 抓取一次。它会对比两次结果,并列出只在 JavaScript 运行后出现的内容。
Compare what an AI crawler sees on [URL] with what a person sees.
Fetch the page with curl and no JavaScript, extract the visible text
and count the words. Then load the same page in a headless browser
with JavaScript on and do the same. Show me both counts and list any
content that only appears after JavaScript runs. If the raw HTML is
mostly an empty container and script tags, say so plainly.允许搜索和代理抓取类爬虫访问
内容已经写进 HTML,还要检查爬虫能否访问。网站可以在根目录放置 robots.txt 文件,网址是“你的域名/robots.txt”,用来说明哪些内容允许抓取。爬虫访问时会通过 User-agent 报出自己的名字,文件就按这些名字分别设置规则。
Lee 提到,2023 到 2024 年,很多网站曾统一封锁 AI 爬虫,当时针对的是训练用途。如今,为回答寻找来源的爬虫也可能被这些规则拦住。
搜索爬虫
提前抓取网页、建立索引,供后续回答引用。
- OAI-SearchBotChatGPT
- Claude-SearchBotClaude
- PerplexityBotPerplexity
代理抓取
根据用户当前的问题,实时访问相关网页。
- ChatGPT-UserChatGPT
- Claude-UserClaude
- Perplexity-UserPerplexity
训练爬虫
收集用于训练模型的内容。
- GPTBotOpenAI
- ClaudeBotAnthropic
- CCBotCommon Crawl
- Google-ExtendedGoogle
图 3 · 原文列出的三类爬虫及名称。按 Lee 的建议,搜索和代理抓取两类需要放行,训练类由网站主决定。
按 Lee 的建议,网站想出现在 AI 回答里,需要放行搜索和代理抓取两类;训练类是否放行,由网站主决定。下面的 robots.txt 示例为前两类爬虫设置了 6 个允许抓取的条目。
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /如果网站挂在 Cloudflare 上,robots.txt 前面还有一道关卡。很多网站的访问流量先经过 Cloudflare 做加速和防护,再到网站服务器。Cloudflare 后台的 AI Crawl Control 面板也把 AI 流量分成搜索、代理和训练三类,可以分别放行或拦截。
Cloudflare 于 2026 年 7 月 1 日宣布、9 月 15 日启用新的默认设置,适用于新域名、加入已有账号的新网站,以及从未改过相关设置的免费套餐账号。在展示广告的页面上,训练和代理两类爬虫默认被拦截,搜索类继续放行。
还要留意混合用途爬虫。Googlebot、Applebot 和 Bingbot 分别来自 Google、Apple 和 Microsoft,既可能为搜索建立索引,也可能用于训练。Cloudflare 会按适用于它们的最严格规则评估。因此,一个封锁训练类爬虫的网站,可能连 Googlebot 也一起封掉。Lee 的操作建议是进入 Cloudflare 后台的 Security 设置,确认搜索和代理两类保持放行状态。
Cloudflare
流量先经过加速与防护层。AI Crawl Control 可以按搜索、代理、训练用途分别设置访问权限。
robots.txt
网站根目录下的文本文件,按爬虫名称说明哪些内容允许抓取。
你的网页
请求抵达网站后,爬虫读取 HTML 中的内容。
图 4 · 使用 Cloudflare 时的访问路径:防护层与 robots.txt 的设置需要分别检查。
原文未提的一点:据 OpenAI / Perplexity 官方文档,ChatGPT-User 可能不受 robots.txt 约束,Perplexity-User 通常不读取这个文件。这两种由用户请求触发的抓取,与自动建立索引的搜索爬虫不同;robots.txt 中的规则不能单独说明它们能否访问网站。
建站平台也可能另有开关,Lee 提醒检查两处。Squarespace 的 Settings 下有“屏蔽已知 AI 爬虫”选项,需要确认它处于关闭状态。Shopify 可以通过 robots.txt.liquid 模板修改 robots.txt。如果之前的开发者曾在模板里封锁这些爬虫,需要把相应规则改回来。
下面的提示词检查 robots.txt 中 9 个爬虫的访问规则,并分别以 OAI-SearchBot 和 ClaudeBot 的 User-agent 请求首页。返回的 HTTP 状态码用于判断访问结果:403 表示请求被拒绝;200 表示页面正常返回,但不能证明真实爬虫已经获准访问,因为有些防火墙还会核对来源 IP 段。
Fetch [URL]/robots.txt. For each of GPTBot, OAI-SearchBot, ChatGPT-User,
ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User
and Google-Extended, tell me whether it is allowed, disallowed, or not
mentioned. Then fetch the homepage twice more, once with the User-Agent
set to OAI-SearchBot and once as ClaudeBot, and report the HTTP status
each time. A 403 means something in front of the site is blocking bots.
A 200 does not prove the bot is allowed, because some firewalls verify
IP ranges, so note that.把具体信息写成纯文字
爬虫能读到页面后,还需要从中找到回答问题的具体信息。例如,ChatGPT 回答“Chania 两人烹饪课”时,需要知道价格、时长、包含什么、地点和预约方式。
克里特岛中心的地道烹饪体验
这句宣传文案没有说明价格、时长、具体地点或预约方式。
四小时。每人 95 欧元。五道菜,含午餐和酒。距 Chania 二十分钟的乡村厨房。邮件或 WhatsApp 预约。
价格、时长、包含内容、地点和预约方式都有文字说明。
Lee 为大多数本地商家列出六项需要写清的信息:
- 价格,带货币单位,按人或按件
- 时长或营业时间
- 包含什么、不包含什么
- 地点,城镇名写成文字,不能只出现在嵌入的地图里
- 怎么预约,真实的邮箱、电话或链接
- 一小段常见问答,电话里最常被问的几个问题
这些信息怎么呈现,Lee 给了两条规则:用文字写出,尽量组成完整句子。只放在图片或 PDF 菜单里的价格,这些爬虫读不到。“价格:95 欧元”可以被识别,而“一节四小时的课每人 95 欧元,含午餐和酒”更容易直接用于回答。
在纯文字之外,Lee 还提到一个可选项:用结构化数据减少歧义。做法是在网页源码头部加入一小段 JSON-LD,按固定格式描述业务,供机器读取。LocalBusiness、Product、Event 分别对应本地商家、商品和活动,可按内容选择。这不是完成前述修复的必要条件。
下面的提示词会检查贴入的页面文字,列出顾客可能询问、但页面中缺失或表述含糊的信息,再把内容改写成完整句子的纯文本。它会保持原有语气,不添加页面没有表达过的主张。
Here is the text of my page: [paste]. The business is [one sentence].
List every fact a customer would ask about that is missing or vague:
price, duration or hours, what is included, location, how to book.
Then rewrite the page in plain text so each of those is a complete
sentence an AI assistant could quote directly. Keep my tone. Do not
add claims I did not make.汇总检查,llms.txt 作为可选项
2024 年有人提议在网站上放一个 llms.txt 文件,用 markdown 这种带简单符号的纯文本写法向语言模型介绍网站。许多 SEO 建议把 llms.txt 当成必做项,但 Lee 的判断是,它并非必需。
截至 2026 年夏天,没有一家主要 AI 公司确认其搜索爬虫会读取这个文件。Google 搜索团队的公开发言人 John Mueller 也提到,服务器日志显示 AI 系统没有请求 llms.txt。Lee 的建议是最后再做,不要指望它代替前面三项修复。
总检查提示词把前文内容合在一起,分五步执行:读取原始 HTML,在无头浏览器可用时对比运行 JavaScript 后的文字,检查 9 个爬虫的访问规则并测试两种 User-agent,核对业务信息与 JSON-LD,最后检查可选的 llms.txt。它会展示检查结果,并在末尾输出按影响排序的修复清单,每项一行,不修改网站。Lee 建议先检查自己的网站,再检查竞争对手的网站。
Audit this website for AI search visibility: [URL]
Run these checks and show your work.
1. Raw HTML. Fetch the URL with curl and no JavaScript. Extract the
visible text. Report the word count, the title, the H1 and H2s, and
whether the body is mostly an empty container with script tags.
2. Rendered text. If a headless browser is available (playwright or
chromium), load the same URL with JavaScript on and extract the visible
text. Compare the two word counts and list any content that only appears
after JavaScript runs. If no browser is available, say so and rely on
check 1.
3. Bot access. Fetch /robots.txt. For each of GPTBot, OAI-SearchBot,
ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot,
Perplexity-User and Google-Extended, report whether it is allowed,
disallowed, or not mentioned. Then fetch the homepage again with the
User-Agent set to OAI-SearchBot, and again as ClaudeBot, and report the
HTTP status each time. A 403 means the edge is blocking bots. A 200 does
not prove the bot is allowed, because some firewalls verify IP ranges,
so say that in the report.
4. Specifics. From the raw HTML text, report whether a price, an address
or town, hours or duration, a phone number or booking link, and a plain
one-sentence description of what the business does are present. Check
for JSON-LD structured data and name the type if found.
5. llms.txt. Check whether /llms.txt exists. Treat it as optional, since
no major AI company has confirmed its crawlers use it. Offer to draft
one from the site's main pages.
Finish with a fix list ranked by impact, one line each, most important
first. Do not fix anything yet.Lee 用同样的三项检查收尾:内容在 HTML 里,搜索和代理抓取两类爬虫能访问,具体信息写在页面上。在他看来,这三项都合格,商家就已经走在 ChatGPT 正在比较的大多数同行前面。报告末尾的修复清单,则列出还没有通过的项目。