/llms.txt is a curated, machine-readable map of your best content — designed to point AI systems to the pages, concepts, and sources that represent your canonical knowledge. It is an emerging convention, not a requirement.
By Christopher Foster-McBride, Founder, AI Knowledge Signal · Reviewed 2026-10-13
Why it matters
A sitemap lists every URL; llms.txt does the opposite — it is a deliberately curated shortlist of the pages that actually carry your knowledge, written for an AI reader. Placed at /llms.txt, it is meant to let a crawler skip the navigation, marketing, and boilerplate and go straight to the concepts, methods, proof, and tools you most want cited. Be clear-eyed, though: it is an open proposal, and no major AI provider has confirmed it reads the file — Google explicitly lists AI-specific text files like llms.txt as not required.
So why do it? Two reasons that don't depend on any crawler consuming the file. First, writing a good llms.txt forces you to identify and articulate your canonical pages — the same curation discipline that sharpens everything else in the framework. Second, if the convention is picked up by emerging AI tools, a substantive file is ready to help them where a near-empty stub would not. Set expectations honestly with clients: it is cheap insurance and a useful exercise, not a confirmed source of AI visibility — the fundamentals in Phases 2–6 are what actually earn citations.
What good looks like
A strong llms.txt reads like a well-organised table of contents for a machine — Markdown, grouped by content type, every link annotated:
Lives at the domain root: https://yourdomain.com/llms.txt, served as text/plain or Markdown, returning 200.
Opens with an # H1 (your organisation/site) and a one-sentence description of what you publish.
Groups links under typed ## headings — we use Concepts, Methods, Proof, Tools (our convention; the proposal only requires ## sections of links, plus an optional ## Optional section for secondary pages).
Each link has a short annotation saying what the page is and why it matters.
Covers your canonical pages — as a rule of thumb, 20 or more on a content site — and stays consistent with your sitemap (Phase 5.5).
Step by step
Create the file at the domain root
Save a plain-text/Markdown file as llms.txt and serve it from the root so it resolves at https://yourdomain.com/llms.txt. Like robots.txt, it must be at the root — not in a subfolder.
Open with an H1 and a one-line summary
Start with # Your Organisation and a single sentence describing what you publish and who it's for. This is the orientation line an AI reads first — make it a direct, complete statement (the Phase 2.1 direct-answer habit).
Group links by content type
Use ## headings to sort entries into Concepts (definitions, frameworks), Methods (how-to, process), Proof (research, case studies, data), and Tools (calculators, templates, products). Typed grouping tells the AI what role each page plays.
Annotate each link
Write each entry as a Markdown link followed by a short description: - [Page title](https://…): one line on what it is and why it's canonical. The annotation is what lifts a link from a URL to a usable signal.
Cross-reference the sitemap and keep it current
The high-signal pages in llms.txt should match the priorities in your sitemap.xml — if they diverge, the AI gets a partial map of your authority (Phase 5.5). Revisit the file whenever you publish or retire a canonical page.
Worked examples
1 A comprehensive, typed llms.txt
The target shape: an H1, a one-line summary, and links grouped by content type with annotations. Trimmed here for length — a real file would list every canonical page.
# AI Knowledge Signal
> The AI Knowledge Signal Publication Framework: a 6-phase method for structuring content so AI systems can find, trust, and cite it.
## Methods
- [Configure robots.txt for AI crawlers](https://aiknowledgesignal.io/framework-guides/phase1-crawlability/robots-txt.html): separate training, search and user-fetch agents; declare the sitemap.
- [Implement JSON-LD schema](https://aiknowledgesignal.io/framework-guides/phase5-ai-usability/json-ld.html): mark up entities so AI can disambiguate them.
## Concepts
- [Framework How-To Guides](https://aiknowledgesignal.io/framework-guides/): all 30 subdomains across the six phases.
## Tools
- [Free AI visibility audit](https://aiknowledgesignal.io/): score any URL across five dimensions.
## Optional
- [Newsletter](https://aiknowledgesignal.io/newsletter): monthly GEO and AI-search research digest.
2 Before / after: stub vs. comprehensive
Same site, two versions. The "before" technically has a file; the "after" is the one that actually moves the signal.
Before
A stub: # Acme and two bare links with no descriptions and no grouping. The file exists, but there's no substance to it — it conveys almost nothing a crawler couldn't already infer, and isn't worth publishing as-is.
After
Every canonical page, annotated, under typed sections, matching the sitemap's priority pages. If any AI tool does read the file, it gets a typed, curated map of what to cite and why — and either way you've done the curation work that pays off across the framework.
Common mistakes
Mistake
Fix
Publishing a near-empty stub
Add real substance — your canonical pages, grouped and annotated; presence alone adds little.
One flat, undifferentiated link list
Group by content type (Concepts, Methods, Proof, Tools) so the AI knows each page's role.
Bare URLs with no annotations
Add a one-line description to each link saying what it is and why it's canonical.
Dumping every URL (a second sitemap)
Curate — llms.txt is your best pages, not all of them.
llms.txt and sitemap disagree
Keep the high-signal pages consistent across both (Phase 5.5) or the AI gets a partial map.
Letting it go stale
Update when canonical pages are published or retired; recency is a maintenance signal (Phase 6).
Limits of this advice
No major AI provider has confirmed it reads llms.txt; Google Search ignores it. The value today is the curation exercise.
The Concepts / Methods / Proof / Tools grouping and the 20-page rule of thumb are our conventions, not part of the proposal.
Checklist
File served at https://yourdomain.com/llms.txt, returns 200
Opens with an H1 and a one-sentence summary of what you publish