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

# AR-READ-06: Link the discovery files | Agent Ready Checklist

> AR-READ-06 (SHOULD, Read layer): Link the discovery files. What it asks, the evidence, the command that verifies it and the fix on 19 platforms.

Source: https://agentreadychecklist.com/checklist/ar-read-06
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-06: Link the discovery files

AR-READ-06 is a SHOULD on the read layer: Link discovery files (llms.txt, .well-known/\*, openapi.json) from content agents already visit: the footer, <link rel="alternate"> in the head, or a resources section. It applies to sites that ship any discovery file. 19 of 19 platforms have a recipe below, 2 of them workarounds. Ora has no check that matches it.

## The requirement

Identifier

AR-READ-06

Level

SHOULD

Layer

Read

Applies to

sites that ship any discovery file

Checked by

Cloudflare linkHeaders, Verify Kit llms-linked, Verify Kit openapi

Ora check

none matched, see below

The statement

Link discovery files (llms.txt, .well-known/\*, openapi.json) from content agents already visit: the footer, <link rel="alternate"> in the head, or a resources section.

## Why

-   Ora's lab found (published 2026-10-21): depending on the file, 86 to 97% of attributed fetches arrived through a link rather than a guessed path.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
-   Via-link shares: openapi.json 97% of 122 fetches, .well-known/\* 93% of 383, llms.txt 86% of 416.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 AR-READ-10 AGENTS.md and SKILLS.md requirement was removed in August 2026; AGENTS.md is still named in AR-READ-06 as a file to link if shipped.primary source, 2026-08-26: [github.com/agentready-org/standard/blob/main/CHANGELOG.md](https://github.com/agentready-org/standard/blob/main/CHANGELOG.md), 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.

### [OpenAPI linked and valid](https://agentreadychecklist.com/kit/openapi/)

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

Finds an OpenAPI URL from a home page link, a Link rel=service-desc header, /.well-known/api-catalog or /openapi.json, fetches it and checks it parses with an openapi field and a paths object.

**It cannot prove:** Does not lint the contract or call any operation.

### The one-line version

curl -s <origin>/ | grep -oE "href="\[^"\]\*(llms\\.txt|openapi\\.(json|yaml)|\\.well-known/\[^"\]\*)"".

## Verify with Ora

