llms.txt examples: 10 verified files and what makes them work

Want to see what a good file looks like? Below are 10 llms.txt examples that were live and verified on 22 August 2026 — Vercel, Stripe, Cloudflare, Anthropic, Perplexity, Next.js and more. Every URL was opened and checked, not copied from another blog post.

The short version of the format: one H1, a blockquote summary, H2 sections, and bullet lists of links with short notes. That’s the whole llms.txt standard. It fits on a napkin.

The longer version is messier. Most published files are never requested by anything, and Google has said publicly that it isn’t using them. You’ll get both halves here: what good looks like, and whether it’s worth your afternoon.

What the llms.txt standard actually is

llms.txt is a proposal from Jeremy Howard, co-founder of Answer.AI and fast.ai. He published it in September 2024 at llmstxt.org.

The idea is narrow. A language model that lands on your site has to parse navigation, cookie banners, scripts and ads to find the two paragraphs it needs. Context windows are finite. So you publish one Markdown file at /llms.txt that says what the site is and where the good pages live.

The spec is explicit about how this differs from files you already have:

“robots.txt lets automated tools know what access to a site is considered acceptable, such as for search indexing bots. llms.txt information is instead used on demand, when an agent needs information.”

On sitemaps, the spec notes that sitemap.xml “won’t have the LLM-readable versions of pages listed” and covers documents that “in aggregate will be too large to fit in an LLM context window.” So it isn’t a sitemap replacement. It’s a curated front door.

Version 2 landed in August 2026

This is the part most guides haven’t caught up with. The spec was revised to v2 in August 2026, and four things changed:

  • Link relations for discovery. Agents can now find files without guessing: rel='alternate' type='text/markdown' points to a page’s Markdown version, and rel='describedby' points to the relevant llms.txt.
  • Flexible Markdown URLs. v1 wanted page.html.md. v2 accepts either page.html.md or page.md.
  • Subpath rules. A file covers the pages under its path, and the most specific file wins. That lets a project on a shared host publish at /docs/llms.txt and have it mean something.
  • The Optional section lost its machinery. The old llms_txt2ctx tool is gone. You can still use an Optional heading, but it no longer triggers any defined behaviour.

Keep those four changes in mind while you read the llms.txt examples below. Several of the biggest files still follow v1 conventions.

If you’re starting from scratch, our full guide to the llms.txt standard walks the spec end to end.

The exact llms.txt format, part by part

The spec lists five elements, in this order. Only one is required.

ElementMarkdownRequired?What it’s for
Title# Your SiteYes — the only required partNames the project or site
Summary> One-line descriptionNo, but do itA blockquote with the key context an agent needs first
Free textParagraphs, listsNoAny detail, so long as it contains no headings
File lists## Section then - [Name](url): noteNoGrouped links, each with an optional note after a colon
Optional## OptionalNoBy convention, links an agent can skip when context is tight

The skeleton from the spec itself reads like this, in order: # Title, then > Optional description goes here, then optional details, then ## Section name with list items shaped - [Link title](https://link_url): Optional link details, and finally ## Optional.

That skeleton is all the llms.txt format is. Everything else in the real llms.txt examples below is a judgement call about what to include.

Two rules people break constantly. First, no H3s or deeper — the spec says sections are “delimited by H2 headers” and the free-text block must contain no headings at all. Second, the note after the colon is not decoration. It’s the only signal that tells a model which of your 400 links answers the question in front of it.

10 real llms.txt examples, all verified live

These llms.txt examples were chosen because they’re live, well known, and structurally different from each other. Every file in this table was fetched and read on 22 August 2026. Structure notes describe what’s actually in the file, not what the company claims.

