Quick Answer: An llms.txt file is a Markdown file at yoursite.com/llms.txt with one H1, a blockquote summary and H2 link sections, per the llmstxt.org v2 spec. Generators from Mintlify, Yoast and Wix write a draft automatically. The ten real files below were fetched on 16 September 2026 and range from 23 lines to 698.
The spec is short, but most files published under the name drift from it. Some are link dumps with no summary, some are key-value text with no Markdown headings, and some are 30 MB concatenations no agent will load whole.
This page is the build-and-check companion to what llms.txt is and whether you need one: the section order, ten public files described from the bytes served, the generators and validators worth knowing, and a template.
What a valid llms.txt file contains in the spec order
A valid llms.txt file contains, in this order: an H1 with the site name, a blockquote summary, optional prose, then H2 sections holding Markdown link lists. Only the H1 is required. The llmstxt.org v2 proposal, first published 3 September 2024 and modified 10 August 2026, is the whole specification.
The file can sit at the site root or at any sub-path, and it describes every URL under that path. So /docs/llms.txt covers /docs/ only, and where two files apply, an agent should use the more specific one. That rule is new in v2 and it lets a marketing site and its docs carry different files.
The five sections in order
| Order | Section | Required | What goes in it |
|---|---|---|---|
| 1 | Byte-order mark | No | Leave it out unless your toolchain adds one |
| 2 | H1 | Yes | The project or site name, nothing else |
| 3 | Blockquote | No, but expected | One short summary carrying the facts needed to read the rest |
| 4 | Free Markdown | No | Paragraphs or lists with context; no headings allowed here |
| 5 | H2 file lists | No | Each list item is [name](url), optionally : notes |
An H2 named Optional has a reserved meaning: links an agent can skip when context is tight. Every other H2 name is yours to choose, and the spec's own example uses Docs, Examples and Optional.
The two companion conventions
The spec also asks for a Markdown twin of each important page, either with .md appended (page.html.md) or with the extension replaced (page.md); v2 allows both. Links in llms.txt should point at those twins rather than the HTML.
To help clients find both, v2 recommends a Link header or <link> element: rel="alternate" type="text/markdown" for the Markdown twin and rel="describedby" for the covering llms.txt. The header form can be set in a CDN without touching a page.
Real llms.txt examples fetched and described
The ten files below were fetched on 16 September 2026, and each description reflects what the server returned, not what the site says about itself. "Spec shape" means H1, blockquote and H2 link lists in that order.
| File | Lines | H2s | Spec shape | What it actually contains |
|---|---|---|---|---|
| developers.openai.com/llms.txt | 51 | 4 | Yes | Blockquote summary, then links to per-product child llms.txt files (API, Ads, plugins, Codex) under Documentation sets, Common tasks, Site navigation, Learning tracks |
| docs.anthropic.com/llms.txt | 698 | 3 | Partly | A one-line prose summary instead of a blockquote, a Root URL section, an Available Languages section, then 600-plus page links under English |
| ai.google.dev/gemini-api/docs/llms.txt | 208 | 1 | Partly | H1, a plain-text tagline, and one Docs section of about 200 links, each to a .md.txt twin of the HTML page |
| www.fastht.ml/docs/llms.txt | 45 | 4 | Yes | The spec author's own reference file: blockquote, a "things to remember" list, then Docs, API, Examples and Optional |
| docs.perplexity.ai/llms.txt | 216 | 2 | Yes | Blockquote, a long free-Markdown link list, then OpenAPI Specs and Optional |
| docs.stripe.com/llms.txt | 698 | 26 | Partly | Two prose paragraphs of agent instructions in place of a blockquote, then 26 product sections including one titled for LLM agents |
| developers.cloudflare.com/llms.txt | 137 | 9 | Yes | A blockquote explaining that each product links to its own llms.txt, then nine product-family sections |
| vercel.com/docs/llms.txt | 64 | 9 | Yes | Blockquote, then sections such as When to use, How agents should use, Agent setup, Documentation and Optional |
| svelte.dev/llms.txt | 23 | 3 | Yes | Blockquote, then three sizes of full documentation (small, medium, full) and per-package files |
| nextjs.org/llms.txt | 125 | 5 | Yes | Blockquote, a "When to use nextjs.org" section that tells an agent which router the docs cover, then Documentation, Support Policy and Blog |
What the good files have in common
The files that follow the spec closely are the short ones. OpenAI's, Vercel's and Svelte's all stay under 65 lines by pointing at child files or full-text bundles instead of listing every page. That matches the spec's intent: the index stays small enough to fit in context and the detail lives behind the links.
Two other patterns are worth copying. Next.js and Vercel open with a "when to use this site" section that tells an agent what the site is authoritative for, and Cloudflare's blockquote explains its own structure, so an agent knows to follow one more hop.
Files that drift from the spec
Anthropic's and Stripe's files are useful but heavy, at 698 lines each, and both replace the blockquote with prose. Google's Gemini API file has no summary at all, only a tagline and one long list. Each still parses, because the H1 is the only hard requirement, but none of them gives an agent a two-line orientation before the links begin.
A separate category is the non-Markdown file. unveilrai.com/llms.txt, for instance, is 59 lines of labelled plain text (Domain, Sitemap, Contact, About, Policies, Key Pages, Pricing) with no H1, no blockquote and no Markdown links. It reads cleanly for a model, but a spec parser would return nothing from it.
If you are choosing a shape, choose the Markdown one and keep the prose short.
llms.txt generators that write a draft for you
Four platforms generate the file automatically, and each was checked from its own documentation on 16 September 2026. None of them removes the need to read the output, because a generator lists what it can see, not what an agent should prioritise.
Documentation platforms
Mintlify generates both llms.txt and llms-full.txt for every site it hosts, places the H1 and blockquote from the site's docs.json, and adds .md links for every page. When an index passes 100,000 characters it splits the link groups into files under /_llms/. It also advertises the files in a Link response header, which is the v2 discovery mechanism.
The spec's own integrations list names GitBook as serving a file for published docs sites. If your docs already live on one of these platforms, the file probably exists and the job is to review it, not write it.
CMS plugins
Yoast SEO generates the file for WordPress sites and lets you preview it before publishing. You can let it pick the key content automatically or choose the pages yourself, and the feature is free in the plugin.
Wix generates and maintains one for every site, under SEO and GEO tools in the dashboard. It stops auto-updating once you edit the file by hand, with a reset to default if you want automatic updates back.
Standalone generators
The Firecrawl llms.txt generator, one of the earliest hosted tools, now carries a deprecation notice. Its page says the API is no longer maintained after 30 June 2025 and points to a reference repository instead. Treat any hosted generator the same way: check the page is live before you rely on it, and expect a crawl-based draft you will still have to cut down.
How to validate an llms.txt file
Validation has three layers: parse it, fetch it, and test it with an agent. There is no official validator, so the closest things are the reference parser and the Lighthouse audit.
The reference parser
The spec's authors publish a Python package, installed with pip install llms-txt, whose parse_llms_file function returns title, summary, info and sections. If the parser returns an empty summary or no sections, the file has the wrong shape. The package page includes the full parser in under 20 lines, so you can see exactly what it expects.
One caveat: the v2 changes page says the context-expansion tooling (llms_txt2ctx) is no longer part of the proposal. The parser is still the clearest statement of the expected shape, but treat the XML-context output as a legacy feature.
The Lighthouse audit
Chrome's Lighthouse includes an llms.txt check in its agentic browsing audits. Per the audit documentation, it flags a page only when the server errors on the request; a 404 is marked Not Applicable because the file is optional. So a passing audit proves the file is served, not that it is any good.
The manual checks that matter
- Fetch the file with curl and confirm a 200 status and a
text/plainortext/markdowncontent type, nottext/html. One docs site in this sample returned a 538 KB HTML page at/llms.txt, which is a JavaScript app swallowing the route. - Confirm the first non-blank line is a single H1 and the second block is a blockquote.
- Fetch every link in the file and confirm each resolves; a stale link list is the most common failure in older files.
- Follow the spec's own advice: give an agent only the file and ask it questions about your product. If it cannot answer the top five, the links or the summary are wrong.
A copy-and-paste llms.txt template
The template below follows the v2 section order and fits a company site rather than a docs site. Replace the bracketed text and delete any section you cannot fill honestly.
# [Company name]
> [One sentence: what the company does, for whom, and where it operates.]
Key facts an agent needs before reading further:
- Founded [year], headquartered in [city]. [Ownership or funding fact if public.]
- Products: [two or three named products with a five-word description each]
- Pricing is on [URL]; support is at [email or URL].
## Products
- [Product A](https://example.com/product-a.md): [what it is, who it suits]
- [Product B](https://example.com/product-b.md): [what it is, who it suits]
## Docs
- [Getting started](https://example.com/docs/start.md): [scope in ten words]
- [API reference](https://example.com/docs/api.md): [scope in ten words]
## Company
- [About](https://example.com/about.md): [founders, history, locations]
- [Case studies](https://example.com/customers.md): [named clients and dated results]
## Optional
- [Blog index](https://example.com/blog/llms.txt): [only if you want agents reading it]
Keep the file under 100 lines and put the pages you most want quoted in the first section. Where you have no Markdown twins, structuring the HTML page for extraction matters more than the file itself.
llms-full.txt and when to publish one
llms-full.txt is a single file carrying the full text of every page llms.txt links to, and it is optional. Mintlify generates one automatically and describes each entry as the page title, source URL, description and full Markdown content.
The sizes are the caution. On 16 September 2026, svelte.dev/llms-full.txt was 1.2 MB, supabase.com/llms-full.txt was 7.0 MB, developers.openai.com/llms-full.txt was 7.5 MB and docs.anthropic.com/llms-full.txt was 34.6 MB. A file that size is a download target for a tool, not something an agent loads into a context window, which is why Svelte also publishes small and medium cuts.
Publish one if you run documentation and coding agents ask for it. For a marketing site, the pages plus schema markup that matches the visible text do the same job with less to maintain.
What Google says about llms.txt
Google says its Search does not use llms.txt, and that the file neither helps nor hurts rankings or AI features. Its AI optimization guide lists "LLMS.txt files and other 'special' markup" under things you can ignore for Google Search, and a 15 June 2026 changelog note adds that maintaining one for other systems is fine.
That statement covers AI Overviews and AI Mode, which are served from Google's index and controlled through the same robots.txt directives as Search. It says nothing about ChatGPT, Claude or Perplexity, which is where the spec's authors expect the file to be read. OpenAI, Anthropic and Google all publish one for their own developer docs, and none has published a statement that its consumer assistant reads yours.
So the honest position is the one the broader llms.txt guide takes: cheap, harmless, useful for docs, unproven for general AI search. It is one line in answer engine optimization, and the lines above it, crawlable pages with extractable answers, are the ones that earn citations in ChatGPT.

