All posts
AI search

llms.txt Example: How to Write One (Honest Take)

A copyable llms txt example, what the spec requires, and whether the file does anything yet. An honest assessment for bootstrapped SaaS founders.

By

TL;DR — llms.txt is a Markdown file at your site root that tells LLMs what your site is about. The spec is simple and takes fifteen minutes to ship. But Google has explicitly said it ignores llms.txt, and Ahrefs found that 97 percent of these files get zero AI requests. Ship one if you have documentation or a knowledge base. Do not expect ranking impact from it.

Last month I added an llms.txt file to Boomranq's site. Took about twelve minutes. Then I checked server logs for three weeks. Total requests from AI bots: four. Three were from audit tools scanning whether the file existed. One was from a bot I could not identify. None were from ChatGPT, Perplexity, or Google.

That matches the data. It also does not mean the file is useless. It means the hype has outrun the evidence, and the honest answer to "should I ship an llms.txt file" is more nuanced than the SEO Twitter discourse suggests.

This post covers what llms.txt is, the llms.txt format spec, a copyable llms.txt example you can adapt, whether generators and checkers are worth your time, and what the actual evidence says about impact. No hype. No dismissal. Just the state of play as of mid-2026.

A practical llms.txt example (and what the format requires)

The llms.txt spec was proposed in September 2024 by Jeremy Howard, co-founder of Answer.AI. The format lives at llmstxt.org and is intentionally lean. It is Markdown, not XML, because LLMs parse Markdown natively.

Here is an llms.txt example for a hypothetical SaaS product:

# Acme Analytics

> Real-time product analytics for B2B SaaS teams. Track feature adoption,
> retention cohorts, and revenue attribution without a data warehouse.

Acme Analytics serves product-led growth teams at B2B SaaS companies with
$1M-$50M ARR. The platform integrates with Stripe, Segment, and HubSpot.

## Docs

