SEO
llms.txt: what to write
An llms.txt is a markdown file listing the links you want a model to see. It is not a standard: it only works when the content is already readable.
Key points
- llms.txt is a proposal from September 2024, not a standard: no model provider commits to reading it.
- The format is a title, a one-line quote and sections of markdown links with a short description.
- If the text is not in the initial HTML, the file changes nothing: fix the page first, then the index.
In an llms.txt you write a title, one line explaining the site, then sections of markdown links, each with a description of a few words. The file gives a model a curated map of the pages that matter; it does not replace the sitemap.
The format
The proposal published on llmstxt.org in September 2024 fixes a minimum structure. A level-one title with the project name, a one-line blockquote summary, then level-two sections with lists of links. Every link has text, a URL and, after the colon, a short description. A final section called Optional collects the secondary links a model can skip.
# EneUI
> Catalogue of UI components, blocks and icons with a declared licence.
## Guides
- [Getting a site indexed by Google](https://ui.eneawork.it/blog/indicizzare-un-sito-su-google): the full sequence
- [Schema markup](https://ui.eneawork.it/blog/come-aggiungere-schema-markup): JSON-LD that validates
## Catalogue
- [Components](https://ui.eneawork.it/components)
- [Blocks](https://ui.eneawork.it/blocks)
- [Icons](https://ui.eneawork.it/icons)
You serve the file at the domain root, as /llms.txt, in UTF-8, with type text/plain or text/markdown. There are no tags, attributes or escapes: what you write is what the model reads.
How to build it from a sitemap
curl -s https://ui.eneawork.it/sitemap-blog.xml | grep -o "[^ llms-draft.txt
cat llms-draft.txt
The command reads the blog sitemap, extracts the URLs and builds one list row per URL, using the slug as link text. The result is a draft: write the descriptions by hand, because a slug does not say what the page contains. Twenty curated rows beat a thousand generated ones.
What it is not
It is not a standard: there is no RFC, no body approves it and no Google, OpenAI or Anthropic document says it is read. It is not a control like robots.txt, which a crawler honours by contract. It is not a place for private data: the file is public and reachable like a normal page. It is not a substitute for indexable HTML.
The EneUI catalogue
An llms.txt makes sense when the site already has a browsable catalogue and declared licences. The EneUI catalogue exposes 111,985 components from 1,472 libraries, 1,556 blocks and 12,808 icons: three separate indexes, with single records and a licence per library. The same sections sit in the draft above, with links to components, blocks, libraries and icons. Data verified on /api/stats on 1 November 2026.
The limitation
The file is a promise, not a control. If a page needs JavaScript to show its text, a model that reads only the HTML never sees it, and llms.txt changes nothing. The page always comes first: content in the initial document, title, date, author. The index comes after.
Where to continue
What makes a page quotable is in optimising for AI Overviews; the markup that validates is in schema markup; the comparison between server and client rendering is in Next.js or Vite for a marketing site; the shape of internal links is in internal linking strategy.
Frequently asked questions
Is llms.txt a standard?
No. It is a proposal published in September 2024, with no standards body behind it and no commitment from model providers to read it.
Where does the file go?
At the domain root, as /llms.txt, served in UTF-8 as text/plain or text/markdown, without authentication.
How is it different from llms-full.txt?
llms.txt is an index with links and descriptions; llms-full.txt holds the full text of the pages in one file, heavier and more useful to a model that wants everything.
Does an llms.txt improve ranking?
It is not a ranking factor. It is a format an agent can read, useful when the content is already public, indexable and well structured.
What should stay out of the file?
No temporary URLs, no paid pages and no private data: the file is public and anyone can read it, crawler or person.