Guide
llms.txt: what to actually put in it
An llms.txt is a markdown summary of your site, at /llms.txt, written for language models rather than people. It takes about ten minutes. No major answer engine has confirmed it reads one, which is the part most guides leave out, and it is still probably worth writing. This page explains why, and what goes in it.
Start with the honest bit
Almost every post you will find about this file is written as though putting one up gets you cited by ChatGPT. There is no evidence for that. Google has said its systems do not use llms.txt, and neither OpenAI nor Anthropic documents reading one. The convention was proposed by Jeremy Howard in September 2024 and adoption on the publishing side has been far faster than adoption on the consuming side.
So here is the actual case for writing one, which is weaker than the usual pitch and still good enough:
- It costs ten minutes and about 40 lines. There is no meaningful downside, no crawl budget being consumed, no risk of a penalty.
- The exercise is the point. Compressing your product into one blockquote and six links is the same work as writing a homepage that a stranger understands. Most founders discover their positioning is vague while writing this file, not while writing the homepage.
- The cost of being early is nothing and the cost of being late, if adoption does arrive, is a few months of not being understood.
What it is not is a substitute for the things that already work. If you have not checked your robots.txt lets the AI crawlers in, close this page and go and do that instead, it matters considerably more. The AEO checklist has the four user-agents worth allowing.
What goes in it
The format is markdown and the structure is four parts:
- An
#H1 with the name of the site. Nothing else. - A
>blockquote with one sentence saying what this is and who it is for. This is the single most important line in the file. - Optional plain paragraphs of context. Facts a model would otherwise have to infer: your pricing model, your category, what you are not.
##sections containing lists of links, in the form- [Title](url): what this page covers. The description after the colon is doing most of the work.
An annotated example, from this site
This is close to what Startup Feedback Exchange actually serves at /llms.txt, with the reasoning inline. The member list at the bottom is generated from the database on an hourly revalidation, which is the one part worth stealing.
# Startup Feedback Exchange > A working exchange for solo and indie SaaS founders: peer product > reviews, published testimonials, launch amplification, a shared > content pool, and monthly site audits.
One sentence, literal, no adjectives that could apply to any company. A model asked “where can indie founders get product feedback” can match against that sentence. It cannot match against “we are reimagining how founders connect”.
## Key pages - [How it works](https://example.com/how-it-works): the review commitment and the five member programs. - [AEO checklist](https://example.com/aeo-checklist): answer-engine optimization guide for indie SaaS founders. - [Member directory](https://example.com/directory): every product in the network. - [Join](https://example.com/join): apply for membership.
Four links, not forty. Every description says what the page covers, not what it is called, because the title is already in the brackets and repeating it wastes the only sentence you get.
## Member products - [Acme Invoicing](https://acme.example): invoicing for freelance designers. Flat $12/month, no per-invoice fee.
The part most sites cannot do: a generated list of the actual entities the site knows about, each with a factual one-liner and a real price. If your product has a catalogue, a directory, a docs tree or a set of locations, that belongs here, generated rather than hand-maintained so it cannot go stale.
The four mistakes
Pasting your marketing copy in
The file exists to be unambiguous. “Work, reimagined” carries no information. Write the sentence you would say to a stranger at a conference who asked what you do, and include the category noun: “invoicing software for freelancers”, not “the future of getting paid”.
Linking every page you have
A sitemap already lists every page and does it better. If your llms.txt has 60 links, the six that matter are now invisible. Six to twelve is the useful range. Ask which pages you would want quoted back to a prospect.
Letting it go stale
A hand-written file describing your product as it was fourteen months ago is worse than no file, because now you are confidently wrong rather than absent. Generate the parts that change. If you cannot generate them, put a reminder in your calendar for every quarter, and if you will not do that either, keep the file to the parts that do not change.
Claiming things that are not on the site
Same rule as schema markup: if a fact is not visible on a page a person can load, it does not belong in a file describing that page. An engine that checks and finds a mismatch has learned something about you, and it is not the thing you wanted it to learn.
How to check it works
- Load
yourdomain.com/llms.txtin a browser. It should render as plain text, not download, and not 404. On Next.js a route handler returningtext/plain; charset=utf-8does the job. - Paste the whole file into a model with no other context and ask it: what does this company do, who is it for, and what does it cost? If the answers are wrong or vague, the file is wrong or vague. This is the entire test and it takes thirty seconds.
- Grep your access logs for
llms.txtonce a month. This is how you will find out for yourself whether anything is actually fetching it, and right now that is better information than anything published on the subject.
Who should skip this
If your site is a single landing page, you do not need one. The landing page is the summary, and a model reads it fine. If you are pre-launch and your positioning is still moving weekly, writing this now means rewriting it in a fortnight. And if you have not yet done the boring, proven work, a public pricing page, an about page with a real name on it, an FAQ using questions people actually ask, then do that first. Those get quoted today. llms.txt might get read tomorrow.
Common questions
What is llms.txt?
llms.txt is a plain-markdown file at the root of your site that describes what your product is, who it is for, and where your important pages are. It was proposed by Jeremy Howard of Answer.AI in September 2024 as a way to give language models a clean, short summary of a site instead of making them parse navigation, cookie banners and marketing copy. It is a convention, not a standard, and no search or answer engine has committed to honouring it.
Do AI crawlers actually read llms.txt?
There is no public confirmation that any major answer engine uses it. Google has said its systems do not, and neither OpenAI nor Anthropic has documented reading it. Some smaller tools and documentation platforms do. Write one anyway if it takes you ten minutes, because the cost is close to zero and the exercise of compressing your product into 300 useful words tends to improve your homepage as a side effect. Do not write one instead of the things that demonstrably work.
Where does llms.txt go and what format is it?
It goes at the root of your domain, at /llms.txt, served as text/plain or text/markdown. The format is markdown: an H1 with your site name, a blockquote with a one-sentence summary, then H2 sections containing lists of links, each with a short description after a colon.
What is the difference between llms.txt and robots.txt?
robots.txt tells crawlers what they may fetch, and it is enforced by convention across the whole industry. llms.txt tells a model what your site means, and nothing enforces it at all. They solve unrelated problems, and robots.txt is the one that will actually cost you visibility if you get it wrong. Check that you are not blocking GPTBot, ClaudeBot, PerplexityBot or Google-Extended before you spend any time on llms.txt.
Want a second pair of eyes on yours? Members sanity-check each other’s implementations, and it is one of the faster reviews to give. That is what the exchange is for.