Bot-Eye View

See your page the way AI crawlers do. GPTBot, PerplexityBot and ClaudeBot don’t run JavaScript — this tool fetches your page raw vs fully rendered and shows exactly what content, links and schema are missing from your raw HTML, with concrete fixes.

What the raw vs rendered comparison reveals

The tool fetches your page twice — the raw HTML an AI crawler receives, and the fully JS-rendered DOM a real browser builds — then lines up six signals side by side: words of text, H1 headings, all headings, links, images, and JSON-LD schema blocks. Any figure shown in red means the raw (AI) count is lower than the rendered (user) count, so that element only exists after JavaScript runs and never reaches GPTBot, PerplexityBot or ClaudeBot.

Which invisible elements hurt AI visibility most

Not every gap costs you the same. Prioritize the ones that break citation and discovery:

  • Body text & H1 — if your headline and main copy are injected by JavaScript, every engine whose crawler doesn't render has nothing to quote or summarize.
  • Internal links — links that appear only after render become crawl dead-ends for the bots that don't render, so they can't discover the rest of your site.
  • JSON-LD schema — Article, FAQ or Product markup added client-side is missing from the raw HTML, so it does nothing for the engines whose crawlers don't render it.

When to run a bot-eye check

Run it on any page built with React, Vue, Angular or another single-page-app framework, after a redesign or CMS migration, and before an AEO/GEO push. A high visibility grade confirms your most important content ships in the initial HTML response — the safest state for every crawler that doesn't render JavaScript.

Frequently asked questions

Why do AI crawlers see a different version of my page?

Most AI crawlers — GPTBot and OAI-SearchBot (ChatGPT), PerplexityBot, ClaudeBot, and others — fetch your raw HTML and do not execute JavaScript. If your text, links or structured data are injected by JavaScript after the page loads (common with React, Vue, Angular and other single-page-app frameworks), the crawler never sees them. This tool fetches your page both ways — raw and fully JS-rendered — and shows you the gap.

What does the visibility percentage mean?

It’s the share of your rendered text that’s already present in the raw HTML — i.e. how much of your content a crawler that doesn’t run JavaScript can actually read. 100% means your page is fully server-rendered and everything is visible. A low number means most of your content only appears after JavaScript runs, so the crawlers that read raw HTML — GPTBot, ClaudeBot, PerplexityBot — see an almost-empty page. Googlebot renders JavaScript, and Apple says Applebot does too, so Google’s AI features and Apple search can still see it.

How do I fix content that’s missing from my raw HTML?

Serve the important content in the initial HTML response. Options include server-side rendering (SSR), static site generation (SSG), or pre-rendering / dynamic rendering for bots. Frameworks like Next.js, Nuxt and Astro do this by default. At minimum, make sure your title, H1, main body text, internal links and JSON-LD schema are in the raw HTML rather than injected by client-side JavaScript.

Is this the same as how Google sees my page?

Not quite. Googlebot renders JavaScript (on a delay), and Apple says Applebot does too, so Google’s search and AI features and Apple’s search can eventually see JS-injected content. OpenAI’s, Anthropic’s and Perplexity’s crawlers do not render it. So a page can rank in classic Google yet still be missing most of its content as far as ChatGPT or Perplexity are concerned. The “raw” column here is the safest assumption: if it is in the raw HTML, every crawler can read it.

Related free tools

Want the full picture?

This tool checks one thing. Run a complete, free SEO audit across 28 modules.

Run a free SEO audit