Agent Ready HTML

Put the answer in the initial HTML

In short

A fetch-only agent reads the HTML the server sends and nothing else. In Ora's lab, hiding the answer in JavaScript left it with 0 of 5 answers, and returning 403 to agent user agents did the same for both clients. Adding llms.txt, JSON-LD or a sitemap changed nothing. 3.5 percent of crawled home pages are JavaScript shells.

AgentReady's first read-layer requirement is a MUST: put the answer in the initial HTML. Its second is also a MUST: return real HTTP status codes. Both are about what a plain-fetch agent receives from one request, before any script runs. This page collects the evidence for both, the two things that broke an agent in Ora's lab, and the pages in the crawl that fail the first.

The two things that broke an agent

Ora's lab found (2026-10-19) that of 19 configurations of one docs site, probed on five topics by a plain-fetch client and a JavaScript-running client (190 probes), only two changes stopped retrieval. Hiding the answer in JavaScript left the plain-fetch client with 0 of 5 answers. Returning 403 to agent user agents left both clients with 0 of 5. llms.txt, JSON-LD, sitemaps and markdown mirrors changed nothing in that experiment. The study is a vendor's lab result on one site; the Vercel guide it appears in reports figures from 1,033 run summaries across 25 sites.

ConfigurationPlain-fetch clientSource
Answer hidden in JavaScript0 of 5 answersOra's lab, 2026-10-19
403 to agent user agents0 of 5 answers (both clients)Ora's lab, 2026-10-19
llms.txt, JSON-LD, sitemap or markdown mirror addedNo changeOra's lab, 2026-10-19

What the evidence says

  • The guide test is curl -iL -A 'Claude-User/1.0' against a page; the request should end in 200 and the HTML should contain the answer. [primary source] source, read 4 November 2026.
  • A 403, an empty app shell or a JavaScript-only answer prevents fetch-only agents from reading the page. [primary source] source, read 4 November 2026.
  • A curl request cannot prove a real agent is allowed, because bot blockers weigh source IP more than user agent; server logs and published crawler IP ranges are the check. [primary source] source, read 4 November 2026.
  • Ora's lab found (2026-10-19) that hiding the answer in JavaScript and returning 403 to agent user agents were the only two of 19 configurations that stopped retrieval. [vendor claim, 2026-10-19] source, read 4 November 2026.
  • The homepage was the agent's first step in 92 percent of runs that reached it. [primary source] source, read 4 November 2026.
  • Framer documents previewing what agents see by adding a md query parameter to any page URL. [primary source] source, read 4 November 2026.
  • Client-rendered sites may need server-side rendering, prerendering or a hybrid so fetch-only agents can read answers. [primary source] source, read 4 November 2026.
  • Astro prerenders every route by default and lets single routes opt out with export const prerender = false. [primary source] source, read 4 November 2026.
  • Next.js App Router pages and layouts are Server Components by default and prerender HTML. [primary source] source, read 4 November 2026.
  • Nuxt universal rendering returns fully rendered HTML; one line of configuration switches it to client-side rendering. [primary source] source, read 4 November 2026.
  • Scrunch AXP serves prerendered HTML to AI user agents from a separate origin without changing the human site. [vendor claim] source, read 4 November 2026.
  • Cloudflare Markdown for Agents converts the HTML the origin returns, so it cannot recover content that only exists after JavaScript runs. [primary source] source, read 4 November 2026.
  • Return 404 for a missing path or a valid redirect to a replacement, never 200 with suggestions in the body. [primary source] source, read 4 November 2026.
  • When throttling, return 429 Too Many Requests with Retry-After instead of a silent challenge page. [primary source] source, read 4 November 2026.
  • Google suggests a JavaScript redirect to a URL where the server answers 404, or a noindex tag, to avoid soft 404s in single-page apps. [primary source] source, read 4 November 2026.
  • In Next.js, notFound() renders the 404 page and must be called in the render path; a call in an un-awaited promise renders no not-found UI. [primary source] source, read 4 November 2026.
  • In the crawl, 8,743 home pages that answered 200 were also asked for a made-up path, and 1,475 of them (16.9 percent) returned 200 (edition 2026-11-04). [primary source] source, read 4 November 2026.
  • is-agentic.com flagged an agent-friendly 404 issue on vercel.com in the sample report shown in the guide. [primary source] source, read 4 November 2026.

How common is a page with no answer in the HTML

307 of 8,816 home pages that answered 200 in the crawl (3.5 percent) were JavaScript shells: fewer than 40 words of visible text and an app root element. A further share has an H1 only after scripts run: 73.7 percent of home pages carry an H1 in the initial HTML. The list below shows twenty mainstream home pages that were shells when the crawl read them on 4 November 2026.

Home pageWords in the initial HTMLScriptsBytesH1
icloud.com2831,534no
msn.com11047,104no
tumblr.com1998121,859no
twitch.tv1120223,521no
bsky.app1528,523yes
dailymotion.com11757,390no
duolingo.com11411,230no
perplexity.ai1519,539no
kwai.com371369,834no
alipay.com1206,839no
bilibili.tv291221,574no
digikala.com35414,931no
pluto.tv14169,214no
dw.com0512,205no
vmware.com984,859no
iqiyi.com2238,932no
broadcom.com5917,599no
didiglobal.com51610,780yes
photobucket.com6517,488no
hoyoverse.com192,466no

Test a page

The cost of client-side rendering for agents adds Ora's pass rate for the same check and shows which stacks render on the server by default. Paste a URL into the viewer. If the left pane shows the H1 and the first 200 words highlighted, the page passes. The guide to seeing your site as a plain-fetch client does it from a terminal, and the guide to moving the answer into the initial HTML covers the fix.

Sources

  1. Vercel and Ora: Make your site readable by AI agents https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents, read 4 November 2026
  2. Ora: AgentReady launch post, findings 01 to 04 https://ora.ai/blog/agentready-launch, read 4 November 2026
  3. Framer help: Make your site readable by AI agents https://www.framer.com/help/articles/make-site-readable-by-ai-agents/, read 4 November 2026
  4. Astro: on-demand rendering https://docs.astro.build/en/guides/on-demand-rendering/, read 4 November 2026
  5. Next.js: Server and Client Components https://nextjs.org/docs/app/getting-started/server-and-client-components, read 4 November 2026
  6. Nuxt: rendering modes https://nuxt.com/docs/4.x/guide/concepts/rendering, read 4 November 2026
  7. Scrunch help: How AXP serves content to AI agents https://helpcenter.scrunchai.com/en/articles/12845899-how-axp-serves-content-to-ai-agents, read 4 November 2026
  8. Cloudflare docs: Markdown for Agents https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/, read 4 November 2026
  9. Google: JavaScript SEO basics https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics, read 4 November 2026
  10. Next.js: notFound https://nextjs.org/docs/app/api-reference/functions/not-found, read 4 November 2026
  11. The crawl dataset (this site) https://agentreadyhtml.com/data/, read 4 November 2026

Last reviewed 4 November 2026