llms.txt for AI search: what it is and how to write one
What the llms.txt file is, why it matters for citability in ChatGPT, Perplexity and AI Overviews, and how to write one properly — with the live example from manilla-services.ro.

In short: llms.txt is a text file at your site root (like robots.txt, but for language models) that gives AI crawlers a clean, structured summary of your site — who you are, what you offer, which pages matter. It's not an official standard imposed by anyone, but it's easy to add and helps you get cited correctly in ChatGPT, Perplexity and AI Overviews.
Why it exists
A language model "reading" your site struggles with the same thing a rushed reader does: navigation, menus, footers, cookie banners, JavaScript. The useful information is buried in markup. llms.txt solves this by offering the distilled version: clean Markdown text, no noise, exactly what you want the AI to understand about you.
The idea is borrowed directly from robots.txt and sitemap.xml — conventional files crawlers know to look for at a fixed path. The difference: robots.txt says what it CAN crawl, llms.txt says what to UNDERSTAND.
What matters for AI search (AEO)
Optimizing for answer engines (AEO — Answer Engine Optimization) is different from classic SEO. A model cites sources that:
- answer the question directly in the first sentences (answer-first),
- have concrete data (numbers, prices, times),
- have a clear entity (who you are, what you do, where),
- have valid structured data (schema.org),
- and, increasingly, have an
llms.txtthat lays it all out.
llms.txt is not a silver bullet — it doesn't get you into answers on its own. But it reduces friction: if the model is already evaluating you, a clean llms.txt increases the chance it represents you correctly, with real data, not a guess.
The structure of a good llms.txt
The convention is simple and readable:
- H1 title with the brand name.
- A quote (
>) — one sentence summarizing what you do. - H2 sections with links: About, Services, Projects, Contact.
- Each link with a short description after
:. - Optionally, an
llms-full.txtwith the complete content, for deep ingestion.
A real example, from manilla-services.ro/llms.txt: concrete prices, short descriptions, absolute links. Exactly what a model can extract and cite without guessing.
Common mistakes
- Copying the site menu.
llms.txtis not a navigation map, it's an editorial summary. Put what matters, not everything. - Letting it go stale. If you change services or prices on the site but not in
llms.txt, the model cites old data. Keep it in sync. - Relative links. Use absolute URLs — the crawler doesn't necessarily know the base domain.
- Zero concrete data. "We offer quality services" tells a model nothing. Numbers, prices, examples.
How to test it
There is (yet) no official validator like Rich Results Test. You check manually: open https://your-domain.com/llms.txt, confirm it's served as text/plain, that links are absolute and that it reflects the current reality of the site. Then, over time, check whether you appear correctly when you ask ChatGPT or Perplexity about the brand.
Is it worth it?
It's a small investment (an hour) with zero downside. It doesn't hurt your classic SEO, doesn't block anything, and positions you for a fast-growing channel — AI search. We build and maintain it as part of the AEO / AI search optimization service, and when we run an SEO/AI audit with code-level fixes it's among the first things we add if it's missing.