What goes in an llms.txt
The format, from llmstxt.org, is Markdown with a fixed shape. That shape is what lets a model read it reliably:
# Rao's Bakery > Fresh bread, cakes and custom orders in Koregaon Park, Pune. ## Pages - [Menu](https://raosbakery.in/menu): Breads, cakes and pastries, with prices - [Custom cakes](https://raosbakery.in/custom-cakes): Order a cake for a date - [Visit us](https://raosbakery.in/visit): Address, hours and parking ## Blog - [How we make sourdough](https://raosbakery.in/blog/sourdough): Our 36-hour method
- An H1 with the site's name — the only required line.
- A one-line summary as a blockquote: what the business is, and where.
- Sections of links, each with a short note on what the page holds.
The generator names the site from its own og:site_name or home page title, takes the summary from the home page's meta description, and groups pages into sections by folder — /blog/ pages under Blog, and so on.
Why it's written from your pages, not by AI
An llms.txt tells an assistant what your pages say. If a model wrote the descriptions, the file would describe your site in words your site doesn't use — and an assistant that trusts it would repeat claims you never made. So every description here is the page's own meta description. Where a page has none, it's listed by title alone, and that's a signal worth acting on: a page with no description is a page search engines describe for you too. The result preview helps you write one.
Make it count
- Put it at the root. It has to be at
/llms.txton your main domain. In Next.js, Astro, Vite and most other frameworks, that'spublic/llms.txt; in SvelteKit and Hugo,static/llms.txt. - Keep it short. It's a map, not a copy of the site. Your most useful pages, with a line each.
- Let the crawlers in. A perfect llms.txt does nothing if robots.txt blocks the assistants — the AI crawler checker shows whether it does.
- Say who you are in structured data too. llms.txt is read by some tools; schema.org markup is read by search engines everywhere. The schema markup generator builds it.
For the background, read what llms.txt is and who reads it.