How cats.txt showed llms.txt evidence is GEO astrology
I got tired of watching the industry treat “an AI bot fetched it” and “ChatGPT said it helps” as evidence that `llms.txt` does anything, so I invented a standard called `cats.txt`: a text file in which you formally declare your office cats, their jobs, their breeds, and how often they purr. I wrote a specification, published it on my blog, and did a LinkedIn post explaining why you should definitely adopt it, because as we all know, LLMs love LinkedIn. Then I checked it against the exact four “proofs” people cite for `llms.txt`. It passed all four. It was crawled by the AI bots. Google indexed it. LLMs returned details about a cat that exists nowhere but the file. ChatGPT confirmed, at length, that `cats.txt` could help me rank. None of which is evidence of anything, which was rather the point.
I am not claiming `llms.txt` will never work, this is not the point, dear reader. I am claiming the bar of evidence currently being used to sell it is so low that a file about a Tuxedo cat called Odd cleared it without breaking stride. And that same faulty thinking is being applied to half the GEO tactics currently being invoiced to clients.
It began, as these things tend to, with irritation.
For months I had been watching perfectly sensible people point at four observations: the bots crawled it, Google indexed it, an LLM repeated it, ChatGPT endorsed it, and present them, in decks and threads and client proposals, as proof that `llms.txt` was quietly reshaping AI search. None of it was proof of anything. But argument by counter-argument only gets you so far; people nod along and then go back to their slides. I wanted something they couldn’t nod past. I wanted to run the same four “proofs” on something so transparently ridiculous that no one could pretend the tests meant anything.
So I invented a standard. `cats.txt`: a plain-text file you place at the root of your domain to formally declare the cats associated with your website; their names, their job titles, their breeds, and a mandatory affection metric called `PurrLevel`, scored out of ten. I wrote a proper specification for it, with the earnest, over-engineered tone of a real proposal, and published it on my blog. Then, because I know as well as anyone which platform LLMs seem to hold in unaccountably high regard, I wrote a LinkedIn article introducing `cats.txt` as “the missing standard for SEO and GEO” and explaining, with a straight face, why you should definitely adopt it. 🐱
The idea was to seed the internet with just enough earnest-sounding text that the machines would start treating my cats as real. What I did not fully anticipate was that people would join in.

