llms.txt is a proposed standard for a Markdown file at yourdomain.com/llms.txt that tells large language models what your site is and where the important content lives. It takes ten minutes to write. Here's what it is, what it isn't, and how to do it well.
The format was proposed by Jeremy Howard of Answer.AI in September 2024. The idea: websites are built for people and browsers, with navigation, scripts and layout that make them hard for a model to read in a limited context window. A short, curated Markdown file gives models a clean entry point.
An llms.txt file is plain Markdown with a predictable structure:
An H1 with the name of the site or product (the only required part).
A blockquote with a one or two sentence summary.
Optional paragraphs with key context, such as who the product is for.
H2 sections containing lists of links, each with a short description, e.g. “- [Pricing](https://example.com/pricing): plans and limits”.
An optional “Optional” section for links a model can skip when context is short.
Here's what a short file for a fictional project management tool could look like, line by line:
# Acme Projects
> Acme Projects is project management software for agencies with 5 to 50 people. Plans start at $12 per user per month.
Acme combines client portals, time tracking and invoicing, so agencies don't need separate tools for each.
## Product
- [Features](https://acme.example/features): task boards, client portals, time tracking and invoicing
- [Pricing](https://acme.example/pricing): plans, limits and what's included in each
- [Integrations](https://acme.example/integrations): Slack, Google Drive, QuickBooks and Xero
## Docs
- [Getting started](https://acme.example/docs/start): set up a workspace and invite your team
## Optional
- [Blog](https://acme.example/blog): agency operations guides
Two related conventions often sit next to llms.txt. The first is llms-full.txt: one file containing the full text of your key pages or docs in Markdown, so a tool can load everything in a single request. It's most useful for documentation sites; for a marketing site it can get large quickly.
The second is serving a Markdown version of individual pages, for example at the same URL with .md added. Some sites link these from llms.txt instead of the HTML pages. Both are optional; a clear llms.txt pointing to well-structured HTML pages is a fine place to start.
Listing every page on the site. llms.txt should be curated; that's what your sitemap is for.
Marketing language instead of facts. “The world's leading platform” tells a model nothing; “project management for agencies of 5 to 50 people” does.
Linking to pages that redirect, return errors or only render with JavaScript.
Serving it with the wrong file type or behind a login, bot challenge or cookie wall.
Writing it once and forgetting it, so it keeps describing old plans or products.
llms.txt is a convenience, not a ranking factor. No major AI search engine has confirmed it uses llms.txt to decide what to cite, and it doesn't replace robots.txt, sitemaps or crawlable HTML. Where it clearly helps is with coding assistants and agents that fetch documentation, and as a forcing function: writing one makes you decide which pages actually describe your product.
Keep the summary factual: what you do, for whom, and what makes you different.
Link to pages that answer buyer questions: product, pricing, integrations, comparisons, docs.
Use absolute URLs and make sure every linked page is crawlable HTML.
Update it when pricing or products change; stale facts get repeated by AI.
Because it costs so little, most sites can add one. It matters most for a few types of site:
Developer tools and APIs, where coding assistants fetch documentation and benefit from a clean index of docs pages.
SaaS products with many features, plans and integrations, where a short factual summary prevents AI tools from guessing.
Large content sites, where a curated list points models to cornerstone guides instead of thousands of thin pages.
Think of llms.txt as the last layer, not the first. AI search visibility starts with crawler access in robots.txt and your CDN, pages that render as HTML, a current sitemap submitted to Google and Bing, and clear facts on your product and pricing pages. Once those are in place, llms.txt summarizes them in a format language models can read in one pass, and it's an easy file to keep up to date whenever your product changes.
Open yourdomain.com/llms.txt in a browser and in a private window. It should load as plain text with a 200 status, without redirects, logins or bot challenges. Then check each link opens a real page. Your server or CDN logs will show which bots and tools request the file, which is the only reliable way to see whether anything is actually reading it.
Get Nodded's AI readiness audit checks whether your llms.txt exists and is well-formed, alongside robots.txt rules, crawler access through your CDN, JavaScript rendering and indexing.
No. It's a proposed convention published in 2024, not a standard from a standards body. Adoption is growing, mostly among documentation sites, developer tools and SaaS companies.
None of the major AI search engines has confirmed that it uses llms.txt to decide what to cite. Some coding assistants and AI agents do read it when fetching documentation.
It isn't a ranking factor, so don't expect a direct boost. It's a low-effort way to give AI tools a clean summary of your site, and writing one often exposes pages that need clearer facts.
robots.txt tells crawlers what they may and may not access. llms.txt doesn't grant or block anything; it's a curated guide to your most important content for language models.
At the root of your domain, at /llms.txt, served as plain text. Docs that live on a subdomain or under a subpath can have their own llms.txt there too.
Short enough to read in one pass: usually a summary plus 10 to 50 links. If you want to give models full content, put it in an llms-full.txt or Markdown pages and keep llms.txt as the index.
What is generative engine optimization (GEO)? A practical guide for 2026
AI crawlers explained: GPTBot, ClaudeBot, PerplexityBot and the rest