Every few months a new file appears that is going to fix AI visibility. The current one is llms.txt. It is worth understanding, worth adding for most sites, and worth being sober about, because the claims made for it have outrun the evidence.
What it is
llms.txt is a markdown file at the root of your domain that describes your site to a language model in a form it can consume cheaply. It was proposed in 2024 as a response to a real problem: an LLM given a raw website has to crawl navigation, cookie banners, and template chrome to find the few facts it needs, and it often gets them wrong.
The format is deliberately plain: an H1 with the site name, a blockquote summary, then sections of links with short descriptions. That is nearly the whole specification.
What it is not
- It is not robots.txt. It grants nothing and forbids nothing. Access control still lives in robots.txt and your firewall.
- It is not a ranking factor. Nobody has demonstrated that having one makes an engine more likely to cite you.
- It is not a substitute for crawlable pages. If your actual content only renders in JavaScript, a tidy summary file does not rescue you.
The honest state of adoption
This is where most articles on the subject overreach, so plainly: as of this writing, no major answer engine has publicly documented that it reads llms.txt as part of retrieval. There is developer-tool adoption, a growing number of sites publishing one, and reasonable speculation. There is not a confirmed, measurable citation benefit.
So the case for adding one is not "engines will read it". It is:
- It costs an hour and one static file.
- It is genuinely useful to agents, internal assistants, and anyone pointing a model at your docs today.
- Writing it forces you to articulate what your site is about in machine-readable terms, which surfaces gaps in your actual pages surprisingly often.
That is a decent return for an hour. It is not a strategy.
How to write one worth having
The bad version is a bulleted sitemap. The good version answers the questions a model would otherwise have to infer: what this is, who operates it, what it does, who it is for, and where the authoritative pages are.
# Company Name
> One paragraph that would satisfy someone asking "what is this?"
> Say the category, the audience, and what makes it different.
Operated by: Legal entity, city, country
Homepage: https://example.com/
## What it does
Plain prose. Define your own terms. Do not assume the reader
knows your category vocabulary.
## Core features
- **Feature** Short description with a concrete fact in it.
## Who it is for
The segments, and the job each one hires you for.
## Frequently asked
- **Question people actually ask?** A complete answer.
Three practical rules
- Define your terms in it. If your category has jargon, the file is a good place to define it, because a definition is the passage most likely to be lifted verbatim.
- Do not enumerate volatile things. Listing every blog post in a static file guarantees it goes stale. Link the sitemap or feed instead.
- Keep it factually identical to your site. A summary that disagrees with your pricing page is worse than no summary.
What to do instead if you only have an hour
If you must choose between writing llms.txt and one other thing, do the other thing. In rough order of demonstrated impact:
- Make sure your key pages are in the served HTML without JavaScript.
- Check that the AI crawlers are not blocked in robots.txt.
- Restructure your most valuable page so each section answers its own heading. The checklist is in The GEO Content Checklist.
- Add
OrganizationandArticlemarkup with real dates and authors. - Then write
llms.txt.
It belongs on the list. It is just not at the top of it.


