Canonical definition

llms.txt — Definition, Format and What Actually Reads It

llms.txt is a Markdown file served at the root of a domain that gives AI systems a curated map of a site’s most important content. It is a proposal by Jeremy Howard, published in September 2024, not a standard from any AI vendor. It tells a model which pages matter and what each one is for — the job robots.txt does for permission and sitemap.xml does for coverage, but for meaning.

In one sentence

A plain-Markdown table of contents at /llms.txt, written for language models rather than crawlers, listing the pages that best explain what a site is and does.

What the file contains

The proposal defines a small, fixed structure. Everything below the H1 and blockquote is optional, but the order is not free-form:

# Site name

> One-sentence summary of what this site is.

Optional free paragraph of context.

## Section name

- [Page title](https://example.com/page): One-line description of the page.

## Optional

- [Lower-priority link](https://example.com/x): Skipped when context is short.

The ## Optional section is the only heading with defined semantics: a client under context pressure drops it first. Every other section name is yours to choose.

llms.txt, llms-full.txt and llms.jsonl

FileContainsUse when
llms.txtLinks plus one-line descriptionsAlways. This is the entry point.
llms-full.txtThe full text of those pages, inlinedThe site is small enough to fit a context window.
llms.jsonlOne self-contained JSON object per line — product, category or pageEcommerce. A catalogue is data, not prose.

For a store, the distinction matters more than it looks. llms.txt describes the shop; llms.jsonl describes the inventory. A model answering “does this shop sell waterproof jackets in size L” needs the second, and streaming line-delimited JSON is what lets it read 20,000 products without loading a 40 MB array.

Who reads it — and the honest answer

No AI vendor has committed to reading llms.txt

OpenAI, Anthropic, Google and Perplexity have not published a statement that they consume the file. Anyone claiming a measured ranking effect is overstating what is publicly known. What is true: the file costs almost nothing to serve, is trivially fetchable by any agent given the URL, and several developer-facing platforms publish one.

The defensible reason to publish it is narrower and still real: it is the only artefact where a merchant states, in their own words, what their store is — instead of leaving a model to infer it from theme markup and faceted-navigation URLs.

How common is it on Magento?

We scanned live Magento 2 storefronts drawn from the Tranco top-200,000 list (list ID ZJGPG, frame fixed 8 August 2026). Of the 837 confirmed Magento stores, 762 were reachable in the run of 9 August 2026:

SignalStoresShare of 762
Serves llms.txt8511%
Emits JSON-LD Product7310%
Blocks at least one AI crawler11014%

Method and limits: a store counts as serving the file only if /llms.txt returned HTTP 200 with a non-empty body. 23 stores hit rate limits during the run and are counted as not serving it, so 11% is a floor, not a point estimate.

Common mistakes

Publishing it once and never regenerating

A catalogue changes; a static file does not. A stale llms.txt is worse than none, because it states prices and availability that are wrong with the authority of a first-party document.

Letting meta-description artefacts leak in

Most generators build the one-line descriptions from meta descriptions. Whatever is broken there — a truncated first character, an editor note, a character count — is republished verbatim in the file a model quotes.

Listing every URL

It is a curated map, not a sitemap. A 4,000-line llms.txt defeats the purpose, which is to tell a model what to read first.

Generating it on Magento 2

Magento has no native support. angeo/module-llms-txt generates all three files from the catalogue — multi-store, Page Builder aware, atomic writes, MIT-licensed:

composer require angeo/module-llms-txt
bin/magento module:enable Angeo_LlmsTxt
bin/magento setup:upgrade
bin/magento angeo:llms:generate
bin/magento angeo:llms:validate

Questions

Is llms.txt a standard?
No. It is a public proposal from September 2024 with no standards body behind it and no ratified specification. Treat it as a convention that costs little to follow, not as a requirement.
Does llms.txt replace robots.txt or sitemap.xml?
No — the three answer different questions. robots.txt says who may crawl, sitemap.xml says which URLs exist, llms.txt says which pages explain the site and what each one covers. Serve all three.
Will llms.txt make ChatGPT recommend my store?
No, and any vendor promising that is overselling. No AI vendor has confirmed it reads the file. What a merchant controls is crawler access, structured data, a conforming product feed and a verifiable profile — llms.txt is a cheap addition to that set, not a substitute for it.
Where does the file have to live?
At the domain root: https://example.com/llms.txt, served as text/plain or text/markdown with HTTP 200. A subdirectory copy is not discoverable.
What is the difference between llms.txt and llms.jsonl?
llms.txt is prose links for humans-as-read-by-models; llms.jsonl is one JSON object per line, one per product, built for catalogue ingestion. A store publishing only llms.txt has described its shop but not its inventory.

Related

Verified 28 August 2026 against the llms.txt proposal and our own scan data. Store figures: 762 reachable Magento 2 storefronts, scan of 9 August 2026, Tranco list ID ZJGPG. Disclosure: we publish the open-source module referenced above.