如果你的网站用 React、Vue 这类框架做纯前端渲染(CSR),那么 JS渲染很可能正在让 AI抓取拿到一片空白:主流 AI 爬虫不执行 JavaScript,抓到的只是空壳 HTML,你的正文、产品参数、用户评价对它们等于不存在。
先说结论:这是"AI 根本没拿到你内容"的工程问题,不是"AI 看不懂你内容"的文案问题——两者修法完全不同,先别急着改文案。下面给你一套能在 5 分钟内自查、按优先级改造、再用数据验证的完整流程。
为什么 SPA 纯前端渲染会让 AI"抓空"?
SPA 首屏返回的 HTML 往往只是一个空 <div id="root"></div>,真正的正文要等浏览器执行 JavaScript、再发 Ajax 请求才出现;而 AI 爬虫抓完原始 HTML 就走——不等、不渲染、不重试。
传统浏览器显示的是"JS 跑完之后"的页面,爬虫看到的是"JS 跑之前"的页面。对纯前端渲染的站点,这两个版本差距巨大:原始 HTML 里的正文几乎为零,loading 菊花图、骨架屏、异步加载的列表,在源码里全是空位。
结果很反直觉:你的页面在浏览器里看着很完整,在 AI 眼里却几乎是白纸。
AI 爬虫和 Googlebot 不是一回事
很多团队默认"Google 能收录我,AI 就能抓到我"——事实相反。
Googlebot 多年前就具备渲染 JavaScript 的能力(两波索引 + Web Rendering Service),所以 CSR 内容对 Google 搜索、AI Overviews、AI Mode 通常没问题,这点 Google Search Central 的 JavaScript SEO 基础文档有明确说明。但 GPTBot、ClaudeBot、PerplexityBot、字节的 Bytespider(豆包系)这些 AI 爬虫不渲染 JS。
所以"通过了 Google 的渲染/移动友好测试"只会给你虚假的安全感。要判断 AI 可见性,必须单独测 AI 爬虫拿到的那份原始 HTML。
哪些 AI 平台不渲染 JS?一张对照表
直接回答:截至目前,几乎所有主流 AI 爬虫都不执行 JavaScript,唯一明显的例外是 Google Gemini(复用 Googlebot 的渲染基础设施)。
Vercel 对自家网络上海量爬虫请求做过统计,《The Rise of the AI Crawler》报告确认 OpenAI(GPTBot、OAI-SearchBot、ChatGPT-User)、Anthropic(ClaudeBot)、Meta、字节跳动(Bytespider)、Perplexity 均不渲染 JavaScript。它们会下载 JS 文件却不执行——报告里 ChatGPT 约 11.5% 的请求抓了 JS、Claude 约 23.8%,但都只当文本存档,不会跑出页面。
| AI 爬虫 / 平台 | 归属 | 是否执行 JS | 月抓取量级(参考) |
|---|---|---|---|
| GPTBot / OAI-SearchBot | OpenAI(ChatGPT) | ❌ 不渲染 | 约 5.69 亿次 |
| ClaudeBot | Anthropic(Claude) | ❌ 不渲染 | 约 3.70 亿次 |
| PerplexityBot | Perplexity | ❌ 不渲染 | 约 2440 万次 |
| Bytespider | 字节跳动(豆包系) | ❌ 不渲染 | 抓取激进,建议单独 robots 段 |
| Gemini | ✅ 可渲染(复用 Googlebot) | 含在 Googlebot 内 |
抓取量级为参考值,来自上述 Vercel 报告(统计自其网络上约一个月的爬虫请求)。

