Back to Blog
Technical AI SEO · Tactical

llms.txt for SEO — what it is, how to ship it

The emerging convention every AI crawler is starting to read. What it is, why it matters, exactly what to put in it, and the copy-paste template we ship on every WebFlur B2B site.

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.

What llms.txt is NOT

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).

  1. 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.
  2. Add the What You Do and Who You Serve sections. ## What we do and ## Who we serve. 2–4 sentences each. Named vendor / category / market where possible.
  3. List your canonical pages. ## Pages section 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.
  4. List your flagship articles. ## Articles section listing your top-priority content pieces (pillars first, spokes second) with the same [name](url): description format. This is what AI crawlers use to decide what to cite.
  5. Deploy at /llms.txt at your site root. Upload the file so it resolves at https://your-domain.com/llms.txt. Serve with Content-Type: text/plain; charset=utf-8. Do not gzip aggressively — some crawlers still trip on it.
  6. Verify + set update cadence. curl https://your-domain.com/llms.txt to 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 ## A2A section 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 ## Locations section 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.

Sources & further reading

Want us to author + deploy the llms.txt (and the whole 6-layer stack) for your site?

Talk to WebFlur →
Pankaj Raghav, Founder of WebFlur
Written by
Pankaj Raghav
Founder, WebFlur — AI SEO & Agentic Presence Engineer

Pankaj has spent a decade building SEO infrastructure for B2B companies. He co-founded WebFlur to focus exclusively on the shift from Google-first to AI-first discovery — engineering GEO, AEO, LLM SEO, and Agent2Agent (A2A) endpoints that put B2B brands inside AI assistant answers. Runs every WebFlur audit himself; ships the endpoints; writes the machine-readable content. Verifiable identity on LinkedIn.

Frequently asked questions

llms.txt is a plain-text machine-readable site brief served at a domain's root (/llms.txt) that describes what the site is, who it serves, and which URLs are canonical. It sits alongside robots.txt and sitemap.xml as a third machine-readable metadata file — where robots controls access and sitemap lists URLs, llms.txt tells AI systems what the site actually is.
Claude and Perplexity read it consistently. ChatGPT fetches inconsistently. Google (AIO, AI Mode, Gemini) has not confirmed adoption. CCBot fetches as any file, so Common-Crawl-trained LLMs get it indirectly. Ship it today — zero downside, high upside for engines that read it.
robots.txt controls access (which crawlers can fetch which URLs). llms.txt describes content (what the site is, who it serves, which URLs are canonical). Completely different functions; both belong at the site root; llms.txt does not replace robots.txt.
H1 site name, blockquote one-sentence description, ## What we do, ## Who we serve, ## Founders, ## Pages, ## Articles, ## Feeds. Optionally ## Citation guidance. Keep under 5,000 words.
Whenever entity content changes — new pillar, new founder, new market, new flagship case. Do not update for routine content additions. Back up the previous version as llms.txt.backup_YYYY-MM-DD before each edit for easy rollback.
Yes — add <link rel="llms.txt" href="/llms.txt"> to every page's <head>. Some crawlers only discover the file if declared in the head, similar to RSS feed declarations. Ship once in the base template.
Yes — WebFlur ships two production examples: webflur.com/llms.txt (B2B, with an ## A2A section) and lastridefuneral.in/llms.txt (YMYL local services, with a ## Locations section). Diff either against the template above.