SiteFileShapeWhat it does well
Vercelvercel.com/llms.txt~12 links, 5 sectionsTextbook spec compliance. H1, blockquote, a note on every single link, and a real Optional section. Short enough to read in full.
Anthropicplatform.claude.com/llms.txt600+ linksTotal coverage. Every link ends in .md. Sections split docs from the API reference. The old docs.anthropic.com/llms.txt 302-redirects here.
Stripedocs.stripe.com/llms.txt702 lines, 442 links, 26 sectionsProduct-by-product sections (Billing, Connect, Radar, Terminal). Includes a section literally titled “Instructions for Large Language Model Agents”.
Cloudflaredevelopers.cloudflare.com/llms.txt~120 links, 9 sectionsIndex of indexes. Each product links to its own llms.txt instead of dumping every page into one file.
Perplexitydocs.perplexity.ai/llms.txt180+ links, 3 sectionsClean three-part shape: Docs, OpenAPI Specs, Optional. Tight blockquote. All links point at .md.
Next.jsnextjs.org/llms.txt~40 links, 9 sectionsWrites to the model directly. Sections called “When to use nextjs.org” and “How to read it efficiently” warn that recalled answers about the framework are often stale.
Sveltesvelte.dev/llms.txt7 linksOffers three sizes — llms-full.txt, llms-medium.txt and llms-small.txt — and explains what was stripped from each.
Supabasesupabase.com/llms.txt~29 links, 2 sectionsPoints to the llms-full.txt in line 3, before anything else. An agent that wants everything doesn’t have to hunt.
Mintlifymintlify.com/docs/llms.txt~230 links, 4 sectionsSeparates prose docs from OpenAPI and AsyncAPI specs, so a model looking for schemas skips the guides.
Zapierzapier.com/llms.txt65+ links, 8 sectionsThe rare non-docs example. Stable deep-link anchors, a “Topics” cross-reference layer, and a “Notes for automated fetchers” section.

Read across the llms.txt examples in that table and a pattern jumps out: the good ones are written for a reader. Stripe and Next.js both put plain instructions in the file. Cloudflare refuses to inline 120 products. Nobody serious is auto-dumping a sitemap.

What the big files get wrong

Even these llms.txt examples aren’t clean. Anthropic’s file has no blockquote summary at all, which is the second element in the spec. Stripe’s has no blockquote either, and at 702 lines it’s less a menu than a phone book. Both are useful; neither is a template.

Good and bad llms.txt examples, annotated

The good one: Vercel, line by line

Vercel’s file is the best short example on the public web right now. Here’s what each part is doing.

