Reading the Machine

What an AI crawler sees when a homepage is 100% JavaScript

Published 2026-07-14 · SeenLayer

GPTBot doesn't execute JavaScript. Neither does most of the real AI crawler stack — Perplexity's bot, Google's AI Overview crawler, the systems deciding what gets cited when someone asks a question. So we fetched a real, live, currently-published homepage the exact way one of those crawlers would: no browser, no JS engine, just the raw HTTP response.

$ curl -A "Mozilla/5.0" https://ghostinfluencer.com/ <body> <div id="root"></div> </body></html>

That's it. That's the entire page. A visitor opening this URL in Chrome sees a full, designed homepage — copy, images, navigation, everything. A crawler that doesn't run JavaScript sees one empty div.

Why this happens

ghostinfluencer.com — like a large share of modern sites built on React, Vue or similar frameworks — ships almost no HTML in the initial server response. The actual page is assembled in the visitor's browser, after JavaScript downloads and runs. This is a completely normal, common architecture. It is also, for an AI crawler, functionally invisible: no text, no image references, no <img> tags, no Schema.org markup. Zero signal to work with.

This isn't a broken site or an edge case we had to go looking for. It's the default output of a large share of modern JS-framework homepages — the architecture ships invisible by default, and it takes zero additional images or bad SEO decisions to get there.

What actually reads a page like a crawler does

None of these are edge-case bots. They're the systems currently deciding what content gets surfaced and cited in AI search — the fastest-growing discovery channel most sites aren't yet measuring.

The fix isn't "add more content"

A JS-rendered site doesn't need a rebuild to become readable — it needs the content that already exists to reach the crawler in a format it actually parses: server-rendered HTML for the crawl path, real alt text on every image, Schema.org markup describing what's on the page. That's the specific, narrow gap SeenLayer is built to find and close — this scan of ghostinfluencer.com is real output from the same engine, not a staged example.

Curious what your own site's raw HTML looks like to a crawler? Run a free scan.

Scan your site free →