- [Getting Started](https://acme.dev/docs/getting-started.md): Install the
  SDK and send your first event in under five minutes.
- [API Reference](https://acme.dev/docs/api.md): REST API endpoints for
  events, users, cohorts, and revenue data.
- [SDKs](https://acme.dev/docs/sdks.md): Client libraries for JavaScript,
  Python, Ruby, and Go.

## Guides

- [Retention Cohort Analysis](https://acme.dev/guides/retention.md): How to
  set up and interpret weekly retention cohorts.
- [Revenue Attribution](https://acme.dev/guides/revenue.md): Connecting
  Stripe events to feature usage for attribution modeling.

## Optional

- [Changelog](https://acme.dev/changelog.md): Recent releases and feature
  updates.
- [Pricing](https://acme.dev/pricing.md): Plan comparison and usage limits.

That is the complete llms.txt format. The structural rules are few:

ElementRequiredPurpose
H1 headingYesYour product or brand name. One per file.
BlockquoteRecommendedOne to three sentence summary. The most important text in the file.
Body paragraphsOptionalAdditional context -- no headings, just prose.
H2 sectionsOptionalCategories of links (Docs, Guides, API, etc.).
Link listsOptionalLinks formatted as - [Title](URL): Description.
"Optional" H2OptionalLower-priority links an LLM can skip under context constraints.

The file lives at yourdomain.com/llms.txt. Serve it as text/plain or text/markdown, status 200, no auth wall.

Two things to note about the llms.txt example above. First, the links point to .md versions of pages, not .html. The spec recommends this because Markdown is cleaner for LLM consumption -- no navigation chrome, no JavaScript, no ads. If you do not have Markdown versions of your pages, linking to HTML is fine. Second, the "Optional" section is a spec-defined convention. Any content under an H2 titled "Optional" signals to an LLM that it can skip those links if context window space is tight.

What is llms.txt, really? And what is llms-full.txt?

If you are asking "what is llms.txt," the short answer is: a curated directory of your site, written in Markdown, designed for LLMs to read at inference time. Think of it as a table of contents optimized for machines that read Markdown better than HTML.

It solves a specific problem. LLM context windows are smaller than most websites, and HTML pages are full of navigation, ads, cookie banners, and JavaScript that an LLM cannot meaningfully parse. An llms.txt file strips all of that away and says: here is who we are, here is what matters, here is where to find it.

The companion file is llms-full.txt. Where llms.txt is the index, llms-full.txt is the entire library -- a single Markdown document containing the full content of every page you linked in your llms.txt. It is designed for AI agents that want to ingest your full documentation in one request rather than following links individually.

Mintlify reported in May 2026 that AI agents fetch llms-full.txt at roughly twice the rate they fetch llms.txt. That makes sense: if an agent has the context budget, it prefers one large file over multiple round trips. If your site is primarily documentation -- API docs, product guides, knowledge base articles -- shipping llms-full.txt alongside your llms.txt file is worth the effort.

If your site is primarily marketing pages, llms.txt alone is enough. An llms-full.txt stuffed with landing page copy is not useful to anyone.

llms.txt best practices (and common mistakes)

The spec is simple enough that you can get it right in fifteen minutes. Most mistakes come from overcomplicating it.

Keep the blockquote tight. The blockquote after your H1 is the single most important element. This is what an LLM reads when it needs a one-sentence understanding of your site. Write it like you are explaining your product to a developer in an elevator. Specific. Concrete. No marketing fluff.

Link to your highest-signal pages. Do not dump your entire sitemap into the file. The point is curation. Link to the ten to twenty pages that best represent what your product does, how to use it, and what it solves. If an LLM reads these pages, it should understand your product well enough to answer questions about it accurately.

Use descriptive link text. Each link should include a colon-separated description: [Page Title](URL): What this page covers. The description helps the LLM decide whether to follow the link without consuming a context-window slot on the full page.

Do not stuff keywords into it. I have seen llms.txt files that read like an SEO keyword list. The file is not for Google. It is for LLMs. Write it in clear, natural prose.

Ship Markdown page versions if you can. The spec recommends linking to .md files, not HTML. If your site runs on a framework that supports this (Next.js, Astro, Eleventy), generating Markdown endpoints is a minor build step. If not, linking to HTML is fine -- it is better than linking to nothing.

Do llms.txt generators and checkers matter?

A cottage industry of llms.txt generator tools has appeared. Most accept a sitemap URL, crawl your pages, and output a formatted llms.txt file. Some CMS platforms -- Mintlify, Yoast, Rank Math, AIOSEO -- now auto-generate the file.

Are these useful? For documentation-heavy sites on platforms that support auto-generation, yes. If your docs live on Mintlify or GitBook, the file is generated for you with zero effort. Use what your platform gives you.

For everyone else, I would argue that an llms.txt generator is solving a problem that does not need solving. The file is Markdown. It has one heading, a blockquote, and a list of links. You can write it by hand in ten minutes. Generating it from a sitemap risks including pages that do not belong -- pricing pages, legal boilerplate, thin marketing pages -- because the generator cannot distinguish your high-signal content from your low-signal pages. The whole point of llms.txt is curation. Curation is a human judgment call.

As for an llms.txt checker or llms.txt validator -- several free tools exist (mrs.digital, llmstxtchecker.net, radarkit.ai) that verify your file has the right Markdown structure: one H1, proper blockquote formatting, valid links. Worth running once after you create the file. Not worth obsessing over. If your file has the structural elements listed in the format section above and returns a 200 at /llms.txt, you are compliant.

The honest evidence: does llms.txt do anything yet?

This is where I want to be direct, because the hype-to-evidence ratio on this topic is skewed.

Google explicitly ignores it. Google's AI optimization guide states that creating AI text files or Markdown files "will neither harm nor help your site's visibility or rankings in Google Search, as Google Search ignores them." You do not need llms.txt to appear in Google Search or AI Overviews. Their guidance: if you want to maintain the file for other AI services, that is fine, but it is not a Google ranking factor and will not be.

97 percent of llms.txt files get zero AI requests. Ahrefs studied 137,210 domains in May 2026 and found that of the roughly 38,000 domains with a valid llms.txt file, 97 percent received zero requests for it. Of the files that did get traffic, 96 percent of requests came from bots -- mostly non-AI scanners and audit tools. AI retrieval bots accounted for roughly 1 percent of total requests.

No correlation between llms.txt and AI citations. Large-scale studies looking for a connection between having an llms.txt file and being cited by ChatGPT or Perplexity have not found one. Citation behavior correlates more strongly with content quality, topical depth, and third-party validation than with the presence of a curated file.

Adoption is growing, but from a tiny base. One tracker monitoring over three million sites recorded 4,088 llms.txt files in June 2025 and 36,120 by May 2026 -- an 8.8x increase, but still under two percent of the web.

So: no ranking impact. Minimal AI bot traffic. No proven citation benefit. Why would you ship one?

When llms.txt is actually worth the effort

The case for llms.txt is not about search rankings. It is about two narrower use cases where the file demonstrably helps.

Documentation accuracy for AI coding assistants. If your product has an API or SDK, AI coding assistants like Cursor, Copilot, and Claude Code use available context to generate integration code. A well-structured llms.txt (and especially an llms-full.txt) pointing to your API docs gives these tools a clean map of your endpoints, authentication patterns, and data models. The result: fewer hallucinated endpoints, more working code snippets. This is why Stripe, Vercel, Anthropic, and Cloudflare ship llms.txt files. They are not chasing SEO impact. They are reducing support tickets from developers whose AI assistant generated incorrect integration code.

Future-proofing for AI retrieval. The spec is early. Adoption is thin. But the directional bet -- that AI agents will increasingly need structured, curated site directories -- is reasonable. Shipping a fifteen-minute file now costs almost nothing. If AI retrieval systems start honoring llms.txt at scale in 2027, you will already be in place. If they do not, you lost fifteen minutes.

For the typical small SaaS site with a marketing blog and a handful of product pages, llms.txt is a low-cost, low-impact addition. It will not move your rankings. It will not get you cited by ChatGPT. But it will not hurt, and it takes less time than writing a single blog post.

What actually gets small sites cited by AI

If your goal is AI visibility -- getting cited by ChatGPT, Perplexity, or Google AI Overviews -- llms.txt is not the lever. The lever is the same one that drives organic rankings: topical authority built through content clusters.

I have watched this play out building Boomranq's own blog. The posts that get cited by Perplexity are the ones sitting inside dense, interlinked clusters -- not our standalone pages, despite living on the same domain at the same DR. The variable is always depth.

The Princeton GEO study validated this at scale: adding statistics increased citation rates by 40 percent, and citing sources improved visibility by up to 115 percent for lower-ranked content. I covered these mechanics in detail in how generative engine optimization services actually work and what separates real answer engine optimization tools from rebranded SEO dashboards.

The honest playbook for a bootstrapped SaaS founder who wants AI visibility: build topical depth through clustered, interlinked content. Format every post with self-contained answer passages. Cite sources inline. Publish in winnability order so your easiest-to-rank posts build domain authority first. Then add an llms.txt file as a finishing touch, not a foundation.

That sequencing matters. An llms.txt file on a thin site with three blog posts is a directory pointing to an empty library. An llms.txt file on a site with twenty interlinked posts covering a narrow topic in depth is a directory pointing to a resource worth citing. The file is only as useful as the content behind it.

The bottom line for SaaS founders

Ship an llms.txt file. It takes fifteen minutes. Use the llms.txt example above as your template, swap in your own product details and page links, run it through an llms.txt checker once, and move on.

Then spend the rest of your time on what actually moves AI visibility: building depth, publishing in winnability order, and structuring your content so AI systems can extract and cite it. The file is a signal. The content is the substance. Do not confuse the two.

Want this planned for your site?

Boomranq turns your product into a sequenced 30-day calendar built around what your site can actually rank for. Join the waitlist for early access.

No spam · One email when we launch · Unsubscribe anytime