Why this experiment
In 2024 Vercel and MERJ reported that major AI crawlers don't execute JavaScript.
That's the rendering-mode answer, and on our cells it mostly holds, with exceptions: as of
2026-10-06, ClaudeBot, Amazonbot and CCBot never fired a beacon and GPTBot only ran the
inline script, but Applebot rendered React, and meta-external and ShapBot ran both the inline script
and React.
Real client audits don't ask "is this site SSR or CSR?" though:
they ask "is this specific JS pattern (a click-to-reveal, a useEffect-fetched price,
a hash-routed navigation) costing me visibility in this specific bot's index?"
What's measured
Eight JS content patterns (clean / js-images / js-links / click-reveal / js-fetched /
hash-routing / late-loaded / mixed) × five page types × three rendering modes (SSR / CSR /
optional SSG). As of 2026-10-06, 28 named bots had visited the
test cells, among them verified GPTBot, ClaudeBot, Googlebot, Bingbot, Applebot, ChatGPT-User
and Claude-User.
How it's verified
Bot claims are checked wherever the vendor publishes a way to check them: reverse DNS for Google/Bing/Apple/Baidu,
IP-range CIDR matching against published OpenAI/Perplexity/Anthropic/Amazon/Parallel manifests, and either
path for Amazonbot and CCBot. Meta's crawlers are checked against Meta's own network (AS32934). Claude Code
fetches stay visible but unresolved, since there is no public verification path. Deprecated anthropic-ai/Claude-Web UAs and the Google-Extended/Applebot-Extended
tokens, which their vendors never send as a user agent, are automatically flagged as unverified. As of 2026-10-06, 31,881 of 39,962
hits (80%) have no verification result; 29,007
of them come from human visitors and clients the classifier can't name.