国内的 DeepSeek、豆包、Kimi、通义千问,要么自建 HTTP 抓取(如 Bytespider 走 GET 请求、不开真实浏览器),要么依赖第三方搜索索引做检索增强——对你的站点来说结果都一样:拿原始 HTML、不跑 JS。反过来看这是好消息:只要在原始 HTML 这一关让内容可见,就能一次覆盖这一大批平台。
5 分钟自查:你的网站是不是"AI 隐身"?
直接回答:用三种互相印证的方法,看"关闭 JavaScript 后页面还剩什么"——剩下的空白,就是 AI 抓取的实际所得。
不要凭感觉,跑下面这套动作,几分钟出结论。
方法一:禁用 JavaScript 看源码
- 在 Chrome 打开目标页,按
F12开 DevTools。 Ctrl/Cmd + Shift + P调出命令面板,输入并执行 Disable JavaScript。- 刷新页面。屏幕上还剩下的内容,约等于 AI 爬虫能拿到的内容。
如果刷新后正文消失、只剩导航或一片空白,问题已经确诊。
方法二:curl 看原始 HTML(最接近爬虫真实所得)
直接以 AI 爬虫的 User-Agent 请求页面,看返回的原始 HTML 里有没有正文:
# 看 GPTBot 拿到的原始 HTML 里,有没有你页面上的某句正文
curl -sA "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)" \
"https://你的域名/你的页面" | grep -o "页面上一句独有的正文"
# 数一下原始 HTML 的正文字符量,太少说明是空壳
curl -sA "GPTBot/1.0" "https://你的域名/你的页面" | wc -m
判读标准:grep 没回显、或 wc -m 的数字远小于你肉眼看到的篇幅,就说明正文是 JS 渲染出来的,AI 抓到的是空壳。经验值:纯 CSR 站点的原始 HTML 常只有几百到两三千字符(大半还是 <script> 标签),而正文直出的页面通常上万字符——量级差一眼能看出来。
方法三:直接问 AI 平台
打开 DeepSeek、豆包、Kimi、通义千问,问"X 品牌的 Y 产品有哪些参数 / 有什么评价",看它是否引用你的官网、答得对不对。如果它绕过你的站、或张冠李戴,往往不是它不想引用,而是它压根没抓到你的内容。这一步也是AI 搜索监测 POC 的起点。
看懂自查结果:三种典型故障
直接回答:自查结果通常落在三种故障形态,对应不同的改造范围——别用一种药治所有病。
- 整页空壳(纯 CSR):原始 HTML 除了
<div id="root">几乎没正文,导航、标题、内容全靠 JS 生成。curl 特征:wc -m极小、grep任何正文都没回显。最严重,整站对 AI 隐身。 - 半空(局部 CSR / 异步注水):框架(导航、页脚)在原始 HTML 里有,但核心正文、产品参数、评论、价格是异步拉取的空位。curl 特征:搜导航能命中、搜正文或价格落空。AI 拿到骨架,却拿不到肉。
- 假成功(数据在源码里但没渲染):原始 HTML 其实带了 JSON 数据或服务端组件,可见正文却只放了
<noscript>占位。curl 特征:grep得到 JSON 字段、却搜不到成段正文。这种情况 AI 有时能从内嵌 JSON 抠出信息——但不能赌,仍应让正文以 HTML 形式直出。
判断属于哪一种,决定了你是要整站重构,还是只改几个关键模板。
怎么改造:SSR、SSG、预渲染怎么选
直接回答:目标只有一个——让正文出现在服务器返回的首屏 HTML 里。四条实现路径,按"内容更新频率 + 改造成本"选,别跟风选最重的。
| 方案 | 适合场景 | 对 AI 可见性 | 成本 | 关键注意 |
|---|---|---|---|---|
| SSG 静态生成 | 博客、文档、落地页等内容相对稳定 | 高 | 低 | 性价比最高,首选 |
| SSR 服务端渲染 | 内容频繁变动、需实时(电商、资讯) | 高 | 中高 | 注意 INP / 服务器开销 |
| ISR 增量静态 | 海量页面、部分更新 | 高 | 中 | 兼顾规模与新鲜度 |
| 预渲染 Prerender | 不想重构的存量 SPA | 对爬虫高 | 低–中 | 给爬虫和给用户的内容须一致,别做 cloaking |
落地建议很直接:新项目直接用默认服务端渲染的框架(Next.js、Nuxt、SvelteKit、Astro),它们让"服务端出 HTML"成为零额外成本的默认项。存量 SPA 一时无法重构,可先上预渲染给爬虫发静态快照过渡——但要知道 Google 早在 2022 年就已不再把动态渲染当作长期推荐方案(Rendertron 也已停止维护),它只是临时桥,不是终点。
还有一条红线:给 AI 爬虫的快照内容,必须和给真人用户的内容一致。差异化投放(cloaking)既违反搜索规范,也会让 AI 学到错误事实。
正文能直出之后,再补一步让 AI"读得懂、敢引用":用结构化数据(Schema)明确标注实体,把关键事实写成可直接摘录的短段落。具体框架、示例和检查清单可对照AI 友好内容怎么写逐项过一遍,确认从"爬得到"升级到"能引用"。

