DocsDiscoverabilityllms.txt
llms.txt
A hand-written Markdown index of a site's most useful pages, written for language models.
Why an agent cares
It points an agent at the pages that matter instead of making it crawl everything, and it is now generated by default across whole hosting platforms. That is exactly who our checks are for: files published because a tool or an audit asked for one, by authors who never read the format.
Adoption
Early production. Several independent organisations run it in production, though it is still niche on the open web. For this one in particular, widely published, and read far less often than it is written.
Direction of travel: ▲ rising, as at .
The proposal reached v2 in August 2026, Chrome's Lighthouse now audits sites for the file, and OpenAI, Anthropic and Google publish one for their own developer documentation. Against that, Ahrefs found 97% of 137,000 files never receive a request from an AI bot, and Google has said it does not use them.
| Adopter | Depth | Evidence |
|---|---|---|
| Mintlify, GitBook, Wix, Yoast, AIOSEO (generate one for every hosted site) | default-on | mintlify.com |
| OpenAI, Anthropic, Google Gemini (publish one for their developer docs) | production | platform.claude.com |
| Cursor, Windsurf (docs-lookup consumers) | production | organikpi.com |
What we check
| Check | Severity | Raises | On whose authority |
|---|---|---|---|
| llms.txt Missing H1 | high | usability | vendor profile: The /llms.txt file |
Supporting documents: The /llms.txt file Related guidance in The /llms.txt file. Bad: the file has no H1, which is the one element the format requires, so it never names the site and a client assembling context has to guess from the URL. Fix: make the first line an H1 naming the site, e.g. "# Acme Corp". | |||
| llms.txt Content Before H1 | medium | usability | vendor profile: The /llms.txt file |
Supporting documents: The /llms.txt file Related guidance in The /llms.txt file. Bad: prose, a blockquote or a list appears above the H1, but the format puts the H1 first (after an optional byte-order mark), so a reader taking the first block as the title takes the wrong thing. Fix: move the H1 to the top and put the summary underneath it as a "> " blockquote. | |||
| llms.txt Heading In Details | medium | usability | vendor profile: The /llms.txt file |
Supporting documents: The /llms.txt file Related guidance in The /llms.txt file. Bad: a heading below H2 sits in the free-text block between the summary and the first file list, where the format allows sections "of any type except headings", so a parser looking for the first H2 can read it as the start of a file list. Fix: turn it into bold text or a list item, or promote it to an H2 with its own list of links. | |||
| llms.txt Insecure Link | medium | usability, security (CWE-319) | Lumar readiness bar, beyond The /llms.txt file |
Supporting documents: The /llms.txt file Lumar readiness bar: no specification requires this. Provisional security check; precision has not yet been measured. Bad: the file links pages over plain http://, so an agent reading them on its recommendation gets content that can be altered on the way. A Lumar bar: the proposal allows any URL. Fix: link the https URLs. An advertised HTTP destination permits unencrypted communication. OWASP API API8 (2023) — Security MisconfigurationASVS V12.2.1 (5.0.0) — TLS for external HTTP services Only advertised transport configuration is observed; API deployment security is not fully assessed. Related guidance does not establish exploitation or framework compliance. Security checks are provisional. | |||
| llms.txt Multiple H1 | informational | nothing | vendor profile: The /llms.txt file |
Supporting documents: The /llms.txt file The /llms.txt file permits this, so it never fails the site. Informational (does not fail llms.txt Valid): the file carries more than one H1. The format names a single H1 as the site's name and doesn't forbid others, but two of them make the name ambiguous to a client that takes the first. Consider demoting the extras to H2. | |||
Examples
Both run through the same checks as a live scan: the first passes, the second is flagged.
# Acme Corp
> Everything Acme makes, indexed for agents: the API, the guides, and the changelog.
Acme sells widgets to trade customers. Prices are in GBP and exclude VAT.
## Docs
- [API reference](https://acme.test/docs/api.md): every endpoint, with request and response examples
- [Quick start](https://acme.test/docs/start.md): a ten-minute tour of the main workflow
## Examples
- [Order a widget](https://acme.test/examples/order.md): a complete worked order, end to end
## Optional
- [Changelog](https://acme.test/changelog.md): what shipped, newest firstWelcome to the Acme llms.txt file.
> llmsTxtContentBeforeH1: this prose and the summary sit above the H1, but the format
> puts the H1 first (after an optional byte-order mark).
# Acme Corp
### About us
llmsTxtHeadingInDetails: this H3 sits in the free-text block between the summary and the
first file list, where the format allows sections of any type except headings.
## Docs
- [API reference](https://acme.test/docs/api.md): every endpoint
# Acme Labs
info: llmsTxtMultipleH1: a second H1 makes the site's name ambiguous. Informational only,
so it does not fail llmsTxtValid.Specifications
| Document | Revision | Kind |
|---|---|---|
| The /llms.txt file | Version 2, August 2026 | specification |
Last re-read against the published documents: .