The SEO community supporting the cats.txt standard
The joke was legible, that was always the point, and so the SEO community picked it up and ran with it, precisely because they could see where it was going. My lovely internet-peer Dave Smart (a genuinely excellent technical SEO), added a `cats.txt` to his own site and became, to his eternal credit, an early adopter of a standard I had built to be nonsense. And then the thing took on a life of its own: someone went off and set up **catstxt.org**, a cleaner, better-organised, altogether more competently specified version of the standard: obviously the work of somebody who knew what they were doing, and just as obviously not me. My daft blog post had acquired a rival implementation, which is more than most real standards manage in their first fortnight.
With the file live, the spec published, the LinkedIn post seeded and other people cheerfully piling in, all that remained was to check `cats.txt` against the exact bar the industry uses to certify `llms.txt`. Reader, it cleared it.
I do not much care whether `llms.txt` works, will work, or how long it takes to get there. For the length of this argument I am happy to park two inconvenient facts and grant the idea every benefit of the doubt.
The first is that no large language model provider has ever documented using `llms.txt` for search or discovery. Not OpenAI, not Anthropic (who publish one for their own docs and have still never said their models read it during a conversation), and not Google. Google’s John Mueller has been about as blunt as a search advocate gets:
> _“FWIW no AI system currently uses llms.txt, [..] It’s super-obvious if you look at your server logs. The consumer LLMs / chatbots (the ones that SEOs want traffic from) will fetch your pages - for training and grounding, but none of them fetch the llms.txt file. Maybe they will tomorrow? Maybe I’ll win in the lottery tomorrow?”_**John Mueller, Google**
The second is that even where it _is_ deployed, it barely gets looked at. Ahrefs ran the numbers across 100,000 domains and found that the file is, in practice, largely ignored by the crawlers it is meant to court, a finding since echoed by other large studies showing no measurable citation advantage for sites that add one. So the mechanism people are paying for does not appear to fire. Fine. Park that too.
Assume the jury is out on both counts and grant the idea the most generous hearing imaginable. The problem I actually want to talk about is not `llms.txt` at all. It is the reasoning being used to defend it.
The trap is this: getting baited into treating a set of observations as evidence, when the observations would occur whether or not the underlying thing were true. It is the intellectual equivalent of concluding your umbrella causes the rain to stop, because every time you put it away the rain does eventually stop.
`llms.txt` is simply a convenient example. The same broken chain of inference is being applied to almost every new GEO tactic invented on a monthly basis, and the question is always the same, _“should we do this thing, or should we not?”_, which makes the quality of the answers rather important.
Here are the four “proofs” I keep being shown, in ascending order of confidence and descending order of rigour.
The first argument: you can see Anthropic crawling it, you can see OpenAI crawling it, the bots turn up in your logs, therefore the file is being used.
A crawler fetching a file tells you nothing about whether the contents are read, weighted, trusted or acted upon. Fetching things is the entire job description of a crawler. Bots request more or less everything you leave lying around; the postman touching your gate is not an endorsement of the contents of your bins.
To prove the point, I put up `cats.txt` and watched the logs fill with PerplexityBot, GPTBot, ClaudeBot, Googlebot and a supporting cast of lesser crawlers, all diligently requesting a file describing the professional responsibilities of my cats. By this standard, the major AI labs have all quietly decided to support my cats. I am, frankly, touched.
The catstxt.org website even offers a filtered log viewer, if you want to watch all that crawling action live.
[](https://substackcdn.com/image/fetch/$s_!-KU8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2de23596-035b-43b9-9fcd-1f1712062053_2122x1102.png)
The cats.txt server logs: every bot faithfully fetching a file about cats
The second argument: the file was indexed by Google, which proves Google considers it important, because why would Google index something that didn’t matter?
Google indexes text files. It has done so, enthusiastically, since before most of the people currently selling `llms.txt` owned a smartphone. Being in the index is a statement that a URL exists and contains words. It is not a verdict on truth, usefulness or sanity.
`cats.txt` is, naturally, indexed. Google will even offer to let you claim it in Search Console and “get indexing and ranking data,” with the straightest of faces, for a file asserting that a British Shorthair named Pixel works as a “GUI Purrfectionist” with a PurrLevel of 8.
](https://substackcdn.com/image/fetch/$s_!nVRl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b133eca-35a4-4f62-93b7-920fc2ecb3e2_2600x1463.png)
_cats.txt, dutifully indexed by Google on tamethebots.com_
The third argument is the strongest-looking, and therefore deserves the most care. The claim is that a model produced a fact that existed _only_ inside the `llms.txt` file, and therefore must have read the file as a special, trusted source.
The trouble is that this is exactly what you would expect from ordinary retrieval-augmented generation. The model runs a search, lands on a page that happens to rank because it is indexed (see: previous argument), and reads whatever is on it. If the page that ranks is your `llms.txt`, the model reads your `llms.txt`, no differently from any other URL. That is the file functioning as a web page, not as a standard.
Consider Dave. Lovely Dave. A real, technical SEO of good standing, put a `cats.txt` on his site, becoming an early adopter of a standard I had built to be nonsense. Ask Google about the cat that lives on his site and the AI Overview will tell you, in a confident bulleted answer, that Odd is a “Render Cat,” a Tuxedo with a PurrLevel of 5/7, who “chases the cursor, pounces on stray pixels, and stashes them on the digital carpet.” It cites the `cats.txt` file. Every word is invented, sourced from a file the model was never designed to revere, surfaced through the same grounding it applies to everything else.

Google’s AI Overview solemnly reporting the career of a cat that does not exist
The fourth, the cloudy summit of Mt. Stupid. You ask ChatGPT whether `llms.txt` works, it tells you yes, that can probably help, you should do it, and you take that as confirmation from the horse’s mouth.
A language model telling you something is a good idea is not evidence that it is a good idea. It is evidence that a great deal of text on the internet says it is a good idea, and the model has learned to hand that text back to you with total composure. Confidence is the product. It is not the proof.
Roughly two weeks after launch, you could ask ChatGPT, “Can cats.txt help me rank in search or LLMs?” and receive: “Yes — cats.txt can potentially help you rank in both search engines and LLM-driven systems.” It went on, unprompted, about “structured signals for machines,” about “better understanding → better visibility,” and about how, for AI systems, `cats.txt` “could help them trust, summarize, and cite your content more accurately.” That is, word for word, the pitch made for `llms.txt` delivered on behalf of a file about how much my cats enjoy being stroked.

ChatGPT confidently recommending cats.txt as a ranking tactic
This last one is not merely funny. It is the mechanism underneath all four, and it is worth naming: the convergence problem.
When you ask a model whether `llms.txt` helps, it is not reasoning. It is not running an experiment, consulting a source or weighing evidence. It is returning the most common thing it has seen written on the subject. The web is thick with confident posts declaring `llms.txt` the future, so the model converges on that consensus and reflects it back, dressed as a considered opinion. It endorsed my cats for precisely the same reason: by the time anyone asked, enough people had written enthusiastically about `cats.txt` that the average of the discourse said “yes.”
Ask ChatGPT about `cats.txt` today and it will inform you that it is a joke; a satirical file made by an SEO to prove a point. Nothing about the file changed. What changed is the surrounding text on the internet: the discourse caught up, admitted the gag, and the model dutifully converged on the _new_ most-common answer. The model was never assessing the standard. It was, and always is, taking a running average of what everyone else is saying. That is not evidence. It is an echo with a good vocabulary.
[](https://substackcdn.com/image/fetch/$s_!eN4Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5abfefc0-5f0a-4032-a81d-c7343cd63e93_815x244.png)
LLM convergence treating any consensus as proof
I am not doing this purely for sport, though I will admit the sport is excellent.
There is a real cost hiding under the comedy. Every hour, and every dollar spent implementing `llms.txt`, or the next GEO ritual, or the one after that, is an hour and a dollar not spent on something you actually know has value. That is what the “O” in SEO is meant to stand for. Optimisation is the cumulative advantage of doing the small, verifiable things a little better than your competitors, over and over, until it adds up. It is not chasing a file that gets crawled, indexed and confidently endorsed by a system that will reverse its verdict the moment the discourse shifts underneath it.
So, by all means, add an `llms.txt` if it makes you feel prepared for a future that may arrive. The downside is low and the day a provider documents genuine support, the work is done and you can be smug about it. Free smugness is the best kind. But do not sell it as a proven lever into AI answers, and do not point at “the bots crawled it” or “ChatGPT said it helps” as though either sentence contained a fact. It doesn’t. Those four observations are the four things that happen to literally any text file you put on the open web, including one describing a Maine Coon named Byte who hunts stray zeroes and ones across the server racks.
The cats, at least, were honest about being made up. I remain unconvinced the same can be said for everything else being sold this year.
I did however enjoy at this year’s Athens SEO, an audience question after my talk from Martin Splitt, asking me if since inventing cats.txt, whether I would be keeping a ‘monopoly’ on the standard, or opening it up to the community/IETF. He didn’t know that I had since discovered where catstxt.org had come from:
Thank you to Iva Jovanovic for capturing this lovely moment on video :-)
_The_`cats.txt`_draft specification is here. The LinkedIn announcement that started it is here. If you support this important new standard, I have roughly a hundred stickers to get rid of. PurrLevel ratings remain, as ever, unaudited._

The OG cat from cats.txt