AI SpeedForce

llms.txt explained: what it is and how to write one

llms.txt is a short Markdown file at your site root that tells language models what your site is and where the important pages are. It is a proposal, not a standard, and it is cheap to publish.

llms.txt is a Markdown file placed at the root of a website, at /llms.txt, that tells language models what the site is and where its most important pages are. It was proposed at llmstxt.org in 2024 as a simple way to give AI systems a clean guide instead of making them work it out from HTML. It is a proposal, not an official standard, and it takes less than an hour to publish.

This post explains what the proposal says, how to structure the file, how it relates to robots.txt and sitemaps, and what it will not do for you.

The problem it solves

Web pages are built for browsers. A typical page carries navigation, scripts, cookie banners, footers and layout markup around a few paragraphs of real content. A language model reading that page has to spend effort, and context space, working out what matters. It may also miss the pages that best explain your business, because nothing points to them.

llms.txt answers that with a short, curated guide written in Markdown, a format models read easily. It says: this is who we are, and these are the pages worth reading, with a line on each.

How an llms.txt file is usedFetch then Read then Follow then LoadHOW AN LLMS.TXT FILE IS USEDFetch/llms.txt at the rootReadname, summary, sectionsFollowlinks to key pagesLoadMarkdown versions
How an llms.txt file is used

The structure the proposal describes

The proposal describes a specific order of sections:

  1. An H1 with the site or project name. This is the only required part.
  2. A blockquote with a short summary of what the site is, with the key facts a reader needs to understand the rest.
  3. Optional paragraphs or lists with more detail, without headings.
  4. H2 sections containing lists of links. Each item is a Markdown link, optionally followed by a colon and a short description.
  5. An optional section titled "Optional" for links that can be skipped when a shorter context is needed.

A small example:

# Example Store

> Example Store sells refurbished office furniture in the UK and ships within five working days.

## Products
- [Desks](https://example.com/desks.md): standing and fixed desks, with dimensions
- [Chairs](https://example.com/chairs.md): ergonomic chairs and warranty terms

## Policies
- [Delivery](https://example.com/delivery.md): areas, times and costs
- [Returns](https://example.com/returns.md): the 30-day returns process

You can see a full working file on this site at /llms.txt.

Markdown versions and llms-full.txt

The proposal also suggests offering a Markdown version of each page at the same URL with .md added. That gives models the page content without the HTML around it. Some sites serve Markdown on request instead, when a client asks for it with an Accept: text/markdown header; our post on Markdown for agents covers that approach.

A common companion is llms-full.txt: one file that contains the full text of the key pages, so a model can load everything in one request. It is useful for smaller sites and documentation. For large sites it can become too big to be practical, so keep it to what matters.

How it compares with robots.txt and sitemaps

PurposeFormatAudience
robots.txtWhat may be crawledPlain text rulesAll crawlers
sitemap.xmlEvery URL to indexXML listSearch engines
llms.txtWhat matters and whyMarkdownLanguage models and agents
robots.txt vs sitemap.xml vs llms.txt

The three files do different jobs and do not replace each other:

  • robots.txt is a set of rules about what crawlers may fetch. It is a standard, RFC 9309. See robots.txt for AI crawlers.
  • sitemap.xml lists every URL you want indexed, for search engines.
  • llms.txt is a curated guide to what matters, for language models and agents.

Keep them consistent. There is no point listing a page in llms.txt that robots.txt blocks for the crawler you hope will read it.

What llms.txt does not do

Be realistic about it:

  • It is not a ranking signal you can rely on. No major search engine has said it uses llms.txt for ranking.
  • It does not control access. It cannot stop anyone from reading or training on your content. Access rules belong in robots.txt, and usage preferences in Content Signals.
  • It is not guaranteed to be read. Adoption varies by provider and tool.

So why publish one? Because it is cheap, it helps the tools and agents that do read it, and writing it forces a useful exercise: deciding which pages actually explain your business. Some documentation platforms and developer tools already generate or read it.

Where it lives and how it is served

Put the file at the root of your domain, so it is available at https://yourdomain.com/llms.txt. Serve it as plain text in UTF-8, keep the URL stable, and make sure robots.txt does not block it. If you also publish Markdown versions of pages, check that they are served as text and not as a file download, which some servers do by default for the .md extension.

Generate the file from the same source as your site where you can. A hand-edited llms.txt tends to fall behind the site: a page is renamed or removed and the link in the guide breaks. On this site the file is rebuilt from the page list every time the site is built, so it cannot point to a page that no longer exists.

Finally, link to it where agents might look. A Link header or a mention in your documentation helps tools find it, but the root location is the one the proposal defines.

Writing a good one

Writing a good llms.txtStart with an H1 site name; Add a one-line summary in a blockquote; Group key links under H2 sections; Give every link a short description; Link Markdown versions where you have them; Keep it current when pages changeWRITING A GOOD LLMS.TXTStart with an H1 site nameAdd a one-line summary in a blockquoteGroup key links under H2 sectionsGive every link a short descriptionLink Markdown versions where you have themKeep it current when pages change
Writing a good llms.txt

Write the summary for someone who has never heard of you. State facts, not slogans. Link the pages that answer the questions customers ask most, with a plain description of each. If some things are off limits, such as prices you do not publish, say so in the summary, so a model does not invent them.

Next step

The free agent-readiness scan checks whether your site has an llms.txt and whether it follows the expected shape, along with robots.txt, Markdown and structured data. For the wider picture of files agents look for, read the agent readiness checklist.

01Asked

Questions about this topic

Is llms.txt an official standard?

No. It is a proposal published at llmstxt.org in 2024. Some tools and sites use it, but no standards body has adopted it and no AI provider is required to read it.

Does llms.txt replace robots.txt?

No. robots.txt controls what crawlers may fetch. llms.txt only describes your site. Keep both, and keep them consistent.

What is llms-full.txt?

A common companion file that contains the full text of the key pages in one Markdown document, so a model can load everything at once instead of following links.

02Read

Related posts

SEO

robots.txt for AI crawlers: GPTBot, ClaudeBot and the rest

AI providers run separate crawlers for training, for search and for fetching a page a user asked about. robots.txt lets you treat each one differently. Here is who is who and how to write the rules.Read the post
SEO

Lighthouse's agentic browsing audit: what it checks and how to pass

Recent Lighthouse versions add an Agentic Browsing category that checks how well AI agents can read and use a page. Here is what it looks at and how to fix what it finds.Read the post
SEO

Content Signals explained: search, ai-input and ai-train in robots.txt

Content Signals add one line to robots.txt that says how your content may be used once it is fetched: for search, as input to AI answers, or for model training.Read the post

See how your own site scores

The free agent-readiness scan checks the files, headers and endpoints this blog writes about, and tells you what to fix first.

AI SpeedForce
Start a project Log in