---
title: "AR-READ-01: Answer in the initial HTML | Agent Ready Checklist"
description: "AR-READ-01 (MUST, Read layer): Answer in the initial HTML. What it asks, the evidence, the command that verifies it and the fix on 19 platforms."
canonical: https://agentreadychecklist.com/checklist/ar-read-01
site: "Agent Ready Checklist"
last_updated: 2026-11-05
section: "Checklist"
---

# AR-READ-01: Answer in the initial HTML | Agent Ready Checklist

> AR-READ-01 (MUST, Read layer): Answer in the initial HTML. What it asks, the evidence, the command that verifies it and the fix on 19 platforms.

Source: https://agentreadychecklist.com/checklist/ar-read-01
Site: Agent Ready Checklist
Last reviewed: 2026-11-05
Agent endpoints: https://agentreadychecklist.com/llms.txt (index), https://agentreadychecklist.com/openapi.json (API), https://agentreadychecklist.com/mcp (MCP server), https://agentreadychecklist.com/ask (search)
Access: https://agentreadychecklist.com/auth.md (no key). Pricing: https://agentreadychecklist.com/pricing.md (free).

# AR-READ-01: Answer in the initial HTML

AR-READ-01 is a MUST on the read layer: Put the answer in the initial HTML: server-rendered or prerendered, not injected by a single-page app after load. It applies to every page an agent should read. 19 of 19 platforms have a recipe below. The kit check initial-html tests it with one command. Ora reads it with the check content-no-js.

## The requirement

Identifier

AR-READ-01

Level

MUST

Layer

Read

Applies to

every page an agent should read

Checked by

Ora, matched on this site, is-agentic.com, Verify Kit initial-html

Ora check

