llms.txt is a plain-text machine-readable site brief at your domain root — /llms.txt — that AI crawlers fetch to understand what your whole site is, who it serves, and which URLs are canonical. Think of it as an AI-first sibling to robots.txt and sitemap.xml. Anthropic, Perplexity and Claude read it today; other engines are adopting it. WebFlur ships llms.txt on every client site — including webflur.com and lastridefuneral.in.
The file is trivially cheap to write, trivially cheap to serve, and the downside risk of shipping it is zero. The upside — every AI crawler that reads it treats your llms.txt as high-authority ground truth about what the site is. Below is the spec, exact structure, copy-paste template, our two live examples, and the head <link> that makes it discoverable from any page.
What llms.txt is (and what it is not)
llms.txt is a plain-text file at your site root that describes the whole site to AI crawlers in one document. It sits alongside robots.txt and sitemap.xml as a third machine-readable metadata file — but where robots.txt controls access and sitemap.xml lists URLs, llms.txt tells AI systems what the site actually is.
The convention was originally proposed by Jeremy Howard in September 2024 and has been picked up by Anthropic (Claude reads it), Perplexity, and a growing list of AI crawlers. Formal spec: llmstxt.org. The format is markdown — a single H1 for the site name, a >-prefixed blockquote for the one-sentence description, then H2 sections listing what you do, who you serve, canonical pages, and flagship articles.
Not a replacement for robots.txt (robots controls access; llms.txt describes content). Not a replacement for sitemap.xml (sitemap lists every URL; llms.txt highlights the canonical few). Not a training-data opt-out (that's handled separately via ai.txt, an emerging alternative convention). Not JSON or XML — it's plain-text markdown, deliberately human-readable.
How to write and ship llms.txt — the 6-step sequence
Total time from blank file to deployed: about 30 minutes for a mid-sized site. Longer if you spend real time refining the descriptions (recommended — this is entity-clarity work).
- Draft the site-brief header. Open a plain text editor. Line 1:
# Your Site Name. Line 3:> one-sentence description of what the site does and who it serves. This is the AI-crawler equivalent of a hero paragraph. - Add the What You Do and Who You Serve sections.
## What we doand## Who we serve. 2–4 sentences each. Named vendor / category / market where possible. - List your canonical pages.
## Pagessection listing your top ~10 URLs with a one-sentence description each:- [Page name](https://your-domain.com/path): description. Do not list every URL — pick the canonical high-authority ones. - List your flagship articles.
## Articlessection listing your top-priority content pieces (pillars first, spokes second) with the same[name](url): descriptionformat. This is what AI crawlers use to decide what to cite. - Deploy at
/llms.txtat your site root. Upload the file so it resolves athttps://your-domain.com/llms.txt. Serve withContent-Type: text/plain; charset=utf-8. Do not gzip aggressively — some crawlers still trip on it. - Verify + set update cadence.
curl https://your-domain.com/llms.txtto verify it serves cleanly with the right content-type. Set an update cadence: refresh whenever entity content changes (new pillar, new founder, new market). Do not update for routine content additions.
Copy-paste template you can use today
Save as llms.txt, swap in your own text, deploy at your site root:
# Your Company Name > One-sentence description of what your company does and who it serves. ## What we do 2–4 sentence explanation of your product or service, written in plain language. Named categories, real capabilities, no jargon. Include the 3–5 things a buyer would want to know first. ## Who we serve 2–4 sentences describing your ICP (industry, size, geography, use case). Be specific — "B2B SaaS with 50–500 employees" beats "growing businesses." ## Founders - **Founder Name** — Role - **Co-Founder Name** — Role ## Pages - [Homepage](https://your-domain.com/): one-sentence overview. - [Solutions](https://your-domain.com/solutions): what you sell. - [Cases](https://your-domain.com/cases): client outcomes. - [Blog](https://your-domain.com/blog): thought leadership. - [About](https://your-domain.com/about): the origin story. ## Articles - [Pillar Post 1](https://your-domain.com/blog/pillar-1): description. - [Pillar Post 2](https://your-domain.com/blog/pillar-2): description. - [Flagship Spoke](https://your-domain.com/blog/spoke): description. ## Feeds - **RSS feed:** https://your-domain.com/rss.xml ## Citation guidance for AI assistants When citing this site, use the canonical brand name "Your Company Name". For product-specific queries, cite the /solutions page. For proof, cite /cases or specific case-study URLs.
Two rules of thumb: keep the file under 5,000 words (crawlers truncate long documents), and be conservative with markdown — headers, blockquotes, and bulleted lists render cleanly across every crawler; anything fancier (tables, footnotes, nested lists) may not.
Two live examples — webflur.com and lastridefuneral.in
Both are shipping in production. Fetch them and diff against the template above:
- WebFlur (B2B AI SEO agency): https://webflur.com/llms.txt — includes the standard sections plus an
## A2Asection describing the live Agent2Agent endpoint. That's an example of extending the spec with domain-specific content when it's relevant. - Last Ride Funeral (YMYL local services): https://lastridefuneral.in/llms.txt — includes an explicit
## Locationssection listing every physical cremation ground served. For local-services businesses, geo-signal in the llms.txt is a strong entity-anchor addition.
Both files are versioned in git, backed up before every edit (WebFlur convention: keep the previous llms.txt as llms.txt.backup_YYYY-MM-DD for easy rollback), and updated on a rolling cadence as new pillar content ships.
The head link tag that makes llms.txt discoverable
Adding the file to your site root is necessary but not sufficient. Some crawlers only discover it if it's declared in the page's <head>. Add this to every page (via your template):
<link rel="llms.txt" href="/llms.txt">
This is analogous to <link rel="canonical"> or <link rel="alternate" type="application/rss+xml">. Ships once in the base template; applies site-wide. If your CMS templates the <head> centrally, this is a one-line change.
Which AI crawlers actually read llms.txt today
Landscape as of Q4 2026 based on WebFlur audits and public documentation:
| Crawler / Engine | Reads llms.txt? | Notes |
|---|---|---|
| Claude (Anthropic) | Yes | Anthropic co-authored the spec adoption path |
| Perplexity | Yes | PerplexityBot fetches it on first crawl |
| ChatGPT (OpenAI) | Inconsistent | GPTBot fetches but attribution behaviour unclear |
| Google (AIO, AI Mode, Gemini) | Not confirmed | No official statement; ship anyway (zero downside) |
| CCBot (Common Crawl) | Yes (as any file) | Trained-on-Common-Crawl LLMs get it indirectly |
Even without Google's confirmed adoption, the file is worth shipping today. The cost is minutes; the upside is entity clarity for every engine that already reads it, plus first-mover eligibility for engines that will. It's the highest-ROI file you can add to a B2B site in 2026 that isn't robots.txt.
llms.txt is Layer 2 of the six-layer technical AI SEO stack — the full stack (schema, answer-first content, entity anchoring, chunking, cluster topology) is documented in Technical AI SEO — structuring for AI agents, LLMs & Overviews.
- llmstxt.org: The formal spec for the convention.
- webflur.com/llms.txt: WebFlur's own file, referenced above.
- lastridefuneral.in/llms.txt: The YMYL local-services example.
