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

# AR-READ-07: Ship llms.txt | Agent Ready Checklist

> AR-READ-07 (SHOULD, Read layer): Ship llms.txt. What it asks, the evidence, the command that verifies it and the fix on 19 platforms.

Source: https://agentreadychecklist.com/checklist/ar-read-07
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-07: Ship llms.txt

AR-READ-07 is a SHOULD on the read layer: Ship an llms.txt: a lean, described index of the key pages. It applies to every site with more than a handful of pages. 19 of 19 platforms have a recipe below, 5 of them workarounds. The kit check llms-linked tests it with one command.

## The requirement

Identifier

AR-READ-07

Level

SHOULD

Layer

Read

Applies to

every site with more than a handful of pages

Checked by

Ora, matched on this site, Cloudflare llmsTxt (opt-in), Verify Kit llms-linked

Ora check

[llms-txt-exists, llms-txt-formatting, llms-txt-links-resolve](#ora)

The statement

Ship an llms.txt: a lean, described index of the key pages.

## Why

-   Ora's lab found (published 2026-10-21): 86% of llms.txt fetches came from a page that pointed to it; one in three agents that read it fetched a page it lists, and 36% drew the final answer from it.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
-   Of 329 runs that reached llms.txt, 117 of 325 scorable runs fetched a listed page and 120 grounded the answer in its content.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
-   The llms.txt proposal puts an H1 project name first, then an optional blockquote summary, then H2 sections of markdown link lists.primary source: [llmstxt.org](https://llmstxt.org/), read 2026-11-04
-   Cloudflare splits its docs llms.txt per top-level directory so each file fits an agent context window, and reports agents used 31% fewer tokens on its docs.vendor claim, 2026-04-17: [blog.cloudflare.com/agent-readiness/](https://blog.cloudflare.com/agent-readiness/), read 2026-11-04

## How to verify

### [llms.txt present and linked](https://agentreadychecklist.com/kit/llms-linked/)

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

Fetches /llms.txt, checks 200, a text content type and a first line starting with "# ", then fetches the home page and looks for an href to /llms.txt or a Link header naming it.

**It cannot prove:** Does not judge whether the index is lean or its descriptions useful; does not prove agents read it.

### The one-line version

curl -s -D - <origin>/llms.txt | grep -iE "^HTTP|^content-type" then check the body starts with "# ".

## Verify with Ora

3 checks 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.

-   `llms-txt-exists` llms.txt exists Looks for /llms.txt or /.well-known/llms.txt. Access, 1 point, required; catalogue applicability domain-only. Listed because: same name, `llms.txt`.
-   `llms-txt-formatting` llms.txt formatting Tests that the llms.txt parses: a heading at the top, markdown links and enough substance to navigate by. Access, 2 points, recommended; catalogue applicability domain-only. Listed because: same name, `llms.txt`.
-   `llms-txt-links-resolve` llms.txt links resolve Tests that the markdown links declared in llms.txt resolve. Access, 2 points, recommended; catalogue applicability domain-only. Listed because: cited standard, [llmstxt.org/](https://llmstxt.org/).

### 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":["llms-txt-exists","llms-txt-formatting","llms-txt-links-resolve"]}'
```

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
```

### Related checks

This check reads something near the row but asks for more than the row does. A site that meets the row can score nothing or lose points on it, so it is not counted as a test of the row and is left out of the command above.

-   `modular-llms-txt` Modular llms.txt per product area Looks for per-section llms.txt files such as /docs/llms.txt. The row asks for one llms.txt, so a site with a single root file meets the row and scores nothing here. Access, 1 point, bonus, emerging; catalogue applicability domain-only.

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 2 crawl rates. Each panel splits the 2026-11-04 crawl into ten bands of 1,000 ranks, on a 0 to 100 percent scale.

/llms.txt exists

14.3% overall

Home page links to llms.txt

1.3% 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 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| /llms.txt exists | 20% | 12% | 19% | 16% | 15% | 15% | 14% | 14% | 10% | 10% |
| Home page links to llms.txt | 2% | 1% | 2% | 1% | 2% | 1% | 2% | 0% | 1% | 1% |

## Fix it on your platform

### Next.js (App Router)recipe

Write public/llms.txt (H1, summary blockquote, link lists) or generate it in app/llms.txt/route.ts with export const dynamic = "force-static" and Content-Type text/plain.

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/api-reference/file-conventions/route](https://nextjs.org/docs/app/api-reference/file-conventions/route). [All Next.js (App Router) recipes](https://agentreadychecklist.com/platforms/nextjs-app-router/#ar-read-07)

### Astrorecipe

Create src/pages/llms.txt.ts: export async function GET() { const docs = await getCollection("docs"); return new Response(body, { headers: { "Content-Type": "text/plain; charset=utf-8" } }); }.

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/guides/endpoints/](https://docs.astro.build/en/guides/endpoints/). [All Astro recipes](https://agentreadychecklist.com/platforms/astro/#ar-read-07)

### Nuxtrecipe

Write public/llms.txt, or generate it in server/routes/llms.txt.ts and prerender it with routeRules { "/llms.txt": { prerender: true } }.

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/directory-structure/server](https://nuxt.com/docs/guide/directory-structure/server). [All Nuxt recipes](https://agentreadychecklist.com/platforms/nuxt/#ar-read-07)

### SvelteKitrecipe

Create src/routes/llms.txt/+server.ts returning text/plain and export const prerender = true, or drop static/llms.txt.

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/routing](https://svelte.dev/docs/kit/routing). [All SvelteKit recipes](https://agentreadychecklist.com/platforms/sveltekit/#ar-read-07)

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

Add app/routes/llms\[.\]txt.ts with a loader returning new Response(text, { headers: { "Content-Type": "text/plain; charset=utf-8" } }), or a static public/llms.txt.

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/how-to/resource-routes](https://reactrouter.com/how-to/resource-routes). [All Remix and React Router (framework mode) recipes](https://agentreadychecklist.com/platforms/remix-react-router/#ar-read-07)

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

Upload llms.txt to the publish root; set Content-Type text/plain; charset=utf-8 in \_headers if the host guesses wrong.

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

### WordPress and Elementorworkaround

Core has none. Turn on llms.txt in Yoast SEO (Settings > Site features > APIs) or Rank Math (General Settings > llms.txt), or upload a hand-written llms.txt to the web root.

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. [yoast.com/features/llms-txt/](https://yoast.com/features/llms-txt/). [All WordPress and Elementor recipes](https://agentreadychecklist.com/platforms/wordpress-elementor/#ar-read-07)

### Shopify (Online Store 2.0 themes)recipe

Already served. To change it, Online Store > Themes > Edit code > Templates > New file `llms.txt.liquid` (or agents.md.liquid to change all three paths).

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/changelog/posts/customize-llmstxt-llms-fulltxt-and-agentsmd](https://shopify.dev/changelog/posts/customize-llmstxt-llms-fulltxt-and-agentsmd). [All Shopify (Online Store 2.0 themes) recipes](https://agentreadychecklist.com/platforms/shopify/#ar-read-07)

### Webflowrecipe

Site settings > SEO > LLMs.txt > Upload file, then publish to the custom domain. It is not published to the webflow.io staging domain.

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/43240104183315-Upload-an-llms-txt-file-to-your-site](https://help.webflow.com/hc/en-us/articles/43240104183315-Upload-an-llms-txt-file-to-your-site). [All Webflow recipes](https://agentreadychecklist.com/platforms/webflow/#ar-read-07)

### Framerrecipe

Site Settings > Hosting > Files, upload llms.txt with path /, publish, open /llms.txt to confirm.

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

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

Already generated. Review it in SEO & GEO > Tools and settings > Go to llms.txt > View File; editing stops automatic updates until you reset.

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-07)

### Squarespace (version 7.1)recipe

SEO/AI Visibility panel > SEO Settings > LLMS.txt tab: paste the file text, Save. Empty text keeps it disabled.

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/47434125611277-Create-an-llms-txt-file (the article needs a Squarespace sign-in to read)](https://support.squarespace.com/hc/en-us/articles/47434125611277-Create-an-llms-txt-file). [All Squarespace (version 7.1) recipes](https://agentreadychecklist.com/platforms/squarespace/#ar-read-07)

### HubSpot CMS (Content Hub)workaround

No native file. Upload llms.txt in the file manager, then Settings > Content > URL Redirects: `/llms.txt` to the file's hubfs URL (301).

Hosted SaaS, Content Hub, knowledge base and developer docs read 2026-11-04. Read 2026-11-04. [knowledge.hubspot.com/domains-and-urls/create-and-manage-url-redirects](https://knowledge.hubspot.com/domains-and-urls/create-and-manage-url-redirects). [All HubSpot CMS (Content Hub) recipes](https://agentreadychecklist.com/platforms/hubspot-cms/#ar-read-07)

### Docusaurusworkaround

No generator in core. Write static/llms.txt (H1, blockquote summary, sections of described links) and regenerate it in CI, or install a community llms.txt plugin.

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

### Mintlifyrecipe

Automatic llms.txt and llms-full.txt from docs.json navigation; set description in docs.json for the blockquote. Commit llms.txt at the root to replace it.

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

### GitBookrecipe

Automatic llms.txt at <site>/llms.txt listing every published page with a Markdown version.

Hosted SaaS, docs read 2026-11-04. Read 2026-11-04. [gitbook.com/docs/getting-started/llm-ready-docs](https://gitbook.com/docs/getting-started/llm-ready-docs). [All GitBook recipes](https://agentreadychecklist.com/platforms/gitbook/#ar-read-07)

### ReadMerecipe

llms.txt is on by default at /llms.txt. Optionally turn on Custom LLMs.txt and commit llms.txt at the repo root, or Summarize Index for large projects.

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

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

Write static/llms.txt (H1, summary, links to key categories, shipping and returns pages) and serve it with app.get('/llms.txt', runtime.serveStaticFile('static/llms.txt')); add it to ssrShared.

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/pwa-kit-managed-runtime/guide/create-a-sitemap.html](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/create-a-sitemap.html). [All Salesforce B2C Commerce (SFRA and PWA Kit / Composable Storefront) recipes](https://agentreadychecklist.com/platforms/salesforce-commerce-cloud/#ar-read-07)

### Adobe Commerce and Magento Open Sourceworkaround

Write llms.txt and place it in the pub/ document root (on-premise) or serve it through a Fastly snippet on cloud.

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. [experienceleague.adobe.com/en/docs/commerce-on-cloud/user-guide/cdn/custom-vcl-snippets/fastly-vcl-custom-snippets](https://experienceleague.adobe.com/en/docs/commerce-on-cloud/user-guide/cdn/custom-vcl-snippets/fastly-vcl-custom-snippets). [All Adobe Commerce and Magento Open Source recipes](https://agentreadychecklist.com/platforms/adobe-commerce/#ar-read-07)

## What it does not do

-   llms.txt does not control crawling or grant or deny access.
-   In the controlled experiment adding llms.txt did not change retrieval of an answer already in the HTML.

## Common mistakes

-   One multi-megabyte file that overflows the context window.
-   Links without descriptions.
-   Served as text/html by a SPA fallback.

## Related

-   Guide: [The one-day agent-readiness sprint](https://agentreadychecklist.com/guides/one-day-agent-readiness-sprint/)
-   Guide: [How to ship llms.txt and link it](https://agentreadychecklist.com/guides/ship-llms-txt-and-link-it/)
-   Term: [llms.txt](https://agentreadychecklist.com/glossary/llms-txt/)

## 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
-   [llmstxt.org](https://llmstxt.org/)read 2026-11-04
-   [blog.cloudflare.com/agent-readiness/](https://blog.cloudflare.com/agent-readiness/)read 2026-11-04
-   [nextjs.org/docs/app/api-reference/file-conventions/route](https://nextjs.org/docs/app/api-reference/file-conventions/route)read 2026-11-04
-   [docs.astro.build/en/guides/endpoints/](https://docs.astro.build/en/guides/endpoints/)read 2026-11-04
-   [nuxt.com/docs/guide/directory-structure/server](https://nuxt.com/docs/guide/directory-structure/server)read 2026-11-04
-   [svelte.dev/docs/kit/routing](https://svelte.dev/docs/kit/routing)read 2026-11-04
-   [reactrouter.com/how-to/resource-routes](https://reactrouter.com/how-to/resource-routes)read 2026-11-04
-   [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)read 2026-11-04
-   [yoast.com/features/llms-txt/](https://yoast.com/features/llms-txt/)read 2026-11-04
-   [shopify.dev/changelog/posts/customize-llmstxt-llms-fulltxt-and-agentsmd](https://shopify.dev/changelog/posts/customize-llmstxt-llms-fulltxt-and-agentsmd)read 2026-11-04
-   [help.webflow.com/hc/en-us/articles/43240104183315-Upload-an-llms-txt-file-to-your-site](https://help.webflow.com/hc/en-us/articles/43240104183315-Upload-an-llms-txt-file-to-your-site)read 2026-11-04
-   [framer.com/help/articles/llms-txt-framer/](https://www.framer.com/help/articles/llms-txt-framer/)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/47434125611277-Create-an-llms-txt-file (the article needs a Squarespace sign-in to read)](https://support.squarespace.com/hc/en-us/articles/47434125611277-Create-an-llms-txt-file)read 2026-11-04
-   [knowledge.hubspot.com/domains-and-urls/create-and-manage-url-redirects](https://knowledge.hubspot.com/domains-and-urls/create-and-manage-url-redirects)read 2026-11-04
-   [docusaurus.io/docs/static-assets](https://docusaurus.io/docs/static-assets)read 2026-11-04
-   [mintlify.com/docs/ai/llmstxt](https://mintlify.com/docs/ai/llmstxt)read 2026-11-04
-   [gitbook.com/docs/getting-started/llm-ready-docs](https://gitbook.com/docs/getting-started/llm-ready-docs)read 2026-11-04
-   [docs.readme.com/main/docs/llmstxt](https://docs.readme.com/main/docs/llmstxt)read 2026-11-04
-   [developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/create-a-sitemap.html](https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/create-a-sitemap.html)read 2026-11-04
-   [experienceleague.adobe.com/en/docs/commerce-on-cloud/user-guide/cdn/custom-vcl-snippets/fastly-vcl-custom-snippets](https://experienceleague.adobe.com/en/docs/commerce-on-cloud/user-guide/cdn/custom-vcl-snippets/fastly-vcl-custom-snippets)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 Elementorworkaround](#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)workaround](#p-hubspot-cms)
-   [Docusaurusworkaround](#p-docusaurus)
-   [Mintlifyrecipe](#p-mintlify)
-   [GitBookrecipe](#p-gitbook)
-   [ReadMerecipe](#p-readme)
-   [Salesforce B2C Commerce (SFRA and PWA Kit / Composable Storefront)workaround](#p-salesforce-commerce-cloud)
-   [Adobe Commerce and Magento Open Sourceworkaround](#p-adobe-commerce)

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