We Crossed Two Agent Conventions on the Same 77 Vendors. Doing One Does Not Predict Doing the Other.
Crossed on 77 AI visibility vendors, doing one convention does not predict the other, a 5 point gap. Repeated on 2,147 cited domains in three strata, it does.
We have swept this category three times for three different agent conventions, and never once checked whether it was the same vendors each time. So we asked all 77 active vendors in our verified catalogue for /llms.txt on the same day we asked them for markdown, and crossed the two. Vendors that serve markdown ship llms.txt 62% of the time. Vendors that do not serve markdown ship it 57% of the time. The gap is 5 points, and one vendor in the smaller group is worth 8.
Adoption of one agent convention tells you essentially nothing about adoption of another. It is cost, not creed.
Disclosure: EchoWi sells AI visibility measurement, so every vendor in this table competes with us in some part of what we do, and we are in the table ourselves. The method is below in full: the population is our published catalogue, the request is a single GET with a plain client, and the rule for what counts as a file is stated before the counts. Anyone can repeat it against us in an afternoon.
The short version
- The frozen statistic came in at 5 points against a threshold of 10. We wrote down before the first request that a 10 point gap would make convention adoption a disposition, and anything under 10 would make it independent. It is 5.
- 62% against 57%, on 13 markdown servers and 61 non-servers readable for both conventions.
- The gap is smaller than one vendor. With 13 vendors in the smaller cell, a single one changing its mind moves that rate by 8 points.
- 5 vendors serve markdown and ship no llms.txt at all, including two of the best known names in the category.
- 43 of 74 ship llms.txt, 58%. Five days earlier, on a smaller catalogue, it was 44 of 69.
- 2 answered 200 with HTML, which is a wildcard route rather than a file, and is the same trap that passed 63 vendors in our markdown sweep.
Why this was worth a day
This register already held three separate sweeps of the same category:
| Convention | Result | Date |
|---|---|---|
robots.txt blocking AI crawlers | 0 of 68 block any | 17 August |
llms.txt published | 44 of 69 ship one | 14 August |
| Markdown served to agents | 14 of 77 over four paths | 19 August |
Three answers to “does the category that sells AI visibility practise what it preaches”, and no way to tell whether they describe the same vendors. That is not a detail. If the same firms do all three, adoption is a disposition and a buyer can treat any one convention as a signal about the rest. If the three are independent, then each convention is its own decision, and reading one tells you nothing about the others.
The only way to know is to cross two of them at vendor level, on the same population, on the same day. So that is what this is.
What we did
Every active vendor in our catalogue, 77 of them, asked for /llms.txt with an ordinary HTTP client on 19 August 2026. One retry on a transient failure, because a connection that fails once and a file that is not there produce the same empty result and only a second reading separates them.
A 200 that returns HTML is not an llms.txt. It is a catch-all route answering every path on the site, and counting it would inflate the result. That rule comes from our markdown sweep, where 63 of 75 vendors answered a markdown request with HTML and a 200 status: a checklist that reads status codes passes all 63 while every one of them is failing. The test here is on the body, never on the status.
Vendors behind a bot challenge on either side are excluded rather than guessed at. A challenge is a fact about a vendor’s edge, not about what it publishes.
That leaves 74 vendors readable for both conventions. Every row is in our measurement register, vendor by vendor, so the cells below can be recounted rather than taken on trust.
The result
| Group | Ships llms.txt | Rate |
|---|---|---|
| Serves markdown | 8 of 13 | 62% |
| Does not serve markdown | 35 of 61 | 57% |
| Gap | 5 points |
The direction is the one we predicted and the size is not. We had written that a gap of 10 points or more would let us call adoption a disposition. At 5 points it does not clear that bar, so the prediction is refuted and this piece says so rather than quietly reporting the direction and hoping nobody checks the threshold.
And the number deserves one more piece of context, because 5 points sounds small but not meaningless. The markdown group holds 13 vendors. One of them changing its mind moves that rate by 8 points. The difference between the two groups is smaller than the resolution of the smaller group.
The four cells, which say more than the gap
| Ships llms.txt | No llms.txt | |
|---|---|---|
| Serves markdown | 8 | 5 |
| No markdown | 35 | 26 |
The interesting cell is the small one. 5 vendors serve markdown to agents and publish no llms.txt at all: Dageno, GetMint, Limy, Peec AI and Profound. Two of those are among the most visible companies in this category. They built the harder thing, a build step that emits a second representation of every page, and skipped the easier one, a single file written once.
That is the clearest evidence in the table that these are separate decisions rather than one attitude expressed twice.
The opposite cell is much larger: 35 vendors publish llms.txt and serve no markdown, which is what you would expect if adoption tracks cost. llms.txt is a file you write once. Markdown twins are a pipeline change on every page.
And 26 do neither.
Where we sit
EchoWi is in the top-left cell: we serve markdown by content negotiation and by an /index.md sibling, and we ship llms.txt, regenerated on every build. That is not a boast, it is a disclosure, and it is why the disclosure sits at the top of this article rather than the bottom.
It is also worth saying what our own edge log says about whether any of it is used. Over a week of real traffic, no agent fetched a single markdown twin, while 11 of 13 agents fetched the machine-readable text files. We keep generating both because a week is a week and the cost is nil. But nobody should sell either convention as a measured visibility lever without a fetch log to point at.
And the answer changes when one of the two is not a chore
This was measured on vendors, and on two conventions that are both an implementation task. On 25 August 2026 we ran the same shape of test on a different population and a different pair: the domains AI actually cites, crossing publishing an llms.txt against what their robots.txt says about AI crawlers.
There it separates. Pooled across two disjoint strata, the publishers name some AI crawler rule 34 per cent of the time against 24 per cent for everyone else, and disallow one 9 per cent of the time against 16 per cent. Both directions hold.
The distinction that survives both studies is not the convention, it is the
kind of thing you are crossing. Publishing an llms.txt and serving markdown
are both chores: they cost work, their adoption follows cost, and crossing them
separates nothing. What your robots.txt says about an AI crawler is not a
chore, it is a posture. Crossing a chore against a posture does separate,
because whoever bothers to write the file that serves content to a model tends
to let the model in.
So this piece’s sentence stands as written and gains a boundary: one convention does not predict another when both are work. The detail and the intervals are in the llms.txt study over cited domains, which also says which of its two arms leaves the blocking gap short of its threshold.
The rate moved, and the sample moved with it
43 of 74, or 58%, ship llms.txt today. Five days ago the same sweep on a smaller catalogue returned 44 of 69. Both numbers are correct on their day and their denominator, and the catalogue grew by nine vendors in between.
We predicted the rate would land between 55% and 72%, bracketing the earlier figure, and it did. What that says is worth more than the point estimate: a category adoption rate is a property of your sample as much as of the category, and anyone quoting one without its denominator and its date is quoting an accident.
What a buyer does with this
The practical consequence is narrow and firm. No convention predicts another, so you cannot use one as a proxy for a vendor’s general agent-readiness. If you want to know whether a vendor implements something, check that thing. A vendor that publishes a beautiful llms.txt may serve you HTML when you ask for markdown, and one that serves perfect markdown may have no llms.txt at all, and both are common enough here to be the normal case rather than the exception.
Which also means the question to ask a vendor is not “are you agent-ready”. It is a list, and the list is short: does your site serve markdown when asked, do you publish llms.txt, does your robots.txt let the crawlers in, and can you show a log of any agent using any of it.
The same instinct is worth applying to the advice itself: we asked two AI surfaces what LLM SEO is, collected the fourteen pages they cited, and found every one of them giving the same eight tips with no measurement behind any of them. Six of the eight are in this register, and two of the six do not survive it.
The same question on the open web, and the answer flips
Everything above is about 77 vendors. That is a population selected for selling AI visibility, so the obvious next question is whether the conclusion travels. We froze a design before the first request and asked the same two conventions of 547 registrable domains this register has recorded as cited three or more times by an AI answer.
466 answered a negotiated homepage request. 45 of them serve markdown, 9.7 per cent, against the 16 per cent the vendors gave on the identical homepage question. So the category does serve it more, by about 1.6 times.
Then the cross-tab that this piece exists for:
Publish llms.txt | Rate | |
|---|---|---|
| Serve markdown, 45 | 30 | 67 per cent |
| Do not, 455 | 178 | 39 per cent |
A gap of 28 points, at z = 3.58. On vendors the same cross-tab gave 5 points. The threshold written into the frozen design was 20, so the sentence in this article’s title does not survive contact with the open web, and saying so is the whole point of writing the threshold down first.
Both numbers are right, and the difference is the population
Look at the group that does not serve markdown. Among vendors it ships llms.txt 57 per cent of the time. On the open web, 39. In a category where almost everyone already does the cheap chore there is very little contrast left to measure, and 74 vendors with a small cell of twelve had no power to see 28 points even if they had been there. This article said as much about its own fragility at the time: one vendor in the smaller group was worth 8 points.
So the sentence that survives is about scope rather than mechanism. Where nearly everyone already does the cheap chore, doing the expensive one tells you nothing extra. Where doing chores at all varies, the two travel together.
The chore also goes with the posture, and that part replicates
The same 45 against their own robots.txt, over the 512 hosts whose file we could read:
| Names an AI crawler rule | Disallows one | |
|---|---|---|
| Serve markdown, 45 | 42 per cent | 4 per cent |
| Do not, 467 | 31 per cent | 17 per cent |
The naming gap is 11.6 points at z = 1.60, which is a direction and not a result. The blocking gap looked like the one that held, at z = 2.24. It did not, and the next section is why.
We ran it on two more strata, and one half of this did not survive
Everything above is one stratum: domains this register has recorded as cited three or more times. Before touching the other two we wrote the design down, with five predictions and their thresholds, and committed it. The two remaining strata are 379 domains cited exactly twice and 1,221 cited exactly once, disjoint from the first and from each other, checked on both population routes before a single request went out. A repeat there is a replication, not a bigger sample.
| Stratum | Answered | Serve markdown | Publish llms.txt, serving vs not | Name a crawler rule | Disallow one |
|---|---|---|---|---|---|
| Cited 3+ | 466 | 45, 9.7 per cent | 67 vs 39 per cent, z 3.58 | 42 vs 31 | 4 vs 17 |
| Cited twice | 328 | 26, 7.9 per cent | 64 vs 42 per cent, z 2.13 | 31 vs 24 | 15 vs 10 |
| Cited once | 1,065 | 83, 7.8 per cent | 79 vs 41 per cent, z 6.62 | 51 vs 25, z 5.12 | 9 vs 9, z 0.24 |
The adoption rate is flat: 9.7, 7.9 and 7.8 per cent. We predicted the least-cited stratum would come out lower by at least two points, and it comes out lower by 1.9, so the direction is right and the size misses the threshold we wrote down. Serving markdown is not a property of how often you get cited.
The chore-against-chore result replicates and gets stronger. Twenty-eight points, twenty-two, thirty-eight, and the largest stratum gives the largest gap at z = 6.62. On 1,065 domains, 79 per cent of markdown servers publish an llms.txt against 41 per cent of everyone else. Doing one chore does predict doing the other, out here.
And the blocking result does not replicate, so we are withdrawing it. We published this morning that markdown servers block AI crawlers at a quarter of the rate of everyone else. That was one stratum. In the second the difference runs the other way, and in the third, over 1,132 hosts whose robots.txt we could read, it is 8.5 per cent against 9.3 per cent with z = 0.24. There is no difference. The threshold that retired it was written before the data existed, which is the only reason a claim of ours dies the same day it was made instead of aging into the corpus.
The naming half does replicate, and it is the stronger half now. Half of the markdown servers in the largest stratum have written an AI crawler rule of some kind, against a quarter of everyone else, at z = 5.12. What travels is not “these sites let crawlers in”. It is that they have an opinion written down at all.
So the distinction that survives all three strata is the one this article was built to test, and it is narrower than it was this morning: doing one chore predicts doing another chore, and predicts having a posture, but says nothing about which posture.
The limit does not move. A site serving markdown from its homepage is close to definitionally a modern documentation or developer product, and that kind of site writes AI rules for reasons that have nothing to do with having done a chore. No sample size separates doing the work from being that kind of site, and 2,147 domains do not either.
One instrument note that travels with every figure here: each convention carries its own denominator. The bot challenge was 73 of 547 for the homepage request and 26 of 547 for robots.txt on the same population, nearly triple, because a homepage GET with an unusual Accept header wakes defences a robots.txt GET does not. Every cell above names the hosts that answered the specific question it asks.
The control this study never ran, and what it separates
Everything above has a hole in it, and both this piece and its sibling say so in their own words: the two tasks may be marking a site that does optional standards work rather than one that has thought about AI. Every control we had run varied the context. Another stratum, another convention, another pairing. All three measure whatever effect is there more precisely, and not one of them asks whose the effect is.
So we asked the same 547 cited domains for a task that has nothing to do with
AI: /.well-known/security.txt. Optional, standardised, about the same effort
as an llms.txt, and about security. The design, the thresholds and the reason
for rejecting a hosting-platform marker were written and committed before the
first request.
90 of 479 domains that answered publish one, 18.8 per cent. And it predicts nothing:
| Behaviour | Publishes security.txt | Does not | Gap | z |
|---|---|---|---|---|
| Publishes llms.txt | 44.2% (38/86) | 39.1% (149/381) | +5.1 | 0.87 |
| Names an AI crawler rule | 30.0% (27/90) | 25.7% (97/378) | +4.3 | 0.84 |
| Disallows at least one | 16.7% (15/90) | 13.0% (49/378) | +3.7 | 0.92 |
Serving markdown moves the llms.txt figure by 28 points. Publishing a security.txt moves it by 5.1, and the same three behaviours land inside the noise. The threshold that would have forced us to rewrite this article was 20 points. It came nowhere near.
That is the confounder separated. Doing optional standards work does not predict any of the three AI behaviours. Doing an AI-facing one does.
The version of this that would have been wrong
The first run of that sweep reported the llms.txt gap as 57.2 points with z = 4.86, which is far past the threshold that rewrites the article. It was a denominator. The cross required a served file on both sides, so it ran only over hosts that already published the thing being asked about, and threw the entire non-publisher group away. A 404 is an answer: it says there is no file.
Two things caught it before anything was published. The two routes to the same
number disagreed, which is the whole reason there are two. And the control on
the parser passed while the result did not look like the world: Googlebot came
back allowed on 502 of the 503 domains that served a robots.txt, so the rules
were being read correctly and the arithmetic was not.
What this does not show
- Nothing causal. Two conventions read on the same day describe a population, they do not explain it. A vendor that does both may do so for reasons that have nothing to do with either.
- Two conventions, not three, in the vendor table. We did not cross
robots.txtinto that one. Our separate sweep found zero of 68 vendors blocking any AI crawler, which is a column with no variance and so cannot discriminate anything. - One path for llms.txt. We asked for
/llms.txtat the apex. Our markdown study learned the hard way that a homepage-only sweep undercounts, and a vendor publishing the file somewhere else would read as absent here. - Adoption is not use. Neither convention says whether any crawler reads the file. Our own edge log recorded zero markdown-twin fetches in a week.
- A snapshot. One reading, one day. The set of vendors is our published catalogue, which is why it is published.
- One withdrawn column. The open-web section crosses
robots.txtas well, on 2,147 domains in three disjoint strata, and one half of that cross did not survive the other two strata. It is withdrawn in place rather than deleted, because a claim that lasted a morning is worth more to a reader than a table that never carried it. - The control is a proxy too.
security.txtis not a perfect false X: a site that publishes one probably has a security team, which correlates with size the same way a hosting platform does. What it is, and why it was chosen, is an optional standardised task that does not look at AI, which is the variable the confounder names. - Files, not the pitch. Both conventions here are files a vendor ships. Whether the page that sells names the engines it watches is a different question with a different answer, and we asked it separately in the vendors who never name an engine: 11 of 77 do not.
Common Questions About Agent Conventions
Does serving markdown mean a vendor is more likely to publish llms.txt?
Barely. Vendors that serve markdown publish llms.txt 62% of the time and vendors that do not publish it 57% of the time, measured on the same 74 vendors on the same day. The 5 point gap is smaller than one vendor’s worth of movement in the smaller group, so the honest answer is that the two are independent.
How many AI visibility vendors publish llms.txt?
43 of the 74 we could read, or 58%, on 19 August 2026. A separate sweep five days earlier on a smaller catalogue returned 44 of 69. Both are correct for their date and denominator, which is the point: quote the denominator or do not quote the rate.
Why does a 200 status not mean a vendor publishes llms.txt?
Because many sites answer every path with their application shell. Asking for /llms.txt and getting a 200 with HTML means a wildcard route replied, not that a file exists. Our markdown sweep found 63 of 75 vendors doing exactly this under a markdown request, so a checklist that scores status codes would have passed all of them.
Which vendors serve markdown but publish no llms.txt?
Dageno, GetMint, Limy, Peec AI and Profound, as read on 19 August 2026. They implemented the more expensive convention and skipped the cheaper one, which is the strongest single sign in this data that the two are separate decisions.
Should I choose a vendor based on which conventions they implement?
Not on its own. Nothing here shows that implementing a convention makes a product better at measuring your visibility, and our own edge log shows no agent fetching one of these formats at all in a week. Treat it as one question among several, and ask for the fetch log.
Ask an AI about this article
Opens your assistant with this page already loaded, so you can check the numbers, argue with the method or ask what it means for you.
- ChatGPT (opens in new tab. the question is pre-filled, press enter to send it)
- Claude (opens in new tab. the question is pre-filled, press enter to send it)
- Perplexity (opens in new tab)
- Google AI Mode (opens in new tab)
Perplexity and Google answer straight away. ChatGPT and Claude fill the box and wait for you to press enter, which is their behaviour and not something we can set.