Skip to content

AI crawler rendering test: a live log of which bots run JavaScript

This page carries two blocks of text. One is in the HTML. The other exists only if JavaScript runs. Every request is logged at the network edge, before any rendering happens, so a crawler that reads the HTML and skips the script leaves a visible gap. The log is public, below.

The results so far are written up in Do AI crawlers execute JavaScript?

Block A — server-rendered HTML

This sentence is present in the raw HTML response. Every crawler that requests this URL can read it without running any code.

Block B — fetched from the server by JavaScript

Requesting text from the server…

How to read the log

  • edge means the bot requested the page. This is recorded before rendering, so it captures every crawler.
  • js-fetch means the bot ran the script and called back to the server. Only renderers appear here.
  • A bot with edge hits and zero js-fetch hits read the HTML and ignored the JavaScript. That is the finding this page exists to measure.
  • verified marks a request whose address falls inside a range the vendor publishes for its own crawlers. User agents are trivially spoofed, so only verified hits can support a claim about what a given bot does.
  • unverifiable is a separate state, used when a vendor publishes no ranges at all. It means the claim could not be checked either way — not that the bot is fake.

No IP addresses, cookies or visitor identifiers are stored. Addresses are compared against the published ranges at request time and then discarded; only the verdict is kept, alongside the user agent, request path, bot label, network operator and country.

More from the Lab

All experiments