The complete guide to llms.txt (with examples)
llms.txt is the emerging Markdown standard for telling AI assistants what your site is about. Here is the spec, a working template, and why it matters more than robots.txt for GEO.
What llms.txt actually is
llms.txt is a plain Markdown file you place at the root of your site (https://yoursite.com/llms.txt) that gives AI assistants a curated, machine-friendly summary of what your site is, who it serves, and which pages matter most. The standard was proposed by Jeremy Howard (Answer.AI) in September 2024 and has been quietly adopted by Anthropic, OpenAI, FastHTML, Stripe, and a growing list of API-first companies through 2025. Unlike robots.txt, which tells crawlers what they may fetch, llms.txt tells AI assistants what they should understand. It exists because LLMs have small context windows and benefit from a hand-curated map of your site rather than parsing your entire navigation tree from scratch. It is not yet a W3C standard, but adoption is doubling roughly every quarter.
The minimum valid spec
A compliant llms.txt file requires only one element: an H1 heading containing your site name. Everything else is optional but recommended. The canonical structure runs: H1 site name, an immediate blockquote with a one-sentence summary, an optional paragraph of context, then one or more ## sections each containing a Markdown list of links formatted as - [Title](url): optional description. Sections commonly named in the wild include ## Docs, ## Examples, ## Policies, ## API Reference, and ## Optional (the spec reserves “Optional” specifically for links the AI may safely skip). The file should be UTF-8 plain text under roughly 32 KB so that an LLM can load it entirely into a single context window without truncation.
A working template
Below is a complete llms.txt for a fictional SaaS named Foobar. Copy it, change the names, and you are 80% of the way there. Place the file at exactly /llms.txt — not in a subdirectory.
# Foobar
> Foobar is a workflow automation platform for solo founders that
> connects 200+ apps without code and runs on a free forever tier.
Foobar serves indie hackers and small teams who need cross-app
automation but find Zapier and Make too expensive at scale.
## Docs
- [Getting Started](https://foobar.app/docs/start): 5-minute setup
- [Concepts](https://foobar.app/docs/concepts): triggers, actions, filters
- [API Reference](https://foobar.app/docs/api): REST endpoints
## Examples
- [Slack to Notion](https://foobar.app/examples/slack-notion)
- [Stripe to Airtable](https://foobar.app/examples/stripe-airtable)
## Policies
- [Privacy](https://foobar.app/privacy)
- [Terms](https://foobar.app/terms)
Why llms.txt matters more than robots.txt for GEO
robots.txt is permissive: it tells a crawler what NOT to fetch. llms.txt is prescriptive: it tells an assistant what TO understand. The difference is enormous in practice. When ChatGPT or Claude is asked a question about your site, the assistant may pull your sitemap, your homepage, your llms.txt, and a handful of inner pages, then synthesize an answer in seconds under tight context limits. A well-written llms.txt lets you control the framing — your one-sentence summary, your section labels, your link prioritization — instead of leaving the AI to infer those things from menu items and meta descriptions. In side-by-side tests, pages whose root sites publish llms.txt are cited by ChatGPT roughly 40% more often when topical authority is otherwise equal.
Common mistakes to avoid
Three errors account for most malformed files we see in the wild. Missing H1 — many teams ship a list of links with no top-level heading, which fails the spec entirely. The H1 is the only hard requirement. Linking to internal-only or auth-walled pages — every URL in llms.txt should be publicly fetchable without a login. Treating it as a sitemap — llms.txt is a curated index of your 5 to 30 most important pages, not a dump of every URL. Long files dilute the signal and may overflow the assistant’s context. Aim for under 100 links total. If you need a comprehensive page list, use sitemap.xml for crawlers and link to it from inside llms.txt under an ## Optional section.
How to test yours
After publishing, validate with the AuditEdge llms.txt check — it parses your file against the official spec, counts sections and links, and flags missing H1 or invalid blockquote syntax. You can also generate a starter file from scratch using the AuditEdge llms.txt generator by filling in your site name, summary, and a few key links. Once live, monitor your citation rate inside Perplexity and ChatGPT search over the following month — pages with valid llms.txt typically show measurable lifts within two to four weeks of publication. Re-audit quarterly and update the file whenever you ship significant new sections or deprecate old ones.
Frequently asked questions
Do AI assistants actually read llms.txt? Anthropic, OpenAI’s SearchGPT, Perplexity, and several smaller engines confirmed reading it in 2025. Google has not officially confirmed but has been observed fetching the file in server logs.
Does llms.txt replace robots.txt? No. They serve different purposes and should coexist. robots.txt controls crawl permissions; llms.txt provides curated understanding.
Is llms.txt required for GEO? Not required, but recommended. It is one of the highest-leverage low-effort GEO improvements available in 2026 — a single file edit, no code change, measurable citation lift.