What’s in the fileWhy it works
# VercelH1 with the site name. The only required element, and it’s first.
> Vercel is a cloud platform for building, deploying, and scaling web applications and AI workloads.One sentence. No adjectives, no positioning. A model reading only this line knows what the site is.
“Use this index to find machine-readable documentation and platform resources.”Free-text guidance with no heading in it, exactly as the spec allows.
## Documentation, ## REST API, ## Knowledge Base, ## Learning and updatesFour H2 buckets that map to how someone actually asks questions.
- [Documentation sitemap](https://vercel.com/docs/sitemap.md): Documentation pages with summaries and prerequisites.Link plus colon plus note. The note earns the click.
## Optional with an agent catalog, taxonomy and doc graphGenuinely secondary machine files, parked where they can be skipped.

The bad one: the auto-generated dump

You won’t find this shape in curated llms.txt examples, because nobody links to it on purpose.

This shape shows up on thousands of sites, usually from a plugin left on defaults. Nothing here is invented — it’s the failure pattern behind most broken files.

  • No H1. The file opens with ## Pages. The one required element is missing, so strict parsers bail immediately.
  • A marketing blockquote. “We are the leading provider of innovative solutions” tells a model nothing it can use to route a query.
  • Every URL on the site. Tag archives, paginated category pages, author pages, the privacy policy. A 3MB file is not a summary.
  • No notes after the links. Bare - https://site.com/p/1123 lines. The model has to fetch each one to learn anything.
  • Links to HTML, not Markdown. Legal under the spec, but you’ve skipped the actual benefit — clean text the model doesn’t have to strip.
  • Stale entries. Generated once in 2025, never rebuilt, now pointing at 404s. That’s worse than no file: you’ve handed an agent a map of dead ends.

Run a GEO audit if you want the dead links and missing summaries flagged for you rather than found by hand.

llms.txt vs llms-full.txt

Two different jobs. Confusing them is the most common mistake in the whole exercise.

llms.txtllms-full.txt
What it isAn index of links with notesYour entire documentation concatenated into one Markdown file
Typical size2KB to 50KB500KB to many MB
In the spec?YesNo — it’s a community convention
Who reads itAn agent deciding where to go nextA developer or tool pasting a whole corpus into a context window
Update costCheap, hand-editableNeeds a build step or it rots

Note the middle row. llms-full.txt appears nowhere in the llms.txt spec. It grew out of practice, then platforms shipped it. Vercel, Supabase and Svelte all publish both, and Svelte goes further with medium and small variants for people whose context window can’t take the full file.

Half the llms.txt examples in the table above ship both files, which is why people assume llms-full.txt is part of the standard. It isn’t.

Practical rule: ship llms.txt first. Add llms-full.txt only if you can generate it automatically. A hand-maintained one will be wrong within a month.

Best practices drawn from the llms.txt examples above

  1. Keep it under 50KB. The point is fitting into a context window. Cloudflare’s index-of-indexes pattern is the answer at scale — link to per-section files instead of inlining everything.
  2. Write the blockquote for a stranger. One sentence, concrete nouns, no positioning language. Vercel’s is 16 words and tells you exactly what the company sells.
  3. Put a note after every link. The colon-and-description pattern is the highest-value part of the format and the part most often skipped.
  4. Link to Markdown where you have it. Anthropic, Stripe, Perplexity and Mintlify all point at .md URLs. Under v2 either page.md or page.html.md is fine.
  5. Add the v2 link relations. A rel='describedby' link in your head section tells an agent your file exists without it guessing at the path.
  6. Steal the shape, not the content. The llms.txt examples above are worth copying structurally; their link lists are useless to you.
  7. Curate ruthlessly. 20 well-chosen pages beat 2,000. If a page wouldn’t answer a customer question, leave it out.
  8. Serve it as text/plain or text/markdown, HTTP 200, no redirect chain. Half the broken files in the wild are broken at this layer.
  9. Rebuild it on deploy. Stale links are the single most damaging failure mode.
  10. Don’t block AI crawlers in robots.txt and then publish an llms.txt. That contradiction is more common than you’d think, and robots.txt wins.
  11. Skip the keyword stuffing. Nothing ranks this file. Writing it like a meta description just makes it less useful to the one audience that might read it.

You can generate a first draft with our free llms.txt generator, then edit the notes by hand. The generator gets structure right; only you know which pages matter.

Does anything actually read it? The honest answer

Mostly no. Here’s the evidence, with dates.

The data

Ahrefs studied 137,210 domains and published the results on 15 June 2026. Of those domains, 28% publish an llms.txt file. Then the hard number: 97% of those files received zero requests during May 2026. Of the requests that did arrive, 96% came from bots — and SEO audit tools were the single largest category at 21.7%. AI retrieval bots accounted for 1.1%. No AI bot was observed requesting an llms.txt that didn’t exist, which means nothing is out there hunting for the file.

Semrush ran a narrower test on Search Engine Land. The file went up in March 2025. Between mid-August and late October 2025 it logged zero visits from Google-Extended, GPTBot, PerplexityBot or ClaudeBot.

What the AI companies say

  • Google: John Mueller’s position, reported in June 2026, is blunt. “I don’t think anyone knows – it’s purely speculative for now (the file has existed for years, yet none of the AI systems use it — what does it mean?).” His advice was to build one when a platform that actually sends you customers asks for it. Google Search Central’s guidance is that publishers need no special AI files to appear in AI search.
  • OpenAI: GPTBot honours robots.txt. OpenAI has never stated that it uses llms.txt.
  • Anthropic: publishes one of the largest llms.txt files on the web, and has not said that its crawlers read the standard.

So the standard’s own most visible adopters are not confirmed consumers of it. The companies behind the best llms.txt examples publish the file without claiming to read anyone else’s.

The contradiction worth knowing about

Google Search dismisses the file. Google Chrome audits it. Lighthouse now ships an llms.txt check under agentic browsing, telling developers to “create an llms.txt file and place it in the root directory of your website” and warning that without one, “agents may spend more time crawling the site to understand its high-level structure and primary content.” The audit returns Not Applicable on a 404, “as providing the file is optional at the moment.”

Two Google teams, two positions. That gap is the honest state of play in August 2026.

Where the file does get used today is narrower than the marketing suggests: coding agents and IDE assistants that are pointed at a docs URL, developers pasting the path into a chat, and internal tooling. The directory at directory.llmstxt.cloud lists 3,938 sites — real adoption, mostly among developer tools.

How to ship one this afternoon

  1. Copy the structure from two or three of the llms.txt examples above that match your site type — docs, product, or marketing.
  2. List 15 to 40 pages that answer real questions. Docs, pricing, integrations, key guides. Not tag archives.
  3. Group them under 3 to 6 H2 headings that match how people ask, not how your CMS is organised.
  4. Write one note per link. Under 20 words. Say what the page answers.
  5. Write the H1 and the blockquote last, once you can see what the file covers.
  6. Move anything secondary under ## Optional.
  7. Publish at /llms.txt and confirm it returns 200 as plain text, with no redirect.
  8. Add the rel='describedby' link relation to your templates.
  9. Wire it into your build so it regenerates when pages change.

On WordPress the plumbing is the annoying part, since the platform will happily 404 a root file. We covered that separately in how to add llms.txt to WordPress, including the plugin and the functions.php route.

One last piece of judgement. Copying the best llms.txt examples costs you an hour and gives you a file that’s genuinely useful to any developer or agent pointed at your docs. It will probably not move your AI citations this quarter. Treat it as cheap insurance, finish it, and spend the rest of the week on the things that demonstrably do move citations.

Frequently asked questions

Does ChatGPT read llms.txt?

There’s no evidence it does. OpenAI has never said GPTBot or the ChatGPT browsing tools fetch llms.txt, and server-log studies through 2026 show almost no requests from AI retrieval bots. GPTBot does honour robots.txt, which is the file that actually controls its access.

Where should the llms.txt file go?

At the root: https://yoursite.com/llms.txt. Version 2 of the spec also allows subpath files like /docs/llms.txt, and the rule is that a file covers pages under its own path with the most specific file winning. Serve it as plain text with a 200 status and no redirect.

What’s the difference between llms.txt and llms-full.txt?

llms.txt is a short index of curated links with notes. llms-full.txt is your whole documentation concatenated into one Markdown file. Only llms.txt is in the spec; llms-full.txt is a community convention. Ship the index first and only add the full file if you can generate it automatically.

Is llms.txt the same as robots.txt?

No, and they solve opposite problems. robots.txt sets access permissions and is checked before crawling. llms.txt is content the spec says is “used on demand, when an agent needs information.” One is a gate, the other is a menu. You need robots.txt; llms.txt is optional.

Does llms.txt improve AI search rankings?

No study has shown that it does. Ahrefs found 97% of published files got zero requests in May 2026, and Semrush’s own test on Search Engine Land logged zero AI-crawler visits over ten weeks. If your goal is citations, content quality and third-party mentions matter far more.

How big should an llms.txt file be?

Small enough to fit comfortably in a context window — under 50KB is a sane ceiling, and many good files are under 5KB. If your site is too big for that, follow Cloudflare’s pattern: make the root file an index that links to per-product llms.txt files.

Do I still need a sitemap if I have llms.txt?

Yes. Search engines use sitemap.xml and nothing has replaced it. The spec itself notes that sitemaps don’t list LLM-readable versions of pages and are usually too large for a context window. They’re complements, not alternatives.

What changed in llms.txt v2?

Version 2 arrived in August 2026. It added HTML link relations for discovery, allowed both page.md and page.html.md for Markdown versions, defined how subpath files scope their coverage, and removed the llms_txt2ctx tool along with the mechanical meaning of the Optional section.

Can I just auto-generate llms.txt from my sitemap?

You can, and it’s the most common way to end up with a useless file. A sitemap dump has no curation and no per-link notes, which are the two things that make the format worth anything. Generate the structure, then edit the list and write the notes yourself.

Which companies actually have an llms.txt file?

Verified live in August 2026: Vercel, Stripe, Cloudflare, Anthropic, Perplexity, Next.js, Svelte, Supabase, Mintlify and Zapier. Those are the ten llms.txt examples in the table above. The directory at directory.llmstxt.cloud lists 3,938 sites, heavily weighted toward developer tools and documentation platforms.

Should the links in my llms.txt point to .md files?

Where you have Markdown versions, yes. Most of the strongest llms.txt examples do exactly that, including Anthropic, Stripe and Perplexity. It saves the model from stripping HTML. If you don’t publish .md versions, plain page URLs are still valid under the spec.

Is llms.txt dead?

It isn’t dead, but it isn’t working as advertised either. Adoption keeps climbing while measured usage by AI systems stays near zero. The reasonable read in August 2026 is that it’s cheap optionality: an hour of work that helps developers and agents today and may matter more later.

zulqarnain, founder of LLM Optimization

Written by

zulqarnain

Writes about how AI search engines such as ChatGPT, Google AI Overviews, Perplexity, Gemini and Claude choose the sources they cite.

Scroll to Top