Has anyone actually adopted llms.txt?
llms.txt is an emerging, non-IETF convention (proposed by Jeremy Howard, 2024): a markdown file at /llms.txt describing a site for LLMs. We measure how many sites publish one and whether it conforms to the llmstxt.org structure.
Balanced panel: 50,000 selected domains (5,000 from each equal 50k band), 30,676 live. The separate top-50k census improves Explorer coverage but is down-sampled for the representative top-500k estimate.
- Ahrefs (137K sites): ~28% publish, but ~97% are never read; of the read 3%, 96% of requests were bots. AI bots don't probe for missing llms.txt.
- SE Ranking (300K domains): no measurable AI-citation lift.
- Google's John Mueller calls it a "temporary crutch"; OpenAI/Anthropic steer owners to robots.txt.
- HTTP Almanac 2025: of 324,184 valid files, ~39.6% were generated by the All in One SEO WordPress plugin — adoption is largely passive CMS-plugin default, not strategy.
Do popular sites adopt llms.txt more than smaller ones?
Band 1 = ranks 1–50,000; band 10 = ranks 450,001–500,000. Each point uses the balanced 5,000-domain draw for that band. Adoption is conditioned on a strict-200 live homepage; liveness is shown beside it so the changing denominator is visible.
data table
| Band | Tranco ranks | selected | live | liveness | adoption of live | conformant of published |
|---|---|---|---|---|---|---|
| D1 | 1–50,000 | 5,000 | 2,870 | 65.9% | 11.9% | 95.6% |
| D10 | 450,001–500,000 | 5,000 | 3,170 | 71.6% | 13.1% | 96.6% |
| D2 | 50,001–100,000 | 5,000 | 3,154 | 72.4% | 11.4% | 96.4% |
| D3 | 100,001–150,000 | 5,000 | 2,874 | 66.2% | 12.2% | 95.4% |
| D4 | 150,001–200,000 | 5,000 | 3,093 | 70.3% | 13.5% | 96.2% |
| D5 | 200,001–250,000 | 5,000 | 3,136 | 70.9% | 12.3% | 96.9% |
| D6 | 250,001–300,000 | 5,000 | 2,867 | 64.8% | 14.6% | 98.3% |
| D7 | 300,001–350,000 | 5,000 | 3,086 | 69.2% | 13.1% | 98.0% |
| D8 | 350,001–400,000 | 5,000 | 3,197 | 72.2% | 13.7% | 96.8% |
| D9 | 400,001–450,000 | 5,000 | 3,229 | 72.4% | 14.3% | 97.8% |
Blue = genuine /llms.txt adoption among live sites. Amber = share of measured, non-opt-out domains that were live. Each band contributes an equal 5,000-domain sample.
All ten top-500k bands are represented. D1 also has a separate full census, but only its random 5,000-domain draw enters this chart and the balanced headline. See the sampling and liveness methodology.
How many llms.txt files are really files?
Many origins answer a missing /llms.txt or /ai.txt with 200 anyway — their homepage HTML, their robots.txt, an error string, or a bare OK. We count a file only when the body actually contains a document (see how presence is decided). Raw-200 adoption would be 13.5% in the observed crawl corpus — but that diagnostic pool includes the oversized top-50k census and is not a representative prevalence estimate.
~97% of apparent /ai.txt "adoption" is not a real file. Separating the two is itself a finding.
caveat These are counts, not adoption rates — each variant has a different denominator. This crawl probes tiered and stores one row per domain (the winning variant), so a variant's count is only over the domains where that path was actually probed and won: /llms.txt is probed on every live domain; the supplements (/llms-full.txt, /llms-ctx.txt, /llms-ctx-full.txt) are probed only when /llms.txt returned 200 but was non-conformant; and /ai.txt is probed on every live domain but only recorded when no conformant llms.txt variant was found first. A site that publishes a good /llms.txt and a /llms-full.txt is invisible in the supplement rows. Per-variant denominators need a re-crawl that records every variant independently; until then, do not divide these counts by the probe total.
data table
| variant | 200s | genuine | not a file | probed when |
|---|---|---|---|---|
| /ai.txt | 10,019 | 544 | 9,475 | every live domain; recorded only if no conformant llms.txt won |
| /llms.txt | 7,342 | 7,144 | 198 | every live domain |
| /llms-ctx-full.txt | 24 | 5 | 19 | only when /llms.txt was a non-conformant 200 |
| /llms-ctx.txt | 9 | 0 | 9 | only when /llms.txt was a non-conformant 200 |
Solid = genuine (a 200 whose body is a real document); red = a 200 that is not a file (HTML page, robots.txt, stub or error string). Denominators differ per variant — see the caveat above.
Who generates llms.txt?
Of 7,143 genuine files, 43.6% carry a detectable generator signature — our own measurement of the CMS/plugin-driven nature of adoption (RQ-4). Bars colored by conformance rate.
data table
| generator | files | conformant |
|---|---|---|
| (none detected) | 4,027 | 94.6% |
| Shopify | 1,601 | 99.3% |
| Yoast SEO | 516 | 99.0% |
| WordPress | 316 | 96.5% |
| All in One SEO | 260 | 99.6% |
| Rank Math | 146 | 97.9% |
| HubSpot | 90 | 94.4% |
| Ghost | 73 | 90.4% |
| Wix | 61 | 100.0% |
| Blogger | 22 | 100.0% |
| Magento | 11 | 81.8% |
| Webflow | 10 | 90.0% |
Generator-produced files are near-universally spec-conformant; hand-rolled ones less so.
Do sites that publish llms.txt also block AI crawlers?
Of genuine llms.txt publishers, 23.5% (1,677 of 7,143) also name at least one AI crawler in robots.txt — publishing a welcome mat for LLMs while addressing their crawlers directly.
caveat Naming ≠ blocking. A named crawler could be an Allow or a Disallow — this v1 measures naming only. The rigorous allow/block verdict split (the Mixed Signals quadrant) lands with per-bot verdicts in a later crawl.
data table
1,677 of 7,143 genuine publishers name ≥1 AI crawler in robots.txt.
Names an AI crawler in robots.txt (allow OR block undetermined) vs no AI crawler named.
What sections does an llms.txt actually contain?
The most common H2 section titles across the genuine corpus — the de-facto schema sites are converging on (no spec mandates these).
data table
| section title | files |
|---|---|
| optional | 1,524 |
| platform | 1,502 |
| read-only browsing (no authentication required) | 1,410 |
| commerce protocol (ucp) | 1,408 |
| for personal shopping assistants and agents acting on behalf of a user | 1,402 |
| store policies | 1,365 |
| pages | 856 |
| posts | 637 |
| categories | 509 |
| sitemaps | 470 |
| products | 439 |
| company | 436 |
| resources | 395 |
| tags | 305 |
| contact | 293 |
| about | 262 |
| pricing | 222 |
| blog | 203 |
| solutions | 192 |
| key pages | 179 |
Normalized (lower-cased) H2 titles across genuine llms.txt files.
Is llms-full.txt any different from llms.txt?
This crawl promotes /llms-full.txt from a supplement (probed only when /llms.txt was a non-conformant 200) to an independently probed path — requested on every live cohort domain regardless of the /llms.txt outcome (FR-18d). It is therefore the one non-base variant with a real denominator, and the only one we express as a rate.
read these together The not-a-file rate is the story, not a footnote. This path returns 200 for 12,492 domains but only 2,622 are real files — 79.0% return something else for a missing path (a web page, a robots.txt, a stub). Compare /llms.txt, where the rate is far lower. Quoting the raw 200 count as adoption would overstate this path by roughly 4.8x.
Is the full dump maintained alongside the index?
This is the question independent probing exists to answer: both lanes now cover the same domains, so the breakdown is measurable for the first time.
| publishes | domains | share of full-file publishers |
|---|---|---|
| both /llms.txt + /llms-full.txt | 2,077 | 79.1% |
| /llms-full.txt only — no base index | 548 | 20.9% |
| /llms.txt only — no full dump | 5,067 | — |
Of 7,144 /llms.txt publishers, only 29.1% also serve a full-context dump — so the dump is the exception, not the norm, even among sites that have adopted the convention.
An interesting insight: one platform dominates this path
insight Shopify accounts for 1,504 of the 2,622 genuine /llms-full.txt files (57.4%). That is a far higher single-vendor concentration than the base /llms.txt corpus shows, where no generator exceeds ~17%. Read carefully: it means this path's adoption curve is substantially one platform's default output rather than 2,622 independent decisions — the same passive-CMS-default dynamic the HTTP Almanac found for llms.txt (39.6% All in One SEO), but more concentrated.
One thing this does not say: Shopify is not the explanation for the 548 full-only domains. Its files overwhelmingly sit on domains that publish a base /llms.txt as well — the platform emits both files, not the dump alone, which is why it shows up in the both row above rather than the full-only row. The full-only group is instead dominated by files with no detectable generator, which we can count but not attribute.
An interesting insight: for most publishers, the “full” file isn’t fuller
The 2,077 domains publishing both files let us ask something the tiered crawl never could: is /llms-full.txt actually a fuller document, or the same content at a second path? Compared per domain on size and link count.
| full vs base file | domains | share of pairs |
|---|---|---|
| mirror — within ±5% size and identical link count | 1,445 | 69.6% |
| genuinely fuller — >5% larger | 567 | 27.3% |
| smaller than the base file | 53 | 2.6% |
insight 69.6% of both-lane publishers serve a /llms-full.txt that mirrors their /llms.txt rather than expanding on it. We verified this against live files rather than inferring it from sizes: those pairs differ by exactly the filename, in a line that says so — “you’re reading /llms.txt, which mirrors that content” — and 46 serve the two paths byte-for-byte identical. So the file documents its own duplication.
Read the aggregate with its concentration. “69.6% are mirrors” is really “one platform’s output is a mirror, and that platform dominates this lane”: Shopify accounts for 1,487 of the 2,077 pairs and 94.5% of its pairs are mirrors. Outside it the pattern largely disappears. The table below is the honest form of the finding; the single lane-wide percentage is not.
| generator (full file) | pairs | mirrors | mirror rate |
|---|---|---|---|
| Shopify | 1,487 | 1,405 | 94.5% |
| (none detected) | 426 | 30 | 7.0% |
| WordPress | 86 | 7 | 8.1% |
| Ghost | 31 | 1 | 3.2% |
| HubSpot | 18 | 1 | 5.6% |
| Blogger | 13 | 0 | 0.0% |
| All in One SEO | 6 | 1 | 16.7% |
| Squarespace | 5 | 0 | 0.0% |
| Yoast SEO | 2 | 0 | 0.0% |
| Magento | 2 | 0 | 0.0% |
| Webflow | 1 | 0 | 0.0% |
What this does not establish: we detect the generator from a signature the file itself carries, and we checked a handful of these against their live files, not all 1,487. The (none detected) row is counted but not attributable — those files carry no generator signature, so we can report their mirror rate and nothing about who produced them.
Which sites publish the best llms.txt files?
Largest genuine files (by lines)
| prosperhealth.io | 23,247 lines |
| searchengineland.com | 21,005 lines |
| craftbits.com | 20,501 lines |
| fastoscrews.com | 17,087 lines |
| 3qsdn.com | 15,882 lines |
| mailchimp.com | 13,893 lines |
| ucsf.edu | 13,271 lines |
| rollbar.com | 11,653 lines |
| bfbtransfercart.com | 10,816 lines |
| alternate.be | 10,173 lines |
| toryburch.com | 9,633 lines |
| silencershop.com | 9,330 lines |
Most links
| ucsf.edu | 10,981 links |
| alternate.be | 10,169 links |
| fivetran.com | 7,702 links |
| steuertipps.de | 7,245 links |
| nykaa.com | 6,942 links |
| simracewebshop.eu | 6,725 links |
| gomining.com | 6,356 links |
| gmt.io | 6,356 links |
| esmadrid.com | 6,292 links |
| hontecmultipcb.com | 6,201 links |
| infobus.eu | 6,011 links |
| timespro.com | 5,909 links |
200s that aren't a /llms.txt
200 on the canonical path, but the body isn't a file — a web page, a robots.txt, or a stub. Not counted as adoption.
| bit.ly |
| alphapolis.co.jp |
| uiuc.edu |
| useinsider.com |
| openssl.org |
| yumpu.com |
| kochava.com |
| zimperium.com |
| impact.com |
| nbc.com |
| kijiji.ca |
| upstart.com |