llms.txt: what it is, a real example, and how to write one in 20 minutes

llms.txt is a proposed markdown file at /llms.txt that tells language models what a site is and which pages matter. What the proposal says, what no crawler has confirmed, our file as the example, and a template.

Updated Share

llms.txt is a markdown file at /llms.txt that describes a website to a language model: a heading with the site’s name, one paragraph saying what it is, then a list of the pages worth reading with a one-line note on each. Jeremy Howard published the proposal at llmstxt.org on 3 September 2024. Ours is at rankplan.io/llms.txt, and it runs past 150 lines because the directories we track are the pages a model should read. Below: what the file is, what it is not, the format, a template you can fill in twenty minutes, and how it fits with the rest of getting cited by AI answers.

What llms.txt is

llms.txt is a proposal, by Jeremy Howard of fast.ai and Answer.AI, for a single markdown file at the root of a site that a language model can read in one request to learn what the site is and where its useful pages are. The problem it addresses is real. A model with a browsing tool has a small context window, and a modern HTML page spends most of that window on navigation, scripts and markup. A curated list of links with a sentence on each is cheaper to read than a homepage.

The proposal names one required element, an H1 with the site or project name, and three optional ones: a blockquote with a short summary, free-form paragraphs of context, and H2 sections each holding a list of links. The list entries follow one shape: a markdown link, then optionally a colon and a note. A section titled “Optional” marks links an agent can skip when it needs a shorter context. The proposal was revised to version 2 on 10 August 2026 and still fits on one screen.

The proposal also suggests serving a clean markdown copy of each page at the same URL with .md appended. Documentation hosts have added a second convention the proposal does not define, llms-full.txt, which concatenates every page into one file.

What llms.txt is not

llms.txt is not robots.txt, not a sitemap, and not a file any major AI crawler has confirmed it reads.

Not robots.txt. robots.txt is a set of rules that say which paths a crawler may not fetch, and OpenAI, Anthropic, Google and Perplexity all document that their crawlers honour it. llms.txt contains no rules. It cannot block anything, and it cannot make a crawler fetch anything. If you want to keep a model out of a section of your site, robots.txt is the file to edit.

Not a sitemap. A sitemap lists every URL for a search crawler that intends to fetch all of them. llms.txt is the opposite: a short, ranked selection with a description on each line, written for a reader that will fetch few pages and needs to pick well.

Not confirmed in use. This is the part most guides skip. As of September 2026 no major AI provider states that its crawler fetches or uses llms.txt. Google’s John Mueller wrote in June 2025 that no AI system currently uses it and that a look at server logs shows crawlers do not even request it. Ahrefs put numbers on that in June 2026: across 137,000 domains, 28 percent published an llms.txt and 97 percent of those files received zero requests during May 2026. Anthropic publishes an llms.txt for its own documentation but does not say its crawler reads anyone else’s. The one institutional signal in the other direction is small: Chrome’s Lighthouse added an llms.txt audit under “agentic browsing” in May 2026, and it only flags a server error when fetching the file. A missing file scores “not applicable”, and the page calls the file optional.

So the honest position is this. The file costs twenty minutes, it cannot hurt, and the browsing agents that would benefit from it are being built now. Nobody can show you a citation it earned. Write it, keep it accurate, and spend the rest of your time on the things that do get cited.

The format, with a real example

The format is a markdown document with an H1, a blockquote, some prose, and H2 sections of links, and the best way to see it is to read one. Ours is generated at build time from the same data that powers the rest of this site, so the numbers in it match the pages it links to. Here is its shape, trimmed:

# RankPlan

> The startup directories that will grow your domain authority, ranked for your product. Drop your URL and get the free report in two minutes.

RankPlan tracks 126 startup directories, launch platforms and review sites with Domain Rating by Ahrefs, link type (40 give a followed link), cost and approval time for each. Paste a product URL and the free rank plan reads the site, scores every directory against it and returns the ten to submit to this week ...

## Tools

- [Free rank plan](https://rankplan.io/): drop a URL, get the directories ranked for that product in two minutes.
- [Domain Rating checker](https://rankplan.io/domain-rating-checker): the Ahrefs DR of any site, free.

## Guides

- [SaaS SEO: the 5 page types and the 22 SaaS directories that move Domain Rating](https://rankplan.io/guides/saas-seo): ...

## Lists

- [The startup directories with the most search traffic](https://rankplan.io/directories/best-by-traffic): 25 directories.
- [Dofollow startup directories](https://rankplan.io/directories/dofollow): 40 directories.

## Directories

- [SourceForge](https://rankplan.io/directories/sourceforge): DR 93, nofollow link, freemium. ...
- [Product Hunt](https://rankplan.io/directories/producthunt): DR 91, nofollow link, free. ...
- [Fazier](https://rankplan.io/directories/fazier): DR 83, dofollow link, freemium. ...

## Company

- [Privacy](https://rankplan.io/privacy)
- [Terms](https://rankplan.io/terms)
- Contact: hello@rankplan.io

Five sections, in the order a reader would want them: what the site does, the two tools, every guide, every curated list, and then one line per directory with the three facts a model would otherwise have to fetch a page to learn: Domain Rating, link type and cost. The directory section runs to 126 lines, sorted by DR, and each line carries the same description that appears on the directory’s own page. The file has no “Optional” section because the long list is the substance, not the appendix. That is a judgement call the proposal leaves to you.

Three details worth copying. Every link is absolute, because a model reading the file has no base URL to resolve against. Every note states a fact, not a slogan. And the count in the opening paragraph is computed, not typed, so it cannot drift.

How to write one for a startup site in 20 minutes

Write the summary paragraph first, then list the ten to thirty pages a stranger would need, then add one factual note per link. The rest is formatting.

  1. Write the blockquote. One sentence, under 30 words, that says what the product does and for whom. This is the line a model will quote back, so it is the only part worth agonising over.
  2. Write one paragraph of context. What the product is, who uses it, what it costs, and one or two numbers that describe its scale. State facts a model could cite: launch year, pricing model, the platforms it runs on.
  3. List the pages. Pricing, docs or a getting-started page, the changelog, comparison and alternative pages, your best two or three guides, and the about and contact pages. Leave out the blog index, the login page and anything behind a sign-up wall.
  4. Add a note to every link. A colon and a clause of facts. “Pricing: three plans, free tier, from $19 a month” beats “Our pricing page”.
  5. Mark the skippable part. If the list is longer than about forty lines, move the tail into an ”## Optional” section.
  6. Save it as UTF-8 plain text at the root of the site as llms.txt, served with a text/plain content type, and open it in a browser to check it renders as text.

Here is a template to fill in:

# Product name

> One sentence: what it does, for whom, and the one fact that sets it apart.

Product name is a [category] for [who]. Launched [year]. [Pricing model: free tier, plans from $X a month]. Runs on [web, iOS, API]. Used for [the two or three jobs customers hire it for].

## Product

- [Pricing](https://example.com/pricing): three plans, free tier, from $X a month, no card to start.
- [Getting started](https://example.com/docs/start): setup in under ten minutes, covers install and first run.
- [Changelog](https://example.com/changelog): every release since [year], dated.

## Compare

- [Product vs Competitor](https://example.com/vs/competitor): where each wins, with a feature table.
- [Alternatives to Competitor](https://example.com/alternatives/competitor): the five alternatives and what each costs.

## Guides

- [Guide title](https://example.com/guides/slug): what the reader will learn, in one clause.

## Company

- [About](https://example.com/about): founded [year] in [city] by [names].
- Contact: hello@example.com

## Optional

- [Blog](https://example.com/blog): posts since [year].

The whole file for a five-page startup site is under forty lines. Do not pad it. A model that reads a padded file learns less, not more.

Put the file at the root of the domain, at /llms.txt, and link only pages you would want quoted.

The root is where the proposal says to look and where every tool that checks for the file will check. A subpath such as /docs/llms.txt is allowed for a section of a site, but a startup with one domain wants one file at the root. If your marketing site and your app live on different hosts, the file goes on the marketing host, and it can link to the docs host.

Serve it as plain text: a static file in the public folder, or a small route that returns text/plain. Confirm a catch-all route is not rewriting it to HTML, and confirm robots.txt does not disallow it.

On what to link, one rule: a page earns a line if a model that read it could answer a customer’s question correctly. Pricing, docs, comparisons and dated guides qualify. Blog category pages do not. Use the canonical URL with no tracking parameters.

How to keep it updated

Generate the file from data rather than editing it by hand, because a stale llms.txt is worse than none.

Ours is a fifty-line script that runs at build. It reads the directory dataset and the guides collection, counts the followed-link directories, sorts everything by Domain Rating and writes the lines. When a directory’s DR changes or a guide is added, the file changes on the next deploy with no one touching it. The date at the top of every guide and list on this site comes from the same fetch, so the file and the pages it links to never disagree.

For a startup site without a dataset, pull the page list from the CMS or the router, keep the summary paragraph next to the site’s meta description, and regenerate on deploy. If the file must be hand-written, review it whenever the pricing page changes, because those two go stale together.

How it fits with getting cited by AI answers

llms.txt is the smallest and least proven of the things that get a startup cited by AI answers, so do it last and quickly.

The models behind ChatGPT, Perplexity and Google’s AI answers pick sources by fetching pages that already rank for the question and by drawing on the sites they were trained on. A product gets into both pools the same way it gets into search results: pages that answer a specific question in the first sentence, dated and sourced numbers, consistent naming, and links from domains the models already read. The startup directories and review sites do a share of that work. Of the 126 we track, 40 give a followed link and the busiest, on the best-by-traffic list, are crawled and cited constantly: G2 and Capterra at DR 91, SourceForge at DR 93, and Product Hunt at DR 91. A listing there is a page about your product on a site the models already trust.

We cover the whole approach in how to get cited by ChatGPT. Read that first. Then write your llms.txt in the twenty minutes it takes, and if a browsing agent starts reading it next year, you are ready.

What to do next

  1. Write the one-sentence blockquote and the context paragraph, and reuse them as your meta description and your directory listing text.
  2. Fill in the template above with ten to thirty pages, save it at /llms.txt, and open it in a browser to check it serves as plain text.
  3. Add the file to your deploy or generate it from your page list so it cannot go stale.
  4. Run the free rank plan to find the ten directories that fit your product, because listings on trusted sites are what the models cite today.

Questions founders ask

What is llms.txt?

llms.txt is a plain markdown file served at the root of a website, at /llms.txt, that tells a language model what the site is and lists the pages worth reading, one link per line with a short note. It was proposed by Jeremy Howard on 3 September 2024 at llmstxt.org. It is a proposal, not a standard any AI company has committed to.

Does Google or ChatGPT read llms.txt?

Neither has said so. Google's John Mueller wrote in June 2025 that no AI system uses llms.txt and that server logs show crawlers do not even request it. Ahrefs checked logs for 137,000 domains in May 2026 and found 97 percent of llms.txt files received no requests at all. Treat the file as cheap insurance, not a ranking lever.

What is the difference between llms.txt and robots.txt?

robots.txt tells crawlers which paths they may not fetch, and every major crawler honours it. llms.txt tells a model which pages to read first and what the site is about, and no major crawler has confirmed it reads the file. One restricts, the other recommends. They do not replace each other.

Is there an llms.txt generator?

Several site builders and documentation hosts generate one from a site's page list, and we are building a generator for startup sites. A generator saves typing but cannot write the one-paragraph summary that does the work, so write that sentence yourself and let a tool handle the link list.

What is llms-full.txt?

llms-full.txt is a convention, used mostly by documentation sites, for a second file containing the full text of every page in one markdown document. The llmstxt.org proposal does not define it. A startup marketing site rarely needs one; a short llms.txt plus clean HTML pages covers the same ground.

Does llms.txt help SEO?

No. Google does not use it for ranking, it passes no authority and it does not change what a search crawler indexes. The things that get a startup cited by AI answers are the same things that get it ranked: pages that answer a question in the first sentence, and links from sites the models already trust.