Ora's catalogue of 132 checks, read 2026-11-05, has no check that this row's name, cited standard or published description matches, so this page names no Ora id. The audit below still scores the rest of the site. [The crosswalk](https://agentreadychecklist.com/checklist/ora-checks/) lists every row and its match.

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

Home page links to llms.txt

1.3% overall

OpenAPI linked from the home page or served at /openapi.json

0.5% 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 links to llms.txt | 2% | 1% | 2% | 1% | 2% | 1% | 2% | 0% | 1% | 1% |
| OpenAPI linked from the home page or served at /openapi.json | 1% | 1% | 0% | 1% | 0% | 1% | 0% | 0% | 0% | 0% |

## Fix it on your platform

### Next.js (App Router)recipe

In app/layout.tsx export metadata with alternates: { types: { "text/markdown": "/index.md" } } and render footer links to /llms.txt and /openapi.json.

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

### Astrorecipe

In the shared layout head add <link rel="alternate" type="text/markdown" href={mdUrl}>, and footer links to /llms.txt and /openapi.json.

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

### Nuxtrecipe

In app.vue call useHead({ link: \[{ rel: "alternate", type: "text/markdown", href: mdUrl }\] }) and add footer links to /llms.txt and /openapi.json.

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/api/composables/use-head](https://nuxt.com/docs/api/composables/use-head). [All Nuxt recipes](https://agentreadychecklist.com/platforms/nuxt/#ar-read-06)

### SvelteKitrecipe

In +layout.svelte add <svelte:head><link rel="alternate" type="text/markdown" href={mdUrl}></svelte:head> and footer links to /llms.txt and /openapi.json.

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

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

Export links() from root.tsx returning \[{ rel: "alternate", type: "text/markdown", href: "/index.md" }\] and put footer links to /llms.txt and /openapi.json.

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/route-module](https://reactrouter.com/start/framework/route-module). [All Remix and React Router (framework mode) recipes](https://agentreadychecklist.com/platforms/remix-react-router/#ar-read-06)

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

Add footer anchors to /llms.txt and /openapi.json, and a Link header for every page in \_headers: "/\*" then " Link: </llms.txt>; rel=\\"describedby\\"".

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

### WordPress and Elementorrecipe

Link /llms.txt and /openapi.json from the footer menu, and print `<link rel="alternate" type="text/markdown" href="…">` in wp\_head where a markdown twin exists.

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/reference/hooks/wp\_head/](https://developer.wordpress.org/reference/hooks/wp_head/). [All WordPress and Elementor recipes](https://agentreadychecklist.com/platforms/wordpress-elementor/#ar-read-06)

### Shopify (Online Store 2.0 themes)recipe

In layout/theme.liquid add footer links to /agents.md and /llms.txt. Shopify also sends `Link: </.well-known/ucp>; rel="ucp"` on storefront responses (observed 2026-11-04).

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/templates/agents-md-liquid](https://shopify.dev/docs/storefronts/themes/architecture/templates/agents-md-liquid). [All Shopify (Online Store 2.0 themes) recipes](https://agentreadychecklist.com/platforms/shopify/#ar-read-06)

### Webflowrecipe

Add footer links to /llms.txt and, in Head code, `<link rel="alternate" type="text/markdown" href="…">` where a twin exists.

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/33961357265299-Custom-code-in-head-and-body-tags](https://help.webflow.com/hc/en-us/articles/33961357265299-Custom-code-in-head-and-body-tags). [All Webflow recipes](https://agentreadychecklist.com/platforms/webflow/#ar-read-06)

### Framerrecipe

Add footer links to /llms.txt and head Custom Code `<link rel="alternate" type="text/markdown" href="?md">` on each page.

Hosted SaaS, help articles read 2026-11-04 (marked updated 2026-09-15). Read 2026-11-04. [framer.com/help/articles/how-to-add-custom-code/](https://www.framer.com/help/articles/how-to-add-custom-code/). [All Framer recipes](https://agentreadychecklist.com/platforms/framer/#ar-read-06)

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

Settings > Custom Code > + Add Custom Code, place in Head, all pages: `<link rel="alternate" type="text/markdown" href="…">` where a twin exists; add a footer text link to /llms.txt.

Hosted SaaS, help center read 2026-11-04. Read 2026-11-04. [support.wix.com/en/article/wix-editor-embedding-custom-code-on-your-site](https://support.wix.com/en/article/wix-editor-embedding-custom-code-on-your-site). [All Wix (Wix Editor and Wix Studio) recipes](https://agentreadychecklist.com/platforms/wix/#ar-read-06)

### Squarespace (version 7.1)recipe

Code Injection > Header: `<link rel="alternate" type="text/markdown" href="…">` where a twin exists; add a footer link to /llms.txt.

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/205815908-Customize-parts-of-your-site-with-code-injection](https://support.squarespace.com/hc/en-us/articles/205815908-Customize-parts-of-your-site-with-code-injection). [All Squarespace (version 7.1) recipes](https://agentreadychecklist.com/platforms/squarespace/#ar-read-06)

### HubSpot CMS (Content Hub)recipe

Settings > Content > Pages > Site header HTML: `<link rel="alternate" type="text/markdown" href="…">` where a twin exists; add a footer menu link to /llms.txt.

Hosted SaaS, Content Hub, knowledge base and developer docs read 2026-11-04. Read 2026-11-04. [knowledge.hubspot.com/website-and-landing-pages/use-code-snippets-with-hubspot-content](https://knowledge.hubspot.com/website-and-landing-pages/use-code-snippets-with-hubspot-content). [All HubSpot CMS (Content Hub) recipes](https://agentreadychecklist.com/platforms/hubspot-cms/#ar-read-06)

### Docusaurusrecipe

Add footer links to /llms.txt and /openapi.json in themeConfig.footer.links, and head links with headTags: \[{ tagName: 'link', attributes: { rel: 'alternate', type: 'text/markdown', href: '/llms.txt' } }\].

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

### Mintlifyrecipe

Automatic: every response carries Link: </llms.txt>; rel="llms-txt", </llms-full.txt>; rel="llms-full-txt", api-catalog, mcp-server-card, agent-card and agent-skills relations, plus X-Llms-Txt: /llms.txt.

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

### GitBookrecipe

Automatic: pages carry <link rel="alternate" type="text/markdown" href="<page>.md"> and the Markdown pages start with a pointer to llms.txt (seen live 2026-11-04). Add a footer link to /llms.txt for HTML readers.

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

### ReadMerecipe

Turn on Link Headers and Agent Hint Banner in AI > AI Discoverability; responses carry Link headers to api-catalog, agent-skills and the MCP server card (seen live 2026-11-04).

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

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

Add footer links to /llms.txt and other discovery files in the footer component or content asset; files served through ssr.js as in the sitemap guide.

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

### Adobe Commerce and Magento Open Sourceworkaround

Add footer links to /llms.txt in a CMS block and a <link> in the head through layout XML (default\_head\_blocks.xml).

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

## What it does not do

-   Linking a file does not make its content correct.
-   A Link header alone is invisible to agents that only parse the HTML body.

## Common mistakes

-   llms.txt published at the root with nothing pointing to it.
-   openapi.json only linked from a docs page behind a JavaScript router.

## 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/)
-   Guide: [How to publish an OpenAPI file agents can find](https://agentreadychecklist.com/guides/publish-openapi-agents-can-find/)
-   Term: [llms.txt](https://agentreadychecklist.com/glossary/llms-txt/)
-   Term: [.well-known](https://agentreadychecklist.com/glossary/well-known/)
-   Term: [OpenAPI](https://agentreadychecklist.com/glossary/openapi/)

## 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
-   [github.com/agentready-org/standard/blob/main/CHANGELOG.md](https://github.com/agentready-org/standard/blob/main/CHANGELOG.md)read 2026-11-04
-   [nextjs.org/docs/app/api-reference/functions/generate-metadata](https://nextjs.org/docs/app/api-reference/functions/generate-metadata)read 2026-11-04
-   [docs.astro.build/en/basics/astro-pages/](https://docs.astro.build/en/basics/astro-pages/)read 2026-11-04
-   [nuxt.com/docs/api/composables/use-head](https://nuxt.com/docs/api/composables/use-head)read 2026-11-04
-   [svelte.dev/docs/svelte/svelte-head](https://svelte.dev/docs/svelte/svelte-head)read 2026-11-04
-   [reactrouter.com/start/framework/route-module](https://reactrouter.com/start/framework/route-module)read 2026-11-04
-   [docs.netlify.com/manage/routing/headers/](https://docs.netlify.com/manage/routing/headers/)read 2026-11-04
-   [developer.wordpress.org/reference/hooks/wp\_head/](https://developer.wordpress.org/reference/hooks/wp_head/)read 2026-11-04
-   [shopify.dev/docs/storefronts/themes/architecture/templates/agents-md-liquid](https://shopify.dev/docs/storefronts/themes/architecture/templates/agents-md-liquid)read 2026-11-04
-   [help.webflow.com/hc/en-us/articles/33961357265299-Custom-code-in-head-and-body-tags](https://help.webflow.com/hc/en-us/articles/33961357265299-Custom-code-in-head-and-body-tags)read 2026-11-04
-   [framer.com/help/articles/how-to-add-custom-code/](https://www.framer.com/help/articles/how-to-add-custom-code/)read 2026-11-04
-   [support.wix.com/en/article/wix-editor-embedding-custom-code-on-your-site](https://support.wix.com/en/article/wix-editor-embedding-custom-code-on-your-site)read 2026-11-04
-   [support.squarespace.com/hc/en-us/articles/205815908-Customize-parts-of-your-site-with-code-injection](https://support.squarespace.com/hc/en-us/articles/205815908-Customize-parts-of-your-site-with-code-injection)read 2026-11-04
-   [knowledge.hubspot.com/website-and-landing-pages/use-code-snippets-with-hubspot-content](https://knowledge.hubspot.com/website-and-landing-pages/use-code-snippets-with-hubspot-content)read 2026-11-04
-   [docusaurus.io/docs/api/docusaurus-config](https://docusaurus.io/docs/api/docusaurus-config)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/ai-discoverability](https://docs.readme.com/main/docs/ai-discoverability)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
-   [developer.adobe.com/commerce/frontend-core/guide/layouts/](https://developer.adobe.com/commerce/frontend-core/guide/layouts/)read 2026-11-04
-   [llmstxt.org](https://llmstxt.org/)read 2026-11-04
-   [rfc-editor.org/rfc/rfc9727](https://www.rfc-editor.org/rfc/rfc9727)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
-   [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)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.
