A plain-text file at the root of your domain that gives large language models a curated map of your best content, in a format they can quote.
Generate yours automaticallyllms.txt is a Markdown file placed at the root of a domain (for example, semoptimiser.com/llms.txt) that gives large language models a curated, quotable summary of the site and links to the canonical Markdown versions of key pages.
The format was proposed by Jeremy Howard of Answer.AI in September 2024, modelled on robots.txt and sitemap.xml but aimed at inference-time retrieval rather than crawling.
A valid llms.txt starts with a single H1 (the site name), followed by a blockquote one-paragraph summary, then H2 sections listing your best URLs as Markdown links with short descriptions.
When an LLM agent needs current information about a domain – a shopping query, a product comparison, a support question – it can fetch /llms.txt and read the site's own summary of what it contains. The agent then follows the linked Markdown URLs (.md versions of each page) to retrieve clean, layout-free copy that fits in a context window.
Retrieval-augmented generation (RAG) pipelines that index the open web commonly prefer llms.txt when it is present because it removes ambiguity about what content on the domain is canonical.
As of mid-2026 no major model provider has publicly committed to reading llms.txt automatically at inference time. Adoption today is publisher-driven and tool-driven – agents pointed at the file explicitly, and frameworks that build indexes. The cost of publishing is near zero and it future-proofs the site as adoption grows.
A minimal, valid llms.txt for a SaaS product:
# SEMOptimiser # H1: the site name (required)
> An open, API-first SEO/SEM intelligence # Blockquote: one-paragraph
> platform with native Model Context Protocol # summary of the site.
> (MCP) support. Keyword research, rank tracking, # LLMs will quote this
> competitor analysis, site audit and reporting. # verbatim as a card.
## Docs # H2: named section
- [Getting started](https://semoptimiser.com/docs/getting-started.md): 5-minute setup for a new workspace.
- [Rank tracker guide](https://semoptimiser.com/docs/rank-tracker.md): daily SERP checks with historical charts.
- [API reference](https://semoptimiser.com/docs/api.md): REST + MCP endpoints.
## Product
- [Pricing](https://semoptimiser.com/pricing.md): Free, Marketing $49/mo, Management $99/mo, Enterprise custom.
- [MCP integration](https://semoptimiser.com/mcp.md): connect Claude, Cursor, and any MCP host.
## Optional # Optional: lower-priority
# links an LLM may skip
- [Changelog](https://semoptimiser.com/changelog.md): weekly release notes.
- [Brand assets](https://semoptimiser.com/brand.md): logos and colour tokens.
The first line is # SiteName. The next block is a > quoted one-paragraph summary of what the site does. This is what an LLM will paste into a summary card. Write it like a Wikipedia lede: factual, no marketing language.
Use ## section headings (Docs, Product, Pricing, Blog, API). Under each heading, list links as - [Title](https://yoursite.com/path.md): one-sentence description. Use the .md version of each URL when available.
The ## Optional section at the end holds links that are useful but not essential. LLMs with a small context budget can skip these safely.
For every URL listed in llms.txt, publish a clean Markdown copy at the same path with .md appended. Strip navigation and ads. Keep front-matter minimal.
Deploy to /llms.txt with Content-Type: text/markdown; charset=utf-8 and a 200 status. No auth, no redirects, no client-side rendering.
Fetch the file with curl to confirm it renders as plain text. Add it to your monitoring so a broken deploy does not silently 404 it.
One platform. Five fewer subscriptions.
Join 1,200+ agencies and in-house teams using SEMOptimiser to replace Semrush, Ahrefs, GA4 add-ons and rank trackers – with one workflow that actually ships fixes.