llms.txt is a Markdown file at the root of a website, for example https://example.com/llms.txt, that lists the site's key pages with a short note on each. It was proposed at llmstxt.org as a clean index for software that reads websites: instead of working through menus, scripts and layout, a reader gets the site's name, a one-line summary and a curated list of links.
What it is for, in plain terms: tools that read websites on someone's behalf get a short, curated map of the pages that matter, with a note on each, instead of guessing from menus and page layout. Support for it varies from tool to tool: some look for it, many do not, and having one does not change how a site ranks or how much traffic it gets.
It is a plain text file. You write it once, upload it next to robots.txt, and update it when your important pages change.
The format, line by line
Here is a complete, valid file for a made-up site:
# Example Studio > Booking software for small yoga and dance studios. Example Studio runs in the browser. Prices are in USD. ## Docs - [Quick start](https://example.com/docs/start): Set up a studio and a first class - [Payments](https://example.com/docs/payments): Card payments, refunds and payouts ## Optional - [Changelog](https://example.com/changelog)
- H1 title (required). Line 1,
# Example Studio. Exactly one H1, and it comes first. It is the only part the format requires. - Summary blockquote (optional). Line 3,
> Booking software.... One or two sentences on what the site or project is. - Details (optional). Line 5. Any Markdown except headings: short paragraphs or lists with context a reader should know.
- H2 sections.
## Docs. Each section holds a list of links. Name sections after what the links are: Docs, Guides, API, Products. - Link items.
- [Quick start](https://example.com/docs/start): Set up.... A Markdown link with an absolute URL, then optionally a colon and a note. - The Optional section. A section named exactly
## Optionalholds links a reader may skip when it needs a shorter context. Put it last.
Where it goes and how to serve it
- At the root of the site:
/llms.txt, not in a subfolder. - Served with HTTP 200 as
text/plainortext/markdown, in UTF-8. - Not behind a login, and not replaced by an HTML page. Many site builders answer every unknown address with a web page; the checker flags that.
Some sites also publish /llms-full.txt: one file with the full text of their key pages. It is a companion convention, not part of the core format; the checker reports whether you have one.
Common mistakes the checker catches
- No H1, or two of them. The title line is missing, or a second
#heading was used for a section. - Relative URLs.
[Docs](/docs)works on a web page but not in this file. Writehttps://example.com/docs. - List items that are not links. A bullet with plain text, or a note before the link.
- Notes without the colon.
- [Docs](https://example.com/docs) - setup guideshould be: setup guide. - Deeper headings.
###inside a section; the format uses only H1 and H2. - "Optional" in the wrong place or with another name. Only a section named exactly "Optional" has the special meaning, and it should be last.
- Dead or moved links. The checker sends a HEAD request to up to 25 links and reports 404s and redirects by line.
- Wrong content type. A file served as HTML, or an HTML error page where the file should be.
Who reads it
llms.txt is a proposal, not a standard every service follows. Some services read it, others do not, and some major search engines have said they do not use it. Crawlnote makes the file correct; it cannot make anyone read it, and it does not promise rankings or traffic.
That makes a small, accurate file the sensible goal: cheap to write, easy to keep current, and correct for any reader that does look for it.