llms.txt On WordPress: We Measured Twelve Sites, And Ours Were The Worst.

Eight of twelve WordPress-adjacent sites publish llms.txt. Two of ours are 119KB and 212KB, which defeats the entire point of the format.

Aditya Sharma·6 min read

Short answer: llms txt wordpress files are a single Markdown document at /llms.txt that gives an AI agent a short, curated map of your site. It is a proposal rather than a standard. It is trivial to add. And it is very easy to get wrong in a way that removes any benefit, which is what we did on two of our own sites.

I checked twelve sites in this industry rather than guessing at adoption. Here is what came back.

Who actually has an llms txt on their WordPress site

Table of twelve WordPress-adjacent sites and their llms.txt status. wordpress.org, protuno.com, yoast.com, kinsta.com, patchstack.com and elementor.com publish files between 2KB and 16KB. theplusaddons.com publishes 119,758 bytes and nexterwp.com publishes 212,539 bytes with 662 links. woocommerce.com, wpengine.com, rankmath.com and uichemy.com have none
Eight of twelve publish one. The two largest by a wide margin are ours, and

nexterwp.com’s is roughly forty times the size of the file on wordpress.org.*

I counted a 200 that returns HTML as absent, because several sites answer every path with their normal 404 page at status 200. If you check this yourself, look at the body rather than the status code.

Terminal output showing a portfolio check loop for llms.txt. uichemy.com returns a 404 with a 399,216 byte body and wpengine.com a 404 of 146,134 bytes, while protuno.com returns a genuine 2,270 byte file and nexterwp.com returns 212,539 bytes
The loop I used, and the trap inside it. A 404 that returns a 399 KB body is a styled

error page, not a missing file. A status-only check would have recorded several of these as present.*

What the file is supposed to be

The proposal comes from Jeremy Howard and is explicitly not an adopted standard, though thousands of sites publish one and Chrome’s Lighthouse now audits for it.

Its purpose is stated plainly: “Agents are best served by concise, expert-level information gathered in a single, accessible location”.

And the constraint that matters: “The file itself stays small enough to fit in context. The detail lives behind the links, and is fetched only when needed”.

That last sentence is the whole design. It is a map, not the territory.

Table of the structure llms.txt specifies. An H1 with the site name is the only required element. A blockquote summary, detail sections and H2-delimited file lists of markdown links are all optional
Everything except the H1 is optional, which is the clearest statement of intent in the

specification. It is a short document by design.*

Where we went wrong

Comparison of the llms.txt proposal's requirements against wordpress.org and nexterwp.com. wordpress.org is 5.7KB with 36 links and follows every principle. nexterwp.com is 212KB with 662 links, inlines detail rather than linking to it, and does not fit in context
A 212 KB llms.txt is a sitemap wearing a different filename. It defeats the single

thing the format exists to do.*

Nobody did anything careless here. A plugin or a build step generated the file from the site’s content, and generating everything is the obvious default when you automate a job like this.

But the value of llms.txt is entirely in the curation. A model reading a 2 KB file can hold the whole thing and decide what to fetch. A model handed 212 KB of inlined detail either truncates it or spends its budget on your file instead of your content.

Both of ours are on the list to rewrite by hand. Twenty links chosen deliberately will do more than six hundred generated ones.

This is a pattern I keep running into while writing these posts. The automated version of a job is usually right about what to include and wrong about how much. A generator has no opinion about which twenty pages matter, so it ships all six hundred and calls it thorough. Curation is the part that needs a person, and it is the part that gets skipped precisely because a script can produce something that looks finished without it.

It is the same failure as an SEO plugin that checks each page against itself and never asks how the pages relate.

What to put in it

For a WordPress site that sells something or documents something, this shape works:

# Site Name

> One paragraph saying what this is, who it is for, and what is true today.

Any context a reader needs before following a link. Pricing model, what is
free, what is not shipped yet.

## Documentation
- [Getting started](https://example.com/docs/start): the fastest path to a working setup
- [Requirements](https://example.com/docs/requirements): what the site needs to run

## Product
- [What it does](https://example.com/features): the capability list, current as of today

Three rules I would apply after doing this exercise:

Cap it. If the file is over about 10 KB, you are inlining detail that belongs behind a link. Generate a candidate list if you like, then cut it by hand.

Say what is not true yet. Ours states that the Super Agents are built and not released. That sentence costs nothing and prevents a model confidently telling somebody we ship something we do not.

Date it, or do not claim currency. A stale llms.txt is worse than none, because it presents itself as authoritative.

Point at pages, not at PDFs and downloads. The links are there so an agent can fetch detail cheaply. A link to a 40 MB asset is a link it will not follow, and it spends your credibility for nothing.

Is it worth doing at all

Honestly: the evidence that llms.txt changes anything is thin. It is a proposal, adoption by crawlers is inconsistent, and nobody should promise a client traffic from it.

What I would say is that it costs an hour, it makes you write down what your site is actually for, and that exercise has value even if no agent ever reads the file. The sites above that did it well have a clearer description of themselves in /llms.txt than on their homepage.

Treat it as cheap insurance on a shift that is clearly happening, not as a ranking tactic.

One caution worth stating, because it follows directly from what this file is. An llms.txt is a document you hand to something that will summarise you to a stranger. Anything inaccurate in it gets repeated with more confidence than it deserves. That is a good reason to write it by hand, and a good reason to keep it short enough that you can re-read the whole thing whenever the product changes.

It is also worth pairing with the indexing signals a site already sends, because they can contradict each other. A site that publishes a friendly llms.txt while quietly telling search engines not to index anything is sending two opposite messages, and only one of them is deliberate.

Protuno’s free audit checks for the presence of llms.txt from the domain alone, alongside the sitemap and robots.txt, which is how I built the table above. Straight with you as on every post here: Iris, the SEO agent that would keep this current, is built and named but not live yet.

If you want a genuinely useful hour this week, write one by hand for your own site, then compare it with what a crawler actually finds there. The gap between the two is usually the more interesting document.

Comments