---
title: "Put the answer in the initial HTML: Agent Ready HTML"
description: "The AgentReady MUST that decides whether an agent can answer at all: Ora's lab findings, the Vercel guide figures and twenty JavaScript-only home pages."
canonical: https://agentreadyhtml.com/initial-html/
site: "Agent Ready HTML"
last_updated: 2026-11-04
section: "Reference"
---

# Put the answer in the initial HTML: Agent Ready HTML

> The AgentReady MUST that decides whether an agent can answer at all: Ora's lab findings, the Vercel guide figures and twenty JavaScript-only home pages.

Source: https://agentreadyhtml.com/initial-html/
Site: Agent Ready HTML
Last reviewed: 2026-11-04

# 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.

| Configuration | Plain-fetch client | Source |
| --- | --- | --- |
| Answer hidden in JavaScript | 0 of 5 answers | Ora's lab, 2026-10-19 |
| 403 to agent user agents | 0 of 5 answers (both clients) | Ora's lab, 2026-10-19 |
| llms.txt, JSON-LD, sitemap or markdown mirror added | No change | Ora'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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), 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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), 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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), 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](https://ora.ai/blog/agentready-launch?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference), read 4 November 2026.
-   The homepage was the agent's first step in 92 percent of runs that reached it. \[primary source\] [source](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), read 4 November 2026.
-   Framer documents previewing what agents see by adding a md query parameter to any page URL. \[primary source\] [source](https://www.framer.com/help/articles/make-site-readable-by-ai-agents/), 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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), read 4 November 2026.
-   Astro prerenders every route by default and lets single routes opt out with export const prerender = false. \[primary source\] [source](https://docs.astro.build/en/guides/on-demand-rendering/), read 4 November 2026.
-   Next.js App Router pages and layouts are Server Components by default and prerender HTML. \[primary source\] [source](https://nextjs.org/docs/app/getting-started/server-and-client-components), read 4 November 2026.
-   Nuxt universal rendering returns fully rendered HTML; one line of configuration switches it to client-side rendering. \[primary source\] [source](https://nuxt.com/docs/4.x/guide/concepts/rendering), 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](https://helpcenter.scrunchai.com/en/articles/12845899-how-axp-serves-content-to-ai-agents), 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](https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/), 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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), read 4 November 2026.
-   When throttling, return 429 Too Many Requests with Retry-After instead of a silent challenge page. \[primary source\] [source](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), 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](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics), 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](https://nextjs.org/docs/app/api-reference/functions/not-found), 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](https://agentreadyhtml.com/data/), 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](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), 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 page | Words in the initial HTML | Scripts | Bytes | H1 |
| --- | --- | --- | --- | --- |
| icloud.com | 2 | 8 | 31,534 | no |
| msn.com | 1 | 10 | 47,104 | no |
| tumblr.com | 19 | 98 | 121,859 | no |
| twitch.tv | 1 | 120 | 223,521 | no |
| bsky.app | 1 | 5 | 28,523 | yes |
| dailymotion.com | 1 | 17 | 57,390 | no |
| duolingo.com | 1 | 14 | 11,230 | no |
| perplexity.ai | 1 | 5 | 19,539 | no |
| kwai.com | 37 | 13 | 69,834 | no |
| alipay.com | 1 | 20 | 6,839 | no |
| bilibili.tv | 29 | 12 | 21,574 | no |
| digikala.com | 3 | 54 | 14,931 | no |
| pluto.tv | 14 | 16 | 9,214 | no |
| dw.com | 0 | 5 | 12,205 | no |
| vmware.com | 9 | 8 | 4,859 | no |
| iqiyi.com | 2 | 23 | 8,932 | no |
| broadcom.com | 5 | 9 | 17,599 | no |
| didiglobal.com | 5 | 16 | 10,780 | yes |
| photobucket.com | 6 | 5 | 17,488 | no |
| hoyoverse.com | 1 | 9 | 2,466 | no |

## Test a page

[The cost of client-side rendering for agents](https://agentreadyhtml.com/client-side-rendering-and-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](https://agentreadyhtml.com/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](https://agentreadyhtml.com/guides/see-your-site-as-plain-fetch/) does it from a terminal, and the [guide to moving the answer into the initial HTML](https://agentreadyhtml.com/guides/move-answer-into-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) 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?utm_source=agentreadyhtml.com&utm_medium=referral&utm_campaign=reference) 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/) 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/) 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) 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) 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) 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/) 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) 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) https://nextjs.org/docs/app/api-reference/functions/not-found, read 4 November 2026
11.  [The crawl dataset (this site)](https://agentreadyhtml.com/data/) https://agentreadyhtml.com/data/, read 4 November 2026

Last reviewed 4 November 2026

Edition

Crawl

2026-11-04

Page updated

2026-11-04

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/).

**Check from a terminal**  
`curl -iL -A 'Claude-User/1.0' URL`  
200, and the answer in the body.
