---
title: "The cost of client-side rendering for agents: Agent Ready HTML"
description: "What an agent loses when content only exists after JavaScript runs: Ora's lab result, 3.5% of crawled home pages as shells, and Ora's own pass rate."
canonical: https://agentreadyhtml.com/client-side-rendering-and-agents/
site: "Agent Ready HTML"
last_updated: 2026-11-05
date: 2026-11-05
section: "Evidence"
---

# The cost of client-side rendering for agents: Agent Ready HTML

> What an agent loses when content only exists after JavaScript runs: Ora's lab result, 3.5% of crawled home pages as shells, and Ora's own pass rate.

Source: https://agentreadyhtml.com/client-side-rendering-and-agents/
Site: Agent Ready HTML
Last reviewed: 2026-11-05

# 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](https://ora.ai/api/checks?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=csr) 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.

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

| Measure | Found | Of | Found share | Missing |
| --- | --- | --- | --- | --- |
| Crawl: H1 in the initial HTML | 6,500 | 8,816 | 73.7% | 2,316 |
| Crawl: 200 words or more | 7,306 | 8,816 | 82.9% | 1,510 |
| Crawl: not a JavaScript shell | 8,509 | 8,816 | 96.5% | 307 |
| Ora: Content without JavaScript, passRate | 70,781 | 141,709 | 49.9% | 70,928 |
| Ora: the same check, passRateStrict | 58,540 | 141,709 | 41.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.

| Home page | Words in initial HTML | Ora score | Ora: content without JavaScript |
| --- | --- | --- | --- |
| icloud.com | 2 | 34 D | Fail |
| msn.com | 1 | 27 F | Fail |
| tumblr.com | 19 | not scored |  |
| twitch.tv | 1 | 39 D | Fail |
| bsky.app | 1 | not scored |  |
| dailymotion.com | 1 | 55 C | Fail |
| duolingo.com | 1 | 56 C | Fail |
| perplexity.ai | 1 | 68 C | Partial |
| kwai.com | 37 | not scored |  |
| alipay.com | 1 | not scored |  |
| bilibili.tv | 29 | not scored |  |
| digikala.com | 3 | 35 D | Fail |
| pluto.tv | 14 | not scored |  |
| dw.com | 0 | 69 C | Fail |
| vmware.com | 9 | 51 C | Fail |
| iqiyi.com | 2 | not scored |  |
| broadcom.com | 5 | 49 C | Fail |
| didiglobal.com | 5 | not scored |  |
| photobucket.com | 6 | not scored |  |
| hoyoverse.com | 1 | not 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.

| Platform | Score | What the evidence says |
| --- | --- | --- |
| Astro | 2 | The minimal template put the H1 and body text in the home page HTML. |
| Cloudflare Markdown for Agents | n/a | Converts whatever HTML the origin returns; cannot add content the origin hides in JavaScript. |
| Docusaurus | 2 | The classic template prerendered the home page with an H1 and the docs pages with their text. |
| Fern | 2 | Sites are prebuilt as static pages since 2026-10-30. |
| Firecrawl llms.txt generator | n/a | A generator, not a host. |
| Framer | 2 | Prerendered HTML for every page. |
| GitBook | 2 | Published pages are served with content in the HTML; the .md twin exists for every page. |
| HubSpot CMS | 2 | HubL templates render on the server. |
| Mintlify | 2 | Hosted pages are served as HTML with the content present; mintlify.com returned its H1 to a plain fetch. |
| Next.js (App Router defaults) | 2 | The App Router pages were prerendered as static content with the H1 in the HTML. |
| Nuxt | 2 | Universal rendering put the H1 and body text in the page HTML. |
| ReadMe | 2 | Hub pages render content server-side; markdown versions exist for every page. |
| Redocly | 2 | Pages render content server-side; markdown copies exist. |
| Scrunch Agent Pages (AXP) | 2 | Agents receive server-rendered HTML with no JavaScript dependency. |
| Shopify themes | 2 | Liquid renders on Shopify servers. |
| Squarespace | 2 | Squarespace pages are server-rendered templates. |
| Vercel markdown handling | 2 | Recipe assumes server-rendered Next.js pages. |
| Webflow | 2 | Published Webflow pages are static HTML. |
| WordPress and Elementor | 2 | The home page and a page with a code block were server rendered with the H1 and text in the HTML. |
| Scalar | 1 | Docs pages are served as HTML; the API reference component renders in the browser in some embeds. |
| Stoplight | 1 | Hosted docs depend on configuration; Elements embeds render in the browser. |
| Wix | 1 | Wix sites are server-rendered, with heavy script payloads; a test build was not possible. |
| Yoast and other WordPress llms.txt plugins | n/a | Plugins 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](https://ora.ai/blog/agentready-launch?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=csr), read 5 November 2026.

## Fix it, then check it

The [guide to moving the answer into the initial HTML](https://agentreadyhtml.com/guides/move-answer-into-initial-html/) lists the cheapest routes, and the [guide to checking the initial HTML like an agent](https://agentreadyhtml.com/guides/check-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?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference) https://ora.ai/blog/agentready-launch, read 5 November 2026
2.  [Ora statistics (pass rates per check)](https://ora.ai/api/stats?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference) https://ora.ai/api/stats, read 5 November 2026
3.  [Ora check catalogue, contract 1.38.0](https://ora.ai/api/checks?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference) 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?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference) https://ora.ai/api/score/icloud.com, read 5 November 2026
5.  [The crawl dataset (this site)](https://agentreadyhtml.com/data/) 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) https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents, read 4 November 2026

Last reviewed 5 November 2026

Edition

Crawl

2026-11-04

Ora reads

2026-11-05

Page updated

2026-11-05

Method

How the viewer reads a page, how a file is graded and how a platform is scored: [the method page](https://agentreadyhtml.com/method/).
