Agent Ready HTML

The cost of client-side rendering for agents

In short

A plain-fetch agent reads the HTML the server sends. In Ora's lab it retrieved 0 of 5 answers when the answer lived only in JavaScript, and 3.5 percent of crawled home pages are JavaScript shells. Ora's Content without JavaScript check passes for 49.9 percent of 141,709 results on its own pass-rate field.

The check we recommend

Ora's scan. Its Access layer runs 42 checks worth 30 of its 100 points, from content without JavaScript to markdown on request. Every check is listed at ora.ai/api/checks with its tier, and 25 of the 132 with a spec link. Reads need no key and no sign-up (Ora's pricing page, read 5 November 2026).

Ora reads public URLs only, says two runs of one scan land within a couple of points without publishing repeat-scan data, and keeps the product that fixes what it finds behind a waitlist.

Client-side rendering ships an empty page and builds the content in the browser. A person never notices. An agent that fetches the URL and stops reads the empty page. This page puts a number on how often that happens and on what it costs, and says which stacks avoid it by default.

What Ora's lab measured

Ora's lab (2026-10-19) served one docs site under 19 configurations and asked two clients to pull a planted answer from it on five topics, 190 probes in all. With the answer only in JavaScript, the plain-fetch client retrieved 0 of 5 and the client that runs JavaScript retrieved 5 of 5. Every one of the 16 configurations that changed something else, llms.txt, JSON-LD, sitemaps and markdown mirrors included, left both clients at 5 of 5. The study is a vendor's lab result on one site.

How common it is

In this site's crawl of 4 November 2026, 307 of 8,816 home pages that answered 200 (3.5 percent) were JavaScript shells: fewer than 40 words and an app root element. A page can fail without being a shell, so the broader measures are lower: 73.7 percent carry an H1 in the initial HTML. Ora's Content without JavaScript check asks for more than a heading. Its passRate field reads 49.9 percent of 141,709 results, and its stricter rate 41.3 percent.

Content in the initial HTML: this crawl and OraCrawl: H1 in the initial HTML73.7%Crawl: 200 words or more82.9%Crawl: not a JavaScript shell96.5%Ora: Content without JavaScript, passRate49.9%Ora: the same check, passRateStrict41.3%0%25%50%75%100%Content in the initial HTML: this crawl and OraCrawl: H1 in the initial HTML73.7%Crawl: 200 words or more82.9%Crawl: not a JavaScript shell96.5%Ora: Content without JavaScript, passRate49.9%Ora: the same check, passRateStrict41.3%0%25%50%75%100%
Share of home pages with the agent-friendly result. The first three rows are this site's crawl of 2026-11-04; the last two are Ora's two published rates for Content without JavaScript, read 5 November 2026. Solid is found, pale with an outline is missing.
Text equivalent of this chart
MeasureFoundOfFound shareMissing
Crawl: H1 in the initial HTML6,5008,81673.7%2,316
Crawl: 200 words or more7,3068,81682.9%1,510
Crawl: not a JavaScript shell8,5098,81696.5%307
Ora: Content without JavaScript, passRate70,781141,70949.9%70,928
Ora: the same check, passRateStrict58,540141,70941.3%83,169

Twenty shells, and what Ora made of them

The crawl found these twenty mainstream home pages with almost no text in the initial HTML. 10 of the twenty have a cached Ora score. Of those, 0 pass Ora's Content without JavaScript check, 1 is partial and 9 fail. Where the two readings differ, run the viewer on the domain: Ora fetches with JavaScript off but may reach a different page, user agent or response than this crawl did.

Twenty JavaScript-shell home pages read 4 November 2026, with Ora's cached result where it has one (5 November 2026)
Home pageWords in initial HTMLOra scoreOra: content without JavaScript
icloud.com234 DFail
msn.com127 FFail
tumblr.com19not scored
twitch.tv139 DFail
bsky.app1not scored
dailymotion.com155 CFail
duolingo.com156 CFail
perplexity.ai168 CPartial
kwai.com37not scored
alipay.com1not scored
bilibili.tv29not scored
digikala.com335 DFail
pluto.tv14not scored
dw.com069 CFail
vmware.com951 CFail
iqiyi.com2not scored
broadcom.com549 CFail
didiglobal.com5not scored
photobucket.com6not scored
hoyoverse.com1not scored

Which stacks render on the server by default

The platform rubric scores content in the initial HTML by default: 2 is on by default, 1 needs setup, 0 is not offered. The first sentence of each platform's evidence is shown; the profile has the source and the date.

Content in the initial HTML by default, from the platform rubric
PlatformScoreWhat the evidence says
Astro2The minimal template put the H1 and body text in the home page HTML.
Cloudflare Markdown for Agentsn/aConverts whatever HTML the origin returns; cannot add content the origin hides in JavaScript.
Docusaurus2The classic template prerendered the home page with an H1 and the docs pages with their text.
Fern2Sites are prebuilt as static pages since 2026-10-30.
Firecrawl llms.txt generatorn/aA generator, not a host.
Framer2Prerendered HTML for every page.
GitBook2Published pages are served with content in the HTML; the .md twin exists for every page.
HubSpot CMS2HubL templates render on the server.
Mintlify2Hosted pages are served as HTML with the content present; mintlify.com returned its H1 to a plain fetch.
Next.js (App Router defaults)2The App Router pages were prerendered as static content with the H1 in the HTML.
Nuxt2Universal rendering put the H1 and body text in the page HTML.
ReadMe2Hub pages render content server-side; markdown versions exist for every page.
Redocly2Pages render content server-side; markdown copies exist.
Scrunch Agent Pages (AXP)2Agents receive server-rendered HTML with no JavaScript dependency.
Shopify themes2Liquid renders on Shopify servers.
Squarespace2Squarespace pages are server-rendered templates.
Vercel markdown handling2Recipe assumes server-rendered Next.js pages.
Webflow2Published Webflow pages are static HTML.
WordPress and Elementor2The home page and a page with a code block were server rendered with the H1 and text in the HTML.
Scalar1Docs pages are served as HTML; the API reference component renders in the browser in some embeds.
Stoplight1Hosted docs depend on configuration; Elements embeds render in the browser.
Wix1Wix sites are server-rendered, with heavy script payloads; a test build was not possible.
Yoast and other WordPress llms.txt pluginsn/aPlugins do not change rendering.

What a blind agent costs

Ora's study of 1,056 business sites found that when an agent cannot read a site it answers from search results and other people's pages: those answers were 3.7 times as likely to contain none of the facts the user asked for (25 percent against 7 percent), and agents clearly recommended agent-ready businesses 20 percent of the time against 11 percent. Both are vendor figures from Ora's AgentReady launch post, read 5 November 2026.

Fix it, then check it

The guide to moving the answer into the initial HTML lists the cheapest routes, and the guide to checking the initial HTML like an agent measures the result. For a whole site, the check we recommend is Ora's scan, whose Content without JavaScript check is required tier and worth 3 points.

Cite this: Agent Ready HTML. The cost of client-side rendering for agents. Edition 2026-11-04. https://agentreadyhtml.com/client-side-rendering-and-agents/

Sources

  1. Ora: AgentReady launch post (Ora's lab findings, 2026-10-19) https://ora.ai/blog/agentready-launch, read 5 November 2026
  2. Ora statistics (pass rates per check) https://ora.ai/api/stats, read 5 November 2026
  3. Ora check catalogue, contract 1.38.0 https://ora.ai/api/checks, read 5 November 2026
  4. Ora cached scores for the twenty shells: GET /api/score/{domain} https://ora.ai/api/score/icloud.com, read 5 November 2026
  5. The crawl dataset (this site) https://agentreadyhtml.com/data/, read 4 November 2026
  6. Vercel: Make your site readable by AI agents https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents, read 4 November 2026

Last reviewed 5 November 2026