llms.txt Adoption in 2026: What the Top 300 Websites Actually Serve
Every week someone publishes a number for how many sites have an llms.txt. Most of
those numbers come from a directory or a tool vendor's own crawler. We went to the ranking
itself instead: the Tranco top 300, fetched one path deep, on October 18, 2026.
Twenty-two serve a real file. Forty-one answer 200 with HTML behind the path.
Ninety-four return a plain 404, and thirty-four refuse the request outright.
How the sample was built
The list is the Tranco top 300, downloaded the same morning. For each hostname we made one
GET https://<domain>/llms.txt with redirect following, a 20-second timeout and a
research user agent, then classified the result by status code and by body: a file
counts only when the response is 2xx, the declared type is text/plain or
text/markdown, and the body contains no HTML document at all.
One caveat matters more than any other: 97 of the 300 hostnames never answer. Tranco ranks DNS
and CDN infrastructure alongside websites, so the list includes things like
akamai.net, cloudfront.net and gstatic.com that have no
site to put a file on. The honest denominator is the 203 hosts that responded.
The outcome table
| Response | Count | Share of the 203 that answered |
|---|---|---|
200 with a real text or Markdown file | 22 | 10.8% |
200 with HTML behind the path | 41 | 20.2% |
404 or 410 | 94 | 46.3% |
Refused (403 ×31, 401 ×1, 429 ×2) | 34 | 16.7% |
Other odd codes: 202 empty ×2, 417 ×2, 400 ×2, 406 ×1, 418 ×1, JSON error ×1, redirect-only ×2, script shell ×1 | 11 | 5.4% |
| No HTTP response at all | 97 | — |
Grouped differently: 31% of the hosts that answered either serve a file or pretend to. Nearly
one in five returns an HTML page under an llms.txt URL, which is the failure mode
most likely to mislead a client that checks status codes only. Our
checker flags it as a soft 200 for exactly this reason.
The 22 files that are actually there
The one clear pattern in the sample is who publishes. The adopters cluster in payments, developer infrastructure, identity and enterprise software. Media, search, social and consumer hardware are almost entirely absent from the list below — the same split our news publisher study found at larger scale.
| Domain | Bytes | H2 | Links |
|---|---|---|---|
| sourceforge.net | 3,329,997 | 4 | 3,606 |
| salesforce.com | 1,021,703 | 0 | 3,772 |
| unity3d.com → unity.com | 937,665 | 10 | 2,427 |
| taboola.com | 278,284 | 13 | 1,825 |
| sentry.io | 245,108 | 29 | 1,113 |
| dropbox.com | 209,330 | 17 | 829 |
| stripe.com | 69,923 | 31 | 308 |
| paypal.com | 40,103 | 7 | 151 |
| hubspot.com | 35,564 | 29 | 225 |
| github.com | 28,658 | 12 | 117 |
| gravatar.com | 21,927 | 15 | 26 |
| cloudflare.com | 17,173 | 13 | 90 |
| fastly.net → fastly.com | 16,618 | 15 | 87 |
| roku.com | 15,683 | 9 | 70 |
| amplitude.com | 14,777 | 5 | 54 |
| hcaptcha.com | 13,865 | 13 | 62 |
| shopify.com | 12,520 | 12 | 74 |
| digicert.com | 8,395 | 21 | 54 |
| linktr.ee | 7,913 | 7 | 50 |
| wordpress.com | 7,355 | 8 | 26 |
| intuit.com | 5,786 | 8 | 47 |
| samsung.com | 4,597 | 5 | 31 |
Totals for the group: 6,342,944 bytes, 15,044 links, a median of 21,927 bytes, five files under
10 KB and six over 100 KB. Fourteen of the 22 are reached through a redirect, usually
apex to www; salesforce.com appends a marketing parameter to the
target, and unity3d.com now redirects to unity.com, which is what a
brand rename does to a root-level file.
What the 41 soft 200s tell you
This is the bucket worth studying, because it is invisible to anyone who trusts the status code.
netflix.com/llms.txt redirects to /NotFound?prev=... and returns
200. tiktok.com/llms.txt lands on /404?fromUrl=/llms.txt and returns
200. spotify.com pushes the path to a locale prefix and serves HTML.
youtu.be parses llms.txt as a video ID and serves a watch page for
?v=llms.txt. Two hosts, goo.gl and forms.gle, answer
400; theguardian.com answers 406; ozon.ru
redirects to itself with a query parameter.
If you have ever run a crawler over a customer's site and reported "llms.txt found", check the
body. A file is Markdown: a first line beginning with #, then a blockquote summary.
If the response opens with <!doctype html, you found a 404 page wearing a 200.
Gaps inside the files that do exist
- Structure: 21 of 22 open with an H1 and 18 carry a summary blockquote. The exception is
salesforce.com— 1.02 MB of link list with zero H1 and zero H2 headings, the largest file in the sample and the least parseable. - Byte order mark:
paypal.comstarts withEF BB BFbefore# PayPal. A strict parser sees a heading that does not begin the document. - Charset labels:
hubspot.comdeclarestext/plain; charset=x-macromananddigicert.comdeclaresISO-8859-1, both for UTF-8-clean ASCII. Harmless today, a decoding bug the moment someone edits the file on a Mac. ## Optional: only 6 of 22 use the section the v2 spec defines for skippable links —stripe.com,cloudflare.com,unity.com,linktr.ee,intuit.com,samsung.com.- Markdown twins: 5 of 22 link
.mdversions of their pages, 130 such links in total.cloudflare.comalone accounts for 82 of them;stripe.comhas 24 andamplitude.com22. Everyone else points plain HTML at the agent.
Delivery is the quieter half of the problem: those charset and caching details are the ones that break at the edge, and we covered them in content-type and caching. On file size, the three largest entries here go straight past every published budget — see llms-full.txt size and structure for what belongs in the full file instead.
Who publishes, and who does not
Among the 94 plain 404s are google.com, apple.com,
amazon.com, microsoft.com, bbc.com,
nytimes.com, cnn.com, forbes.com,
ebay.com and ibm.com. Among the 34 refusals are
wikipedia.org, reddit.com, medium.com,
openai.com, chatgpt.com, reuters.com and
mit.edu. Both behaviours are consistent with the crawl data we summarised in
which AI engines read llms.txt: the file is
an opt-in affordance for sites that want to be quoted precisely, not a hygiene requirement.
If your site is in the 404 group
The distance between a 404 and a working file is usually one afternoon, and it is not the writing that takes the time — it is picking the ten to thirty URLs worth listing. Paste your sitemap into the generator, delete what a crawler cannot judge, then prove the delivery with a header read rather than a body read:
curl -sSI https://example.com/llms.txt | head -20
curl -sS -o /dev/null -D - https://example.com/llms.txt
# expect: 200, content-type text/plain or text/markdown,
# and a body whose first line starts with a single hash
Then take the last step most people skip: confirm an AI crawler can reach the path at all. A
403 to a datacenter IP is the single most common reason a published file is never
read, and it looks exactly like success from inside a browser.