GPTBot 和 PerplexityBot 读取你的原始 HTML,并完全跳过你的 JavaScript。Beacon 在真实的无头浏览器中渲染你的页面,准确向你展示 AI 引擎永远看不到的内容 — 以及关键词。
GPTBot(OpenAI / ChatGPT)、PerplexityBot、ClaudeBot 和 Amazonbot 这类 AI 爬虫请求你的 URL 并解析返回的原始 HTML — 就是你用“查看源代码”看到的那些字节。它们不会启动浏览器引擎或运行你的脚本。因此,一个发送几乎为空的根 div、再用 JavaScript 注入全部真实内容的单页应用,在人看来很完整,在机器人看来却是空白。你可以在 Google 上有排名、对访客看起来完美,却仍对买家用来寻求推荐的 AI 引擎隐形。
我们像不渲染的爬虫那样抓取你页面的静态 HTML,在真实的无头浏览器中加载同一个 URL 以捕获渲染后的 DOM,然后比对两者 — 报告只在 JavaScript 运行后才存在的内容占比、静态版本中缺失的确切关键词,以及你的渲染模式(服务端渲染、混合或客户端渲染),让你立刻知道自己暴露的程度。
修复的原则始终相同:让你的重要内容进入服务器发送的 HTML 中,先于任何 JavaScript 运行 — 通过服务端渲染、静态生成,或为机器人做动态渲染。至少要确保标题、正文、价格和常见问题答案存在于静态 HTML 中,而不是由客户端 JavaScript 抓取并注入。
几乎都不会。GPTBot(ChatGPT/OpenAI)、PerplexityBot、ClaudeBot、Amazonbot 和大多数其他 AI 爬虫抓取你的原始 HTML 并原样解析。它们不会启动浏览器引擎来运行你的 JavaScript,因此任何在加载后由 JS 注入的内容,对它们实际上是不可见的。
渲染差距是你的静态 HTML(AI 爬虫下载的内容)与你的 JavaScript 渲染后 DOM(浏览器中的人看到的内容)之间的差别。Beacon 把它表示为可见内容的百分比,以及只在 JavaScript 执行后才存在的关键词集合。渲染差距大,意味着 AI 引擎读到的是一个近乎空白的页面。
这取决于你如何渲染。纯客户端的 React 应用(例如 Vite SPA 或 create-react-app)发送一个几乎为空的 HTML 外壳,并用 JS 构建一切 — 这是最大的渲染差距。Next.js、Remix、Astro 等框架可以服务端渲染或静态生成页面,从而缩小差距 — 但仅限于你实际如此配置的路由。Beacon 检查的是真实输出,而非假设。
把你的重要内容移入服务器发送的 HTML 中。主要选项是服务端渲染(SSR)、静态站点生成(SSG / 构建时预渲染),以及动态渲染 — 即向机器人提供预渲染的 HTML 快照。至少要确保标题、正文、价格和常见问题答案存在于静态 HTML 中,而不是由客户端 JavaScript 抓取并注入。
大体上看得到 — Googlebot 运行现代渲染引擎,会在第二阶段执行你的 JavaScript,因此客户端渲染的内容仍可获得排名(尽管渲染更慢且可能被推迟)。关键区别在于 AI 搜索:GPTBot、PerplexityBot 和大多数 LLM 爬虫根本不渲染 JavaScript。所以你可能通过 Google 的 JS-SEO 检查,却仍对 ChatGPT 和 Perplexity 隐形。