[content-no-js](#ora)

The statement

Put the answer in the initial HTML: server-rendered or prerendered, not injected by a single-page app after load.

## Why

-   Ora's lab found (published 2026-10-21): a JavaScript-hidden answer was one of only two changes that broke an agent; the plain-fetch client retrieved 0 of 5 answers from the js-only configuration while the JavaScript client got 5 of 5.vendor claim, 2026-10-21: [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md), read 2026-11-04
-   In the 190-probe experiment, the 16 configurations other than js-only and the two 403 blocks passed 5 of 5 for both clients.primary source, 2026-08-28: [vercel.com/kb/guide/make-your-site-readable-by-ai-agents](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents), read 2026-11-04
-   contentsignals.org, the reference site for Content Signals, served an empty <div id="root"> shell with no body text to a plain fetch on 2026-11-04.primary source, 2026-11-04: [contentsignals.org](https://contentsignals.org/), read 2026-11-04

## How to verify

### [Answer in the initial HTML](https://agentreadychecklist.com/kit/initial-html/)

```bash
curl -fsSL https://agentreadychecklist.com/kit/verify.sh | bash -s -- https://example.com --only=initial-html
```

Fetches the URL without JavaScript and checks that the response carries an h1 with text and at least 50 words of visible text outside script and style tags; with --expect it also looks for your own sentence in the response. On a home page it reports whether links to docs and pricing are present.

**It cannot prove:** Cannot tell whether the right answer is there, only that a heading, some text and, with --expect, a given string are; it does not render the page, so it cannot compare the response with what a browser shows.

### The one-line version

curl -s <url> | grep -c "<exact sentence from the rendered page>" must be 1 or more.

## Verify with Ora

One check in Ora's catalogue (contract 1.38.0, read 2026-11-05) read this row. Each entry says what the check looks at and why this page lists it.

-   `content-no-js` Content without JavaScript Fetches pages with JavaScript off and checks that the content is still there. Access, 3 points, required; catalogue applicability domain-only. Listed because: same name, `javascript`.

### Run just these checks

```bash
curl -s -X POST https://ora.ai/api/scan/checks -H 'content-type: application/json' -d '{"url":"https://example.com","checkIds":["content-no-js"]}'
```

This calls the endpoint Ora documents for re-verifying a fix. It sends no cache, returns a result for each id and no total score, and spends one scan from the daily budget. Replace the URL with yours. [How to re-verify one fix](https://agentreadychecklist.com/guides/re-verify-one-fix-with-ora/).

### Or audit the whole site

```bash
npx ax@0.10 audit https://example.com --min-score 70
```

Exit code 1 means the score is below the number you passed, so the same line gates a deploy: [the CI recipe](https://agentreadychecklist.com/guides/gate-deploys-on-agent-readiness-in-ci/). [Why this site recommends Ora, and where it falls short](https://agentreadychecklist.com/verify-with-ora/).

## In the crawl

This row has one crawl rate. Each panel splits the 2026-11-04 crawl into ten bands of 1,000 ranks, on a 0 to 100 percent scale.

Home page has an h1 and 50 words in the initial HTML

64.0% overall

Reachable sites in the Tranco top 10,000 on which the check ran, 2026-11-04. Left is ranks 1 to 1,000.

Numbers behind the chart

| Rate | 1 to 1,000 | 1,001 to 2,000 | 2,001 to 3,000 | 3,001 to 4,000 | 4,001 to 5,000 | 5,001 to 6,000 | 6,001 to 7,000 | 7,001 to 8,000 | 8,001 to 9,000 | 9,001 to 10,000 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Home page has an h1 and 50 words in the initial HTML | 61% | 66% | 68% | 66% | 60% | 64% | 66% | 64% | 64% | 61% |

## Fix it on your platform

### Next.js (App Router)recipe

Keep pages as Server Components (the App Router default) so content is in the HTML response. Fetch data in the page, not in a useEffect. For fully static output set output: "export" in next.config.js.

Next.js 16.x (npm latest 16.4.5, read 2026-11-04); docs at nextjs.org/docs/app. Read 2026-11-04. [nextjs.org/docs/app/getting-started/server-and-client-components](https://nextjs.org/docs/app/getting-started/server-and-client-components). [All Next.js (App Router) recipes](https://agentreadychecklist.com/platforms/nextjs-app-router/#ar-read-01)

### Astrorecipe

Astro prerenders pages to HTML by default. Keep the answer in .astro or Markdown content; do not move it into a client:only island, which renders nothing on the server.

Astro 7.x (npm latest astro 7.4.5, @astrojs/sitemap 3.7.4, read 2026-11-04). Read 2026-11-04. [docs.astro.build/en/reference/directives-reference/](https://docs.astro.build/en/reference/directives-reference/). [All Astro recipes](https://agentreadychecklist.com/platforms/astro/#ar-read-01)

### Nuxtrecipe

Keep ssr: true (the default). Load data with useFetch or useAsyncData so it resolves during server rendering; use routeRules { "/docs/\*\*": { prerender: true } } for static docs. Avoid ssr: false or <ClientOnly> around the answer.

Nuxt 4.x (npm latest nuxt 4.6.4, @nuxtjs/robots 7.0.2, @nuxtjs/sitemap 9.1.0, read 2026-11-04). Read 2026-11-04. [nuxt.com/docs/guide/concepts/rendering](https://nuxt.com/docs/guide/concepts/rendering). [All Nuxt recipes](https://agentreadychecklist.com/platforms/nuxt/#ar-read-01)

### SvelteKitrecipe

Keep ssr enabled (the default) and load data in +page.server.ts or +page.ts load. For static docs add export const prerender = true. Do not set ssr = false on answer pages.

SvelteKit (npm latest @sveltejs/kit 3.1.1, read 2026-11-04); docs at svelte.dev/docs/kit. Read 2026-11-04. [svelte.dev/docs/kit/page-options](https://svelte.dev/docs/kit/page-options). [All SvelteKit recipes](https://agentreadychecklist.com/platforms/sveltekit/#ar-read-01)

### Remix and React Router (framework mode)recipe

Keep ssr: true in react-router.config.ts (the default) and load data in loader, not useEffect. For static pages add prerender: true or a list of paths.

React Router framework mode (npm latest react-router 8.5.1; Remix v2 @remix-run/node 2.17.5, read 2026-11-04); docs at reactrouter.com. Read 2026-11-04. [reactrouter.com/start/framework/rendering](https://reactrouter.com/start/framework/rendering). [All Remix and React Router (framework mode) recipes](https://agentreadychecklist.com/platforms/remix-react-router/#ar-read-01)

### Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront)recipe

Static HTML is the initial HTML. Pre-render every route at build time; if the build output is an SPA shell, the host cannot fix that.

Host documentation as published on 2026-11-04 (no version numbers; config files \_headers, \_redirects, vercel.json, 404.html). Read 2026-11-04. [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/). [All Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront) recipes](https://agentreadychecklist.com/platforms/static-hosting/#ar-read-01)

### WordPress and Elementorrecipe

PHP templates render on the server, so post content is in the initial HTML. Check that no block, Elementor widget or plugin loads the answer by AJAX after load: `curl -s https://example.com/page/ | grep -c 'answer phrase'`.

WordPress 7.1.4 (core release from the version-check API), Elementor 4.3.6 (plugin directory, updated 2026-11-02), Yoast SEO 28.8 noted for llms.txt; docs read 2026-11-04. Read 2026-11-04. [developer.wordpress.org/themes/classic-themes/basics/template-hierarchy/](https://developer.wordpress.org/themes/classic-themes/basics/template-hierarchy/). [All WordPress and Elementor recipes](https://agentreadychecklist.com/platforms/wordpress-elementor/#ar-read-01)

### Shopify (Online Store 2.0 themes)recipe

Liquid renders on Shopify's servers, so product titles, prices and descriptions are in the initial HTML. Check apps that inject content client-side (reviews, size charts, FAQ widgets) with a plain curl.

Hosted SaaS, Online Store 2.0 Liquid themes, docs read 2026-11-04; storefront behaviour probed live on one Shopify store the same day. Read 2026-11-04. [shopify.dev/docs/storefronts/themes/architecture/layouts](https://shopify.dev/docs/storefronts/themes/architecture/layouts). [All Shopify (Online Store 2.0 themes) recipes](https://agentreadychecklist.com/platforms/shopify/#ar-read-01)

### Webflowrecipe

Published Webflow pages are static HTML from the Designer. Check content added by custom-code embeds or third-party widgets with a plain curl; that is where JavaScript-only text appears.

Hosted SaaS, help center articles read 2026-11-04 (updated dates 2024-10-14 to 2026-10-29). Read 2026-11-04. [help.webflow.com/hc/en-us/articles/50435871026195-Markdown-for-AI-agents](https://help.webflow.com/hc/en-us/articles/50435871026195-Markdown-for-AI-agents). [All Webflow recipes](https://agentreadychecklist.com/platforms/webflow/#ar-read-01)

### Framerrecipe

Pages are pre-rendered to HTML on Framer's servers. Watch text hidden in overlays and closed accordions, which Framer documents as not crawlable; verify with `curl -A 'GPTBot/1.0' https://example.com/page`.

Hosted SaaS, help articles read 2026-11-04 (marked updated 2026-09-15). Read 2026-11-04. [framer.com/help/articles/fixing-uncrawlable-overlay-content/](https://www.framer.com/help/articles/fixing-uncrawlable-overlay-content/). [All Framer recipes](https://agentreadychecklist.com/platforms/framer/#ar-read-01)

### Wix (Wix Editor and Wix Studio)recipe

Verify each key page with a plain fetch: `curl -s https://example.com/pricing | grep -c 'plan name'`. Wix does not document its rendering mode for agents; content inside third-party app iframes is not in the page HTML.

Hosted SaaS, help center read 2026-11-04. Read 2026-11-04. [support.wix.com/en/article/understanding-your-sites-llms-txt-file](https://support.wix.com/en/article/understanding-your-sites-llms-txt-file). [All Wix (Wix Editor and Wix Studio) recipes](https://agentreadychecklist.com/platforms/wix/#ar-read-01)

### Squarespace (version 7.1)recipe

Check the published page with `curl -s https://example.com/page | grep -c 'answer phrase'`; text inside code-block widgets that load third-party scripts may be missing from the HTML.

Hosted SaaS, version 7.1 sites, help center read 2026-11-04 (articles updated 2026-07-17 to 2026-11-03). Read 2026-11-04. [support.squarespace.com/hc/en-us/articles/206744067-How-does-Squarespace-optimize-my-site-for-search-results](https://support.squarespace.com/hc/en-us/articles/206744067-How-does-Squarespace-optimize-my-site-for-search-results). [All Squarespace (version 7.1) recipes](https://agentreadychecklist.com/platforms/squarespace/#ar-read-01)

### HubSpot CMS (Content Hub)recipe

HTML + HubL templates render on HubSpot's servers. Check modules that fetch content in the browser (custom JavaScript, embeds) with a plain curl.

Hosted SaaS, Content Hub, knowledge base and developer docs read 2026-11-04. Read 2026-11-04. [developers.hubspot.com/docs/cms/start-building/building-blocks/templates/overview](https://developers.hubspot.com/docs/cms/start-building/building-blocks/templates/overview). [All HubSpot CMS (Content Hub) recipes](https://agentreadychecklist.com/platforms/hubspot-cms/#ar-read-01)

### Docusaurusrecipe

Docusaurus prerenders every route to static HTML at build time (SSG). Keep answer text out of <BrowserOnly> and useEffect-only components; those render only in the browser.

3.10.2 (npm @docusaurus/core latest, read 2026-11-04). Read 2026-11-04. [docusaurus.io/docs/advanced/ssg](https://docusaurus.io/docs/advanced/ssg). [All Docusaurus recipes](https://agentreadychecklist.com/platforms/docusaurus/#ar-read-01)

### Mintlifyrecipe

Pages are server-rendered; a plain curl of a docs page returned the body text in the initial HTML on 2026-11-04. Keep answers in MDX text, not inside interactive components only.

Hosted SaaS, docs read 2026-11-04. Read 2026-11-04. [mintlify.com/docs/optimize/seo](https://mintlify.com/docs/optimize/seo). [All Mintlify recipes](https://agentreadychecklist.com/platforms/mintlify/#ar-read-01)

### GitBookrecipe

Automatic: GitBook pre-renders HTML server-side, so crawlers do not need JavaScript.

Hosted SaaS, docs read 2026-11-04. Read 2026-11-04. [gitbook.com/docs/publish/seo](https://gitbook.com/docs/publish/seo). [All GitBook recipes](https://agentreadychecklist.com/platforms/gitbook/#ar-read-01)

### ReadMerecipe

Guides render server-side; a plain curl returned page text in the HTML on 2026-11-04. Keep answers in Markdown blocks rather than custom JS widgets.

Hosted SaaS, docs read 2026-11-04. Read 2026-11-04. [docs.readme.com/main/docs/editor-blocks](https://docs.readme.com/main/docs/editor-blocks). [All ReadMe recipes](https://agentreadychecklist.com/platforms/readme/#ar-read-01)

### Salesforce B2C Commerce (SFRA and PWA Kit / Composable Storefront)recipe

PWA Kit server-side renders each page on Managed Runtime; SFRA renders ISML on the server. Make sure product and category data is fetched in the server render, not only after hydration.

Hosted SaaS (B2C Commerce help release 264.0.0); PWA Kit retail-react-app 10.3.0 and pwa-kit-runtime 3.21.0 on npm, read 2026-11-04. Read 2026-11-04. [developer.salesforce.com/docs/commerce/b2c-commerce/guide/pwa-kit-overview.html](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/pwa-kit-overview.html). [All Salesforce B2C Commerce (SFRA and PWA Kit / Composable Storefront) recipes](https://agentreadychecklist.com/platforms/salesforce-commerce-cloud/#ar-read-01)

### Adobe Commerce and Magento Open Sourcerecipe

The Luma theme renders category, product and CMS pages server-side in PHP; keep prices and descriptions in templates rather than KnockoutJS-only blocks. Headless (PWA Studio or other) storefronts need SSR.

2.4.9 (GitHub tag published 2026-05-12; 2.4.10-alpha1 tagged 2026-10-13); release notes read 2026-11-04. Read 2026-11-04. [developer.adobe.com/commerce/frontend-core/guide/layouts/](https://developer.adobe.com/commerce/frontend-core/guide/layouts/). [All Adobe Commerce and Magento Open Source recipes](https://agentreadychecklist.com/platforms/adobe-commerce/#ar-read-01)

## What it does not do

-   Adding llms.txt or a markdown mirror does not fix a JavaScript-only page for a client that reads the HTML.
-   SSR does not help if the server returns 403 first.

## Common mistakes

-   Prerendering the shell but fetching the answer client-side.
-   Pricing tables rendered from a JSON call after load.
-   Tabs whose hidden panels are only built on click.

## Related

-   Guide: [The one-day agent-readiness sprint](https://agentreadychecklist.com/guides/one-day-agent-readiness-sprint/)
-   Guide: [How to test with a plain-fetch client](https://agentreadychecklist.com/guides/test-with-a-plain-fetch-client/)
-   Guide: [How to handle JavaScript-only pages without a rewrite](https://agentreadychecklist.com/guides/javascript-only-pages-without-a-rewrite/)
-   Guide: [How to keep a site agent ready in CI](https://agentreadychecklist.com/guides/keep-a-site-agent-ready-in-ci/)
-   Term: [MUST](https://agentreadychecklist.com/glossary/must/)
-   Term: [Initial HTML](https://agentreadychecklist.com/glossary/initial-html/)

## Sources

-   [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)read 2026-11-04
-   [vercel.com/kb/guide/make-your-site-readable-by-ai-agents](https://vercel.com/kb/guide/make-your-site-readable-by-ai-agents)read 2026-11-04
-   [contentsignals.org](https://contentsignals.org/)read 2026-11-04
-   [nextjs.org/docs/app/getting-started/server-and-client-components](https://nextjs.org/docs/app/getting-started/server-and-client-components)read 2026-11-04
-   [docs.astro.build/en/reference/directives-reference/](https://docs.astro.build/en/reference/directives-reference/)read 2026-11-04
-   [nuxt.com/docs/guide/concepts/rendering](https://nuxt.com/docs/guide/concepts/rendering)read 2026-11-04
-   [svelte.dev/docs/kit/page-options](https://svelte.dev/docs/kit/page-options)read 2026-11-04
-   [reactrouter.com/start/framework/rendering](https://reactrouter.com/start/framework/rendering)read 2026-11-04
-   [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)read 2026-11-04
-   [developer.wordpress.org/themes/classic-themes/basics/template-hierarchy/](https://developer.wordpress.org/themes/classic-themes/basics/template-hierarchy/)read 2026-11-04
-   [shopify.dev/docs/storefronts/themes/architecture/layouts](https://shopify.dev/docs/storefronts/themes/architecture/layouts)read 2026-11-04
-   [help.webflow.com/hc/en-us/articles/50435871026195-Markdown-for-AI-agents](https://help.webflow.com/hc/en-us/articles/50435871026195-Markdown-for-AI-agents)read 2026-11-04
-   [framer.com/help/articles/fixing-uncrawlable-overlay-content/](https://www.framer.com/help/articles/fixing-uncrawlable-overlay-content/)read 2026-11-04
-   [support.wix.com/en/article/understanding-your-sites-llms-txt-file](https://support.wix.com/en/article/understanding-your-sites-llms-txt-file)read 2026-11-04
-   [support.squarespace.com/hc/en-us/articles/206744067-How-does-Squarespace-optimize-my-site-for-search-results](https://support.squarespace.com/hc/en-us/articles/206744067-How-does-Squarespace-optimize-my-site-for-search-results)read 2026-11-04
-   [developers.hubspot.com/docs/cms/start-building/building-blocks/templates/overview](https://developers.hubspot.com/docs/cms/start-building/building-blocks/templates/overview)read 2026-11-04
-   [docusaurus.io/docs/advanced/ssg](https://docusaurus.io/docs/advanced/ssg)read 2026-11-04
-   [mintlify.com/docs/optimize/seo](https://mintlify.com/docs/optimize/seo)read 2026-11-04
-   [gitbook.com/docs/publish/seo](https://gitbook.com/docs/publish/seo)read 2026-11-04
-   [docs.readme.com/main/docs/editor-blocks](https://docs.readme.com/main/docs/editor-blocks)read 2026-11-04
-   [developer.salesforce.com/docs/commerce/b2c-commerce/guide/pwa-kit-overview.html](https://developer.salesforce.com/docs/commerce/b2c-commerce/guide/pwa-kit-overview.html)read 2026-11-04
-   [developer.adobe.com/commerce/frontend-core/guide/layouts/](https://developer.adobe.com/commerce/frontend-core/guide/layouts/)read 2026-11-04
-   [ora.ai/api/checks, contract 1.38.0](https://ora.ai/api/checks?utm_source=agentreadychecklist.com&utm_medium=referral&utm_campaign=requirement)read 2026-11-05
-   [ora.ai/llms-full.txt](https://ora.ai/llms-full.txt?utm_source=agentreadychecklist.com&utm_medium=referral&utm_campaign=requirement)read 2026-11-05
-   [registry.npmjs.org/ax, the ax README](https://registry.npmjs.org/ax)read 2026-11-05

Verify with Ora

The scanner this site recommends for the whole checklist. 132 checks, a score out of 100, no account.

`npx ax@0.10 audit <url> --min-score <n>`

[Why Ora, and its limits](https://agentreadychecklist.com/verify-with-ora/)

Fix it on

-   [Next.js (App Router)recipe](#p-nextjs-app-router)
-   [Astrorecipe](#p-astro)
-   [Nuxtrecipe](#p-nuxt)
-   [SvelteKitrecipe](#p-sveltekit)
-   [Remix and React Router (framework mode)recipe](#p-remix-react-router)
-   [Plain static hosting (Netlify, Vercel static, Cloudflare Pages, GitHub Pages, S3 and CloudFront)recipe](#p-static-hosting)
-   [WordPress and Elementorrecipe](#p-wordpress-elementor)
-   [Shopify (Online Store 2.0 themes)recipe](#p-shopify)
-   [Webflowrecipe](#p-webflow)
-   [Framerrecipe](#p-framer)
-   [Wix (Wix Editor and Wix Studio)recipe](#p-wix)
-   [Squarespace (version 7.1)recipe](#p-squarespace)
-   [HubSpot CMS (Content Hub)recipe](#p-hubspot-cms)
-   [Docusaurusrecipe](#p-docusaurus)
-   [Mintlifyrecipe](#p-mintlify)
-   [GitBookrecipe](#p-gitbook)
-   [ReadMerecipe](#p-readme)
-   [Salesforce B2C Commerce (SFRA and PWA Kit / Composable Storefront)recipe](#p-salesforce-commerce-cloud)
-   [Adobe Commerce and Magento Open Sourcerecipe](#p-adobe-commerce)

Last reviewed 2026-11-05. AgentReady v2.0, read 2026-11-04.