改造前后怎么验证效果
直接回答:用"改造前基线 + 改造后复测"的对照来验证,盯三个指标——AI 提及率、被引用次数、引用来源里有没有你的域名——而不是只看页面源码变没变。
源码层面的验证很简单:改造后重跑上面的 curl,确认原始 HTML 里能 grep 到正文。但工程通过 ≠ 业务见效,真正的闸口在 AI 侧。
建议这样做对照实验:
- 改造前:在 DeepSeek、豆包、Kimi、通义千问上,用一批固定 Prompt 测你的品牌词、产品词,记录当前的 AI 提及率、被引用次数、情感与竞品占位,作为基线。
- 改造后 2–4 周:AI 爬虫重新抓取、更新索引需要时间(这个"改口"周期有多长、怎么跟踪,可参考产品资料更新后 AI 多久会改口)。到期用同一批 Prompt 复测,对比引用来源里是否开始出现你的官网域名。
- 持续监测:把这套测量做成常态看板,而不是一次性体检。
人工逐平台、逐 Prompt 跑显然不现实。这也是 MaxAEO 做的事:批量监测品牌在各 AI 平台的提及、排名、情感和引用来源,把"改造前 AI 几乎不引用我 → 改造后官网开始被引用"这条曲线直接画出来,让工程改造和 AI 可见度结果一一对应。
常见问题
问:我的网站在 Google 排名很好,是不是就不用管 AI 抓取?
答:不能划等号。Googlebot 会渲染 JavaScript,所以 CSR 内容对 Google 多数没问题;但 GPTBot、ClaudeBot、Perplexity、豆包系爬虫都不渲染 JS。Google 收录正常 ≠ AI 抓得到,必须单独验证 AI 爬虫拿到的原始 HTML。
问:用了 Next.js / Nuxt 这类框架就一定安全吗?
答:不一定。框架支持服务端渲染,不等于你的页面真的服务端出了正文。如果关键数据仍用 useEffect / 客户端 fetch 在浏览器里拉取,那部分内容照样不进首屏 HTML。判断标准不看你用什么框架,只看 curl 拿到的原始 HTML 里有没有正文。
问:只在 robots.txt 里放行 AI 爬虫,能解决抓空问题吗?
答:不能。放行只决定"允不允许来抓",不改变"抓到的是空壳"这个事实。robots 解决权限,JS渲染问题要靠服务端出 HTML 解决,两件事互不替代。
问:加 llms.txt 是不是就够了?
答:不够。llms.txt 是给 AI 的内容索引 / 导航,价值在"指路",但它替代不了页面正文本身可被抓取。正文仍要在 HTML 里直出,llms.txt 只能作为补充。
问:预渲染算不算作弊(cloaking)?
答:只要给爬虫和给用户的内容实质一致,预渲染就是合规的渲染优化,不算 cloaking。真正越线的是给 AI / 搜索发一套、给用户发另一套内容。保持一致是底线。
问:改造后多久能在 AI 回答里看到变化?
答:通常是数周量级,取决于各平台的重抓频率和索引更新节奏。所以验证要留出 2–4 周窗口,再用同一批 Prompt 复测,别在改完第二天就下结论。