llms.txt is a Markdown file at the root of a website that tells language models what the site is and where its useful pages are. Jeremy Howard proposed it in September 2024. Two years later it has a second version of the spec, generators for every major docs framework, an audit in Chrome's Lighthouse, and a default file on every Shopify store. It also has a Google Search advocate who compared it to the keywords meta tag, and server logs that say almost nothing fetches it.
Most "llms.txt adoption" numbers come from different lists, different months and different ideas of what counts as a file, so they range from 0.015% to 28%. We wanted one number we could stand behind. On 23 October 2026 we requested /llms.txt and /llms-full.txt from each of the 10,000 most popular domains on the Tranco list, classified every response by hand-written rules, and sent a control request to every apparent adopter to catch servers that answer anything. Then we put the result next to every other study and the published evidence on who reads the file. Our numbers are our own count; everyone else's link to their source.
Key findings
- 19.4% of the 10,000 most popular domains serve a real llms.txt (938 domains). Among the 6,602 that gave us a clear answer, it's 14.2%, about one in seven. Another 12.5% blocked our crawler, so 9.4% is a floor.
- 2A naive check doubles the count. 1,998 domains answer "200 OK" at
/llms.txt, but 1,060 of those are HTML error pages, redirects to the homepage or another page, or empty and stub bodies. Counting status codes overstates adoption 2.13×. - 3Size barely matters. 11.1% of the top 1,000 have one and 7.6% of ranks 9,001–10,000. Only 7 of the top 100 do. Google, Apple, Microsoft, Amazon and Wikipedia don't, and the AI labs mostly publish theirs on their developer docs, not their main site.
- 4Adoption is growing. On the same Tranco top 10,000, Thunderbit counted 5.86% in May 2026 and Rankability 8.3% in September, with different rules. On HTTP Archive data, Casey Burridge measured 1.04% of a top-10k list in July 2025 and 5.61% in June 2026.
- 5Much of it is automatic. Shopify mirrors a default file on every store, and SEOmator found Shopify behind 18.2% of all the files in the top 100,000. Downloads of eight llms.txt generator plugins on npm rose 9.3× in a year, to 1.25 million a month. At the very top it's less automatic: about 8% of our files carry a plugin or platform signature.
- 6Almost nothing reads them. Ahrefs found that 97% of llms.txt files on 137,000 sites got zero requests in May 2026. On 83 sites over 12 weeks, OpenAI's crawler fetched llms.txt 7 times and robots.txt 3,990 times, per EZY.ai. Google Search says it ignores them.
- 7The readers that do show up are coding agents and SEO tools. In Ahrefs' logs, SEO audit tools made 21.7% of llms.txt requests and AI search retrieval bots 1.1%. Among named AI tools, GPTBot came first and Claude Code second.
- 8Most files are valid; fewer are useful. 95% open with the
# H1the spec requires and 82% have its full shape. But 6.7% are longer than 32,000 tokens, and 3% of the links we sampled were dead.
9.4%
Of the Tranco top 10,000 domains serve a real llms.txt, Oct 2026 (938; a floor)
Source: host0 crawl
2.13×
How much a 'status 200' check overcounts: 1,998 answers, 938 real files
Source: host0 crawl
9.3×
Growth in monthly npm downloads of 8 llms.txt generators, Sep 2025 to Sep 2026
Source: host0 analysis of npm data
How many of the top 10,000 have one#
We counted a domain as having an llms.txt when https://<domain>/llms.txt ended on a 200 response, the final URL was still an llms file, and the body was Markdown-like text rather than HTML, JSON, an empty page or a copy of robots.txt. 938 domains passed. A control request for a random file that doesn't exist caught one server that returns the same Markdown for any path, and we removed it.
The denominator matters as much as the count. The Tranco list ranks registrable domains, not websites, and a fifth of its top 10,000 are CDNs, API endpoints and DNS infrastructure that never answered an HTTP request. Another 12.5% answered 401, 403, 429 or a bot challenge to our self-identified crawler; openai.com is one of them. We counted those as unknown, not as "no".
What the top 10,000 domains return at /llms.txt
Share of 10,000 Tranco domains by outcome, 23 October 2026
| Label | Value |
|---|---|
| 404 or other 4xx | 46% |
| No HTTP answer | 20.6% |
| Blocked our crawler | 12.5% (unknown) |
| 200, but not an llms.txt | 10.6% |
| Real llms.txt file | 9.4% (938) |
| Server error | 0.9% (unknown) |
Source: host0 crawl of the Tranco top 10,000 (list 56Z8N)
A 200 is not a file#
The easy way to measure adoption is to request the file and count the 200s. That counts 1,998 domains, more than twice the real number. Many sites answer every unknown path with their HTML app shell or a styled "page not found" page that still returns 200. Others redirect /llms.txt to the homepage or to some other page and return 200 there.
What 1,998 '200 OK' responses at /llms.txt really were
Domains, Tranco top 10,000, 23 October 2026
| Label | Value |
|---|---|
| A real llms.txt file | 938 |
| An HTML page (soft 404 or app shell) | 383 |
| A redirect to the homepage | 328 |
| A redirect to another page | 275 |
| Empty, stub, robots.txt, JSON or other | 74 |
Sources: host0 crawl; Thunderbit; SEOmator
This is the main reason published numbers disagree. A tracker that counts 200s will always report more adoption than one that reads the body.
Size barely matters#
You might expect the most popular sites, with the biggest SEO teams, to adopt first. They haven't. Adoption sits between 6.7% and 11.9% in every thousand-rank band, with a mild drop below rank 7,000. Burridge found the same flatness on HTTP Archive data: 6.28% of the top 1,000 against 5.07% of the top million.
Adoption by popularity rank
Share of each 1,000-domain band of the Tranco top 10,000 with a real llms.txt, 23 October 2026
| Label | Value |
|---|---|
| 1–1k | 11.1% |
| 1k–2k | 7.1% |
| 2k–3k | 11.9% |
| 3k–4k | 9.5% |
| 4k–5k | 9.8% |
| 5k–6k | 10.7% |
| 6k–7k | 11.1% |
| 7k–8k | 8.3% |
| 8k–9k | 6.7% |
| 9k–10k | 7.6% |
Source: host0 crawl
The domain's ending says more than its rank. A third of the .ai domains in the top 10,000 serve one, against one in eight .com domains and one of 112 .gov domains. SEOmator's top-100,000 scan also put .ai first and .io second, both well ahead of .com.
Adoption by top-level domain
Share of Tranco top-10,000 domains with a real llms.txt, selected endings with at least 40 domains, 23 October 2026
| Label | Value |
|---|---|
| .ai | 34% (16 of 47) |
| .io | 18.6% (37 of 199) |
| .br | 13.6% (15 of 110) |
| .com | 12.2% (614 of 5,013) |
| .de | 8% |
| .org | 6.7% |
| .net | 3.9% |
| .jp | 3.6% |
| .edu | 2.4% |
| .cn | 1.9% |
| .gov | 0.9% (1 of 112) |
Source: host0 crawl
Where the AI labs put theirs#
Our main count only looks at the root of each domain, which undercounts the companies that care most. We checked the AI labs and big developer platforms by hand, on their main domain and their docs hosts. The pattern is consistent: the labs publish llms.txt where developers and coding agents read, not on the homepage.
llms.txt at the AI labs
Root and docs hosts, checked 23 October 2026
- OpenAI: openai.com blocked our crawler; developers.openai.com has one, plus a 9.1 MB llms-full.txt.
- Anthropic: none on anthropic.com or claude.com; the developer docs (platform.claude.com) have one with 821 links and a 47 MB llms-full.txt.
- Google: none on google.com, developers.google.com or gemini.google.com; deepmind.google has one, and so do the Gemini API and Firebase docs.
- Mistral and NVIDIA: on both the main site and the docs.
- xAI and Perplexity: on the docs host only.
- Meta, Microsoft, Apple, Hugging Face, DeepSeek: none on any host we checked.
Source: host0 crawl
The biggest llms-full.txt files are AI and developer docs too: Cloudflare's developer docs passed our 64 MB read cap, and LangChain's is 15.9 MB. Developer platforms are also the heaviest adopters among the companies we checked: Vercel, Stripe, GitHub, Supabase, Zapier, Next.js, React and Svelte all serve a valid file.
It's growing, but the studies don't add up to a line#
Every adoption study picks its own list, its own month and its own definition of a valid file. That's why they can't be joined into one growth curve. The closest thing to a like-for-like comparison is three crawls of the same population, the Tranco top 10,000, in six months:
Three counts of the Tranco top 10,000
Share of domains with an llms.txt, as each study defined it, 2026
| Label | Value |
|---|---|
| May (Thunderbit) | 5.9% |
| Sep (Rankability) | 8.3% |
| Oct (host0) | 9.4% |
Sources: Thunderbit; Rankability; host0 crawl
The only true time series we found comes from Burridge, who ran the same query on HTTP Archive's crawl each month: 1.04% of a top-10,000 list in July 2025 and 5.61% in June 2026, about 5.4 times higher. His top 10,000 is ranked by Chrome traffic, counts origins rather than registrable domains, and covers the 7,504 sites HTTP Archive crawled; his validator is HTTP Archive's, not ours. So his 5.61% and our 9.4% are different measurements four months apart, not a jump from one to the other.
Adoption, by study
Share with a valid llms.txt, as each study defined it and its own population
| Label | Value |
|---|---|
| ~300K domains (SE Ranking) | 10.1% (late 2025) |
| Tranco top 10k (host0) | 9.4% (Oct 2026) |
| Radar top 100k (SEOmator) | 8.6% (Sep 2026) |
| Majestic top 10k (Humphrey) | 7.4% (Jun 2026) |
| CrUX top 10k, 2026 (Burridge) | 5.6% (Jun 2026) |
| All sites, desktop (Web Almanac) | 2.1% (Jul 2025) |
| CrUX top 10k, 2025 (Burridge) | 1% (Jul 2025) |
Sources: SE Ranking; SEOmator; Chris Humphrey; Casey Burridge; HTTP Archive Web Almanac 2025; host0 crawl
Every study that measured twice found growth, though. Rankability's own top-1,000 figure went from 0.3% in June 2025 to 9.3% in September 2026, across a change of method it flags itself. The spec's author put it this way in the v2 notes: "Thousands of sites now publish an llms.txt file."
llms.txt, 2024 to 2026
3 Sep 2024
3 Sep 2024
Jeremy Howard proposes llms.txt
A Markdown file at /llms.txt: an H1, a summary and lists of links.Source: llmstxt.org
20 Nov 2024
20 Nov 2024
Mintlify generates it for every hosted docs site
Along with llms-full.txt, a full-text version that the spec never defined.Source: Mintlify
28 Jan 2025
17 Apr 2025
2 Jun 2025
2 Jun 2025
Yoast SEO adds a generator
Opt-in, in the most widely used WordPress SEO plugin.Source: Yoast
Jul 2025
Jul 2025
Web Almanac crawl: 2.1% of all sites
39.6% of the files come from All in One SEO.Source: HTTP Archive
~May 2026
~May 2026
Shopify turns it on for every store
A default file mirroring each store's agents.md, per Casey Burridge.Source: Casey Burridge
1 May 2026
1 May 2026
Chrome Lighthouse audits llms.txt
Lighthouse 13.2.0, in a new agentic browsing category.Source: Lighthouse
15 Jun 2026
10 Aug 2026
10 Aug 2026
Spec v2
Discovery through link relations, Markdown page versions, and a pitch aimed at agents.Source: llmstxt.org
23 Oct 2026
23 Oct 2026
Our crawl: 9.4% of the top 10,000
Much of it is automatic#
Most sites with an llms.txt didn't write one. Docs platforms (Mintlify, GitBook), WordPress SEO plugins (Yoast, All in One SEO, Rank Math, Hostinger's) and site builders generate it. The biggest switch was Shopify's. Its developer docs say Shopify "manages an agents.md file by default for every store", and that /llms.txt and /llms-full.txt mirror it. Burridge dates the rollout to late April and early May 2026 and found a file on 78.1% of the Shopify sites in HTTP Archive's crawl.
The developer side shows up in package downloads. We summed monthly npm downloads of eight plugins that generate llms.txt for docs frameworks (Starlight, VitePress, Nuxt, Docusaurus, Rspress and VuePress).
Downloads of llms.txt generator plugins
Monthly npm downloads, eight packages combined
| x | y |
|---|---|
| Jan 2025 | 648 |
| Mar 2025 | 6.1K |
| May 2025 | 57.1K |
| Jul 2025 | 94.2K |
| Sep 2025 | 134.9K |
| Nov 2025 | 166.3K |
| Jan 2026 | 221.3K |
| Mar 2026 | 387.1K |
| May 2026 | 556.7K |
| Jul 2026 | 794.3K |
| Sep 2026 | 1.3M (1.25M) |
Source: host0 analysis of the npm downloads API
The further down the web you go, the more the files come from defaults. In HTTP Archive's 2025 crawl of all sites, 39.6% of the files carried All in One SEO's comment. In the top 100,000, SEOmator found Shopify behind 18.2% of every llms.txt. In our top 10,000, signatures are rarer.
Where files carry a generator's signature
Share of llms.txt files with each signature, by study and population
| Label | Value |
|---|---|
| All in One SEO, all sites (Almanac) | 39.6% (Jul 2025) |
| Shopify, top 100k (SEOmator) | 18.2% (Sep 2026) |
| Yoast SEO, top 10k (host0) | 4.1% (Oct 2026) |
| Shopify default, top 10k (host0) | 1.2% (Oct 2026) |
| All in One SEO, top 10k (host0) | 1% (Oct 2026) |
| Rank Math, top 10k (host0) | 0.9% (Oct 2026) |
Sources: HTTP Archive Web Almanac 2025; SEOmator; host0 crawl
What's inside the files#
The spec asks for little. The # H1 with the site's name "is the only required section", it says; after it come an optional > summary, free text, and ## sections listing links. 95% of the files we found open with the H1, and 82% also have at least one ## section with a - [name](url) link list, the shape the spec's examples use.
Common faults in llms.txt files
Share of 938 files in the Tranco top 10,000 with each issue, 23 October 2026
| Label | Value |
|---|---|
| Uses ### or deeper headings | 23.3% (warning) |
| No > summary after the H1 | 22.5% (warning) |
| ## sections without a link list | 10.7% |
| No Markdown links at all | 9.8% |
| More than one H1 | 6.5% (warning) |
| Doesn't open with an H1 | 4.8% |
| No ## sections | 4.2% |
Source: host0 crawl
The bigger problem is length. The spec pitches a short index an agent can read in one go. The median file is 7.7 KB, about 1,850 tokens with 37 links, which fits that. But 63 files (6.7%) are longer than a 32,000-token context window, and the largest, truecar.com's, is 4.5 MB with 13,874 links.
How long llms.txt files are
Files by approximate tokens (characters ÷ 4), Tranco top 10,000, 23 October 2026
| Label | Value |
|---|---|
| Under 500 | 93 |
| 500–2k | 399 |
| 2k–8k | 314 |
| 8k–32k | 69 |
| 32k–128k | 34 |
| Over 128k | 29 |
Source: host0 crawl
The links mostly work. We followed one random link from each of 200 random files: 88% answered with a 2xx, 3% were a hard 404, and the rest were blocked, rate-limited, timed out or a server error. One file pointed at a staging server.
Who reads it#
Publishing a file is one thing; having something read it is another. Ahrefs looked at its own analytics customers in May 2026: 28% of 137,210 domains publish an llms.txt, and 97% of those files received zero requests all month. The roughly 22,000 requests that did arrive came 96% from bots, and most of those bots weren't AI.
Who requested llms.txt files
Share of about 22,000 llms.txt requests across Ahrefs Web Analytics sites, May 2026
| Label | Value |
|---|---|
| SEO audit tools | 21.7% |
| Other and unidentified | 14.9% |
| General web crawlers | 13.1% |
| Tech profiling tools | 11.6% |
| AI agents and agentic tools | 10.5% |
| GEO and AEO tools | 5.8% |
| AI training crawlers | 5.3% |
| llms.txt scanners | 3.6% |
| Service and social bots | 2.9% |
| Research bots | 2.7% |
| AI assistants | 2.5% |
| AI search retrieval bots | 1.1% |
Source: Ahrefs
A smaller vendor test points the same way. EZY.ai put an llms.txt on 83 business websites in its panel and compared crawler fetches over 12 weeks. OpenAI's, Anthropic's and Perplexity's crawlers fetched robots.txt hundreds or thousands of times and llms.txt nine times or fewer.
llms.txt fetches by crawler, against robots.txt
Fetches of llms.txt across 83 sites, 27 April to 19 July 2026
| Label | Value |
|---|---|
| Meta-ExternalAgent | 193 (vs 172) |
| Googlebot | 67 (vs 5,125) |
| Anthropic (ClaudeBot) | 9 (vs 3,120) |
| OpenAI | 7 (vs 3,990) |
| PerplexityBot | 0 (vs 775) |
Source: EZY.ai
The platforms say as much. Google's guide to AI features in Search says an llms.txt "will neither harm nor help your site's visibility or rankings in Google Search, as Google Search ignores them", even as Google's own Lighthouse audits for one and its Gemini API docs publish one. None of the crawler documentation pages from OpenAI, Anthropic or Perplexity says their bots read llms.txt. And SE Ranking's study of about 300,000 domains found no effect of llms.txt on how often a domain is cited by LLMs.
What's left is a narrower job. When the SEO consultant Lily Ray pressed him, Mueller called llms.txt a "temporary crutch, perhaps to save some tokens" for AI coding tools, Ahrefs reports. The spec's own v2 pitches it at agents using a site to get a task done. That matches where it's taking hold: developer docs. Mintlify says agents made 66% of measured traffic to the docs it hosts in July 2026, though it doesn't break out llms.txt requests. If you've read our state of agent skills and state of MCP posts, this is the same pattern: the useful readers are agents doing a task, not crawlers building an index.
What this means if you build with AI#
-
Ship one if agents use your site to do work. Docs, an API, a developer product, a store an agent might buy from: an llms.txt is cheap, harmless (Google says so), and the readers that exist are coding agents. For a marketing site or a blog, don't expect it to change anything.
-
Make it valid and short. Start with an
# H1, add a one-line>summary, then##sections with- [name](url): notelists. Link the Markdown version of each page if you have one. Keep it an index of a few thousand tokens; put full text in separate files.Text# Acme > Acme is a REST API for invoices. The docs, API reference and SDKs are below. ## Docs - [Quickstart](https://acme.dev/docs/quickstart.md): send a first invoice in five minutes - [API reference](https://acme.dev/docs/api.md): every endpoint, with examples ## SDKs - [Python](https://acme.dev/docs/sdk/python.md) -
Check what you actually serve. Half the "200 OK" answers in our crawl weren't files. Look at the status, the content type, where you ended up and the first line:
Terminalcurl -sL -o /dev/null -w '%{http_code} %{content_type} %{url_effective}\n' https://example.com/llms.txt curl -sL https://example.com/llms.txt | head -3You want a 200,
text/plainortext/markdown, the same URL, and#on the first line. If a bot challenge or firewall rule blocks unknown clients at that path, agents can't read it either. -
Check your platform's default before writing your own. Shopify, Yoast, All in One SEO, Rank Math, Mintlify and GitBook can all generate one. Edit theirs rather than fighting it, and read it once: generated files list whatever the generator found, staging links included.
-
Don't expect traffic or citations from it. No AI search crawler documents reading it, Ahrefs found nearly all files unread, and SE Ranking found no link to citations. What those crawlers do fetch is robots.txt and your pages: allow the AI crawlers you want, and serve real HTML (or Markdown) that loads without JavaScript.
-
Measure before you invest more. Your server logs will show who requests
/llms.txt. If nothing does, the file has cost you ten minutes; spend the next hour on the pages themselves.
host0's own llms.txt points agents at the skill they use to publish. If your agent made a page, docs or a small app, host0 hosts it at a link you can share, private until you open it up.
Methodology#
We took the Tranco list 56Z8N (generated 22 October 2026 from 30 days of Chrome UX Report, Farsight, Majestic, Cloudflare Radar and Umbrella data; pay-level domains only) and requested https://<domain>/llms.txt and /llms-full.txt from the top 10,000 on 23 October 2026, between 12:03 and 12:47 UTC, from a UK connection. Our crawler identified itself (host0-research (+https://host0.ai)), kept at most 12 domains and one request per host in flight, used 10-second timeouts and followed up to five redirects. When the bare domain failed at DNS, TCP or TLS we tried www.. Domains that timed out were retried once.
- What counts: a final 200 response, a final URL that is still an llms file (redirects to a homepage or another page never count), a body that isn't HTML, JSON, empty, binary or robots.txt, and Markdown-like text. A control request for a random nonexistent
.txton each apparent adopter's host removed one catch-all server. - Valid means the first line is an
# H1, the spec's only hard rule. Full shape adds at least one##section with a- [name](url)list. - Denominators: "9.4%" is over all 10,000 domains. "14.2%" is over the 6,602 that gave a 2xx, 3xx or 4xx answer. 1,249 domains that blocked us and 92 that returned a server error are unknown, not "no", which makes 9.4% a floor.
- Root only: files that exist only on a docs subdomain or under a path count as absent in the main numbers. The AI-lab table is a separate check of named hosts.
- Generator signatures come from the first and last lines of each file. They're a floor.
- npm downloads are monthly totals from the npm downloads API for eight generator packages; they count installs, including CI builds.
- Other studies are each cited with their own population, date and rules, and never combined. We re-read every cited figure on its source page on 23 October 2026.
The crawler, classifier, the Tranco list, a per-domain results table and the full data pack are in our repository under docs/research/2026-10-23-llms-txt-adoption.md.
Open questions#
- Subdomains. How many top-10,000 companies have an llms.txt only on a
docs.ordevelopers.host? For the AI labs it's the norm, and a crawl of the root alone misses it. - The blocked tenth. 12.5% of domains refused our crawler. Some of them may publish a file that bots can't reach, which defeats its purpose.
- Who reads it, outside one analytics product. Ahrefs' logs are the best evidence there is. Nobody has published how often Claude Code, Codex or Cursor request llms.txt on their own, as opposed to following a link to it.
- A clean growth rate. No two crawls of the same list used the same rules. We'll rerun this crawl with the same code to get one.
