What llms.txt is — and whether it earns its place
A tiny markdown file that hands AI a clean map of your site. What it does, how to write a good one, and an honest take on whether it's working yet.
llms.txt is the smallest piece of GEO you can ship, and one of the most misunderstood. So, plainly: it's a markdown file at the root of your site (/llms.txt) that gives an AI a curated map of what you've got — an overview line, then the handful of pages that actually matter, each with a one-sentence description.
Think of it as a sitemap written for a reader instead of a crawler. An sitemap.xml is a flat list of every URL. llms.txt is the opposite: opinionated, prioritised, human-readable. It says "here is who this site is, and here are the ten things worth reading first."
There's an optional companion too — llms-full.txt — which concatenates the full text of your key pages into one file, so a model can ingest everything in a single fetch instead of crawling page by page.
What a good one looks like
The format is just markdown:
- An
# H1with the site name. - A
> blockquoteone-liner: who you are, in a sentence. - Sections (
## Work,## Writing,## About) with links:- [Title](url): one line on what it is.
Keep it curated. The value is the editing — surfacing your best, not dumping your whole nav. If you generate it from your CMS (mine builds itself from the same content that powers the site), regenerate it when content changes so it never goes stale.
What I actually put in mine
When I wrote khoa.work's llms.txt, the hardest part wasn't the format — it was the editing. I have 21 blog posts and 9 case studies. The file links to maybe ten of them. The rest are deliberately absent.
The curation logic: link the pieces that explain what I do and how I think, not everything I've published. The GEO overview, the combinatorial SEO case study, the SoiTarot project — those tell the story. A horoscope compatibility page for Cancer and Sagittarius does not. An AI that reads my llms.txt should come away knowing I build SEO systems, not that I've indexed 15,000 zodiac pairings.
The llms-full.txt is different — that one is comprehensive, concatenating the full text of key pages so a model can ingest everything in one fetch. But even there, I drew a line: full articles, not the generated SEO pages. The machine can crawl those. The point of llms-full is depth, not volume.
What I'd do differently
I spent two hours on my first llms.txt draft. Too long. The file was forty lines, with descriptions that read like meta tags. I rewrote it in twenty minutes the next day, cutting it to fifteen lines, and the shorter version was better. Every sentence I cut was one an AI didn't need.
The mistake was treating it like an SEO exercise — optimizing descriptions, stuffing keywords. An AI doesn't rank your llms.txt. It reads it. The best descriptions are the ones you'd say out loud to a colleague: "This is the page where I explain how I generate 15,000 SEO pages from a template." Not "Comprehensive guide to programmatic SEO page generation leveraging dynamic templating."
If I were starting over, I'd write the file in five minutes, link only the five pages I'd send a stranger, and expand from there when something felt missing. The instinct to be comprehensive is the enemy. Curation is the product.
The honest take
Adoption by the AI labs is still uneven — not every engine fetches llms.txt yet, and none of them promise to. So don't expect it to flip a citation switch.
What it is: cheap insurance with zero downside. It costs about an hour, it can't hurt you, and it pays off the moment any engine decides to use it. There's also a quiet side benefit — writing one forces you to articulate what your site is actually for, which tends to improve everything else.
You can see mine at /llms.txt (the index) and /llms-full.txt (the full content). To check whether your own site has one — and how it scores on the rest of the GEO basics — paste a URL into the free AI-readiness checker.