AgentReady Scan your site

AI agents do not run your JavaScript

Updated 2026-07-13 · 3 min read · comprehension pillar

Browsers download your JavaScript bundle, run it, and paint the page. As of mid-2026, the major AI crawlers do not: GPTBot, ClaudeBot, PerplexityBot and their peers fetch the raw HTML response and read whatever text is in it. Google's own crawler renders JavaScript; the AI fleet, for cost and speed, generally does not.

If your site is a client-rendered single-page app, the raw HTML is a near-empty shell: a root div, some script tags, maybe a loading message. Your copy, your prices, and your docs all mount after JavaScript runs, which means agents see none of them. The page works perfectly for humans and is blank for machines.

See exactly what agents see

One command shows the truth. Strip the tags from your raw HTML and read what remains; that text is your entire site as far as most agents are concerned.

bash
curl -s https://yoursite.com \
  | sed 's/<[^>]*>//g' \
  | tr -s '[:space:]' ' ' \
  | head -c 600

If the output is empty, a cookie notice, or a please-enable-JavaScript message, that is your pitch to the agent economy.

What a blank page costs

An assistant comparing three vendors quotes the two whose pages contain readable claims and prices; the third is not rejected, it is simply never considered. A shopping agent cannot add to cart a product whose name and price never appear in the HTML. A cited answer cannot quote text that does not exist at fetch time.

The loss is silent because your dashboards measure humans. Rankings, conversion, and session metrics all look normal while every agent-mediated question about your category gets answered from a competitor's server-rendered pages.

SaaS docs are a special case worth naming: developers now ask assistants how to integrate tools before they ever open your site. Docs rendered client-side are docs the assistant cannot quote, which quietly costs you the developers who pick whatever the assistant could explain.

How to fix it, cheapest first

If you are on a hosted platform such as Shopify, WordPress, or most site builders, your pages are already server-rendered and you likely pass. This problem belongs mostly to custom apps built as client-side SPAs.

For app frameworks, enable server-side rendering or static generation for the public pages: Nuxt for Vue, Next for React, SvelteKit, Astro. You rarely need to convert the whole app. Prioritize the pages agents ask about: homepage, pricing, product pages, docs, and policies. The dashboard behind login can stay client-rendered forever.

If a rebuild is off the table, prerender: generate static HTML snapshots of public routes at deploy time and serve them as the initial response. Whatever you serve must be the same content humans get, since serving crawlers a different page creates a parity problem that scanners and platforms treat as cloaking.

html
<!-- What an agent sees on a client-only SPA -->
<body>
  <div id="app"></div>
  <script src="/assets/index-8f3a2c.js"></script>
</body>

<!-- What it should see: real content in the initial HTML -->
<body>
  <main>
    <h1>Acme CRM: pipeline software for small teams</h1>
    <p>Plans from $29/month. 14-day free trial, no card required.</p>
    <a href="/pricing">Pricing</a> <a href="/docs">Docs</a>
  </main>
  <script src="/assets/index-8f3a2c.js"></script>
</body>

How AgentReady checks it

The scanner asks: is the main content readable without JavaScript? It extracts readable text from your raw HTML, no script execution. Under 150 words combined with SPA markers (an empty root div, framework bundles) fails; 150 to 400 words warns. At 5 points this is the heaviest check in the Comprehension pillar.

The methodology's reasoning: most agents read raw HTML and do not run your JavaScript. If the page is empty until JS loads, agents see a blank page where your content should be.

Frequently asked questions

Which AI crawlers execute JavaScript?

As of mid-2026, the mainstream AI crawlers fetch raw HTML and do not document JavaScript rendering; observed behavior agrees. Googlebot renders JavaScript, but treating JS-only content as invisible to AI agents is the safe engineering assumption.

Is putting content in a noscript tag enough?

It is better than nothing, since noscript content is part of the HTML, but it doubles your maintenance and drifts out of date. Server-rendering the real page is the fix; noscript is a patch.

Do I need to server-render the app behind login?

No. Crawlers never see authenticated pages, and agents acting for a user interact with forms and endpoints rather than your rendered dashboard. Spend the effort on public marketing, product, docs, and policy pages.

Does your site pass this check?

The scanner runs it, plus 29 more, and hands you the exact fix for each. Free, under a minute, no signup.

Scan your site