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,386 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,858 | 64.9% | 11.3% | 94.4% |
| D10 | 450,001–500,000 | 5,000 | 3,139 | 71.3% | 11.6% | 98.1% |
| D2 | 50,001–100,000 | 5,000 | 3,112 | 71.7% | 9.2% | 95.8% |
| D3 | 100,001–150,000 | 5,000 | 2,872 | 64.8% | 11.6% | 95.2% |
| D4 | 150,001–200,000 | 5,000 | 3,112 | 69.7% | 12.2% | 97.1% |
| D5 | 200,001–250,000 | 5,000 | 3,014 | 68.1% | 10.7% | 96.9% |
| D6 | 250,001–300,000 | 5,000 | 2,838 | 63.8% | 14.0% | 96.2% |
| D7 | 300,001–350,000 | 5,000 | 3,076 | 68.4% | 11.8% | 97.0% |
| D8 | 350,001–400,000 | 5,000 | 3,163 | 69.4% | 13.7% | 97.2% |
| D9 | 400,001–450,000 | 5,000 | 3,202 | 71.3% | 11.1% | 97.5% |
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 12.3% 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,032 | 507 | 9,525 | every live domain; recorded only if no conformant llms.txt won |
| /llms.txt | 6,455 | 6,247 | 208 | every live domain |
| /llms-ctx-full.txt | 26 | 6 | 20 | only when /llms.txt was a non-conformant 200 |
| /llms-ctx.txt | 11 | 0 | 11 | 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 6,247 genuine files, 44.3% 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) | 3,481 | 93.8% |
| Shopify | 1,444 | 99.5% |
| Yoast SEO | 516 | 98.8% |
| WordPress | 276 | 96.4% |
| All in One SEO | 217 | 99.1% |
| Rank Math | 129 | 99.2% |
| HubSpot | 76 | 92.1% |
| Ghost | 51 | 90.2% |
| Blogger | 18 | 100.0% |
| Wix | 15 | 100.0% |
| Webflow | 10 | 70.0% |
| Magento | 5 | 100.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, 22.2% (1,388 of 6,247) 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,388 of 6,247 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 |
|---|---|
| platform | 1,342 |
| read-only browsing (no authentication required) | 1,267 |
| commerce protocol (ucp) | 1,263 |
| for personal shopping assistants and agents acting on behalf of a user | 1,262 |
| optional | 1,233 |
| store policies | 1,225 |
| pages | 789 |
| posts | 607 |
| categories | 513 |
| sitemaps | 385 |
| products | 380 |
| resources | 365 |
| company | 340 |
| tags | 300 |
| contact | 271 |
| about | 253 |
| blog | 200 |
| headings structure: | 200 |
| main content: | 200 |
| pricing | 191 |
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,210 domains but only 2,355 are real files — 80.7% 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 5.2x.
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 | 1,845 | 78.3% |
| /llms-full.txt only — no base index | 512 | 21.7% |
| /llms.txt only — no full dump | 4,402 | — |
Of 6,247 /llms.txt publishers, only 29.5% 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,350 of the 2,355 genuine /llms-full.txt files (57.3%). 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,355 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 512 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 1,845 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,295 | 70.2% |
| genuinely fuller — >5% larger | 503 | 27.3% |
| smaller than the base file | 39 | 2.1% |
insight 70.2% 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 33 serve the two paths byte-for-byte identical. So the file documents its own duplication.
Read the aggregate with its concentration. “70.2% are mirrors” is really “one platform’s output is a mirror, and that platform dominates this lane”: Shopify accounts for 1,341 of the 1,845 pairs and 94.6% 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,341 | 1,268 | 94.6% |
| (none detected) | 353 | 18 | 5.1% |
| WordPress | 80 | 7 | 8.8% |
| Ghost | 29 | 1 | 3.4% |
| HubSpot | 11 | 1 | 9.1% |
| Blogger | 9 | 0 | 0.0% |
| Squarespace | 8 | 0 | 0.0% |
| Yoast SEO | 4 | 0 | 0.0% |
| Webflow | 4 | 0 | 0.0% |
| All in One SEO | 4 | 0 | 0.0% |
| Magento | 2 | 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,341. 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)
| searchengineland.com | 20,165 lines |
| 3qsdn.com | 15,882 lines |
| huayi-group.com | 15,599 lines |
| mailchimp.com | 13,893 lines |
| ucsf.edu | 13,271 lines |
| niliplus.com | 12,924 lines |
| beihaicomposite.com | 12,250 lines |
| rollbar.com | 11,653 lines |
| lent.az | 11,534 lines |
| alab.pl | 11,506 lines |
| iear.nl | 10,797 lines |
| traidmod.com | 10,685 lines |
Most links
| ucsf.edu | 10,981 links |
| traidmod.com | 10,667 links |
| vdu.lt | 7,673 links |
| fivetran.com | 7,561 links |
| steuertipps.de | 7,257 links |
| archisevilla.org | 7,127 links |
| gomining.com | 6,348 links |
| esmadrid.com | 6,292 links |
| creativepro.com | 6,260 links |
| kauveryhospital.com | 6,024 links |
| educapeques.com | 5,092 links |
| searchengineland.com | 5,031 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 |
| typeform.com |
| alphapolis.co.jp |
| av380.net |
| useinsider.com |
| kochava.com |
| yumpu.com |
| zimperium.com |
| savefrom.net |
| impact.com |
| kijiji.ca |
| github.blog |