Real llms.txt Examples, Scored Against the Spec

- Most published llms.txt files fail in the same place: an H2 section whose bullets are prose instead of markdown links.
- The spec at llmstxt.org is short. H1 with the project name, a blockquote summary, then H2 sections of linked lists.
- Adoption is partial. No major AI operator documents llms.txt as a signal its crawlers follow.
- Publishing the file is not the same as a crawler fetching it. Only your own server logs see which happened.
- Kymo's own file had the prose-bullet fault. We fixed it, and it's fine to admit that.
Most published llms.txt files fail the spec in the same place: a list under an H2 whose items are prose rather than markdown links. That pattern shows up in almost every llms txt example you'll find, and it's easy to fix once you see it.
The spec is small. An H1 with your project name. A blockquote with a one-line summary. Then H2 sections, each containing a list of markdown links with short descriptions. That is the whole shape. Optional file lists have their own rules, but the core is H1, blockquote, H2 of linked lists.
What most files actually do: H1, blockquote, then an H2 called something like "## Content" followed by eight bullets that are plain sentences describing pages. No links. A parser looking for link targets gets nothing.
The most common fault, stated plainly
A list under an H2 whose items are prose rather than markdown links. That is the single most widespread error in published files. It reads like a summary. The spec asks for a list of linkable resources.
The wrong shape:
## Documentation
- Our API reference covers authentication and rate limits.
- The getting started guide walks new users through setup.
- Pricing details live on the main site.
Nothing in that block is a URL. A parser cannot follow it. The fix is short:
## Documentation
- [API reference](https://example.com/api): authentication and rate limits.
- [Getting started](https://example.com/start): setup for new users.
- [Pricing](https://example.com/pricing): plan comparison.
Same information, correct shape.
What the spec asks for, section by section
| Spec element | Required? | What most published files do |
|---|---|---|
| H1 with project name | Yes | Present, usually correct |
| Blockquote summary | Yes | Often missing or too long |
| H2 sections | Yes | Present, but often prose bullets |
| Markdown links in lists | Yes | Frequently missing |
| Optional section | Optional | Occasionally misused as a catch-all |
The failures cluster in the right column. The H1 and blockquote are easy. The list-of-links part is where files fall over.
A shape that works and one that doesn't
A correct file gives each section a clear entry point and points every link somewhere real. It doesn't try to explain the whole site. It points at the pages an AI system might want to read.
The outline: H1 with the project name, blockquote explaining the product in one line, then two to four H2 sections (Docs, Product, Blog is fine), each holding a short linked list.
An incorrect file often includes a "## Notes" H2 with bulleted opinions, a "## Team" section with names and no links, or a giant "## Everything" dump. None of that helps a parser. Some of it dilutes the one useful signal the file carries: where your canonical resources live.
The adoption question you can't skip
Publishing llms.txt is a cheap bet. It is not a ranking lever, and it is not a requirement. Adoption is partial. No major operator, OpenAI, Anthropic or Google, documents llms.txt as a signal its crawlers follow. Several documentation platforms and developer tools do read it, which is the reason it's worth ten minutes.
Say it plainly: publishing the file is not the same as a crawler fetching it. Only your server sees which one happened. That is where AI visibility, explained becomes the useful question. Which agents fetched your file, and which fetched your pages afterward. Kymo's own dashboard shows the distinction.
You also want to know which tokens you're writing the file for. If you block Google-Extended (a robots.txt control token, not a crawler) at the same time, remember it is a control token, not a visiting agent. It will never appear in a log. Same for Applebot-Extended (a robots.txt control token, not a crawler). Real crawlers leave real rows.
Kymo's own file had the fault
Our file followed the reference shape at the top and then hit the prose-bullet problem under one H2. The bullets read fine to a person and gave nothing for a parser. We rewrote them as markdown links with short descriptions. This is not a humble brag. The error is the default behavior. Most teams write prose because prose is what you write everywhere else.
If you want to see the flat structure Kymo publishes and why the sections stay short, the documentation covers it.
What to check in your own file
Open your llms.txt. Read only the H2 sections. For each one, count the bullets and count the markdown links. If those two numbers don't match one to one, you have the most common fault.
Then check the blockquote. It should say what the site is in one line. Not a paragraph.
Then check the H2 names. They should describe what the links are, not what the section feels like.
One more decision. Whether to publish at all. For a solo builder, the honest answer is yes. It takes ten minutes. It costs nothing. Treat it as a cheap bet, not a growth channel. The real work is on the pages you link to, and on how those pages get fetched by live agents like ChatGPT-User (OpenAI's live fetcher) and by indexing crawlers such as Bytespider (ByteDance). What those agents do is the useful signal. Your llms.txt is a map. The map is not the traffic.
If you want the wider playbook for how AI answers pull from your site, the Small Business Guide to AEO walks through it without the hype. How to Rank in ChatGPT (What Actually Influences It) is the shorter version for that one surface. You can compare what tools measure in AI SEO Tools for Small Business: What's Worth Paying For. And if you're still getting your analytics layers straight, Analytics basics is the plain starting point.
Do the fix if your file is prose. Skip the file if your pages are thin.
Do the fix if your file exists and its H2 sections are prose bullets. Ten minutes, one correct answer.
Skip the file if you have not written the pages it would point to. A spec-compliant llms.txt linking to thin pages is still a thin site. The file does not create anything. It points.
Fix the bullets, then go back to the pages that matter. Those are what AI systems read and sometimes quote.
See which crawlers actually fetch your file
Point Kymo at your site and the dashboard shows which AI crawlers fetched llms.txt, which fetched your pages, and which sent clicks back, alongside your normal analytics. If you'd rather not install anything yet, the free AI visibility check reads a URL from public signals, so the site does not need Kymo installed, and the report arrives by email.
Start free → 14-day free trial. No card required.