When the Traffic Stops Being Human

Interview cover: "When the traffic stops being human" — 762 Magento stores measured, 94% changed nothing, 458 shops named by AI assistants

CoderLegion asked me to do a long-form interview for their Developer Stories series — ten questions on the move from Magento engineering into AI Engine Optimization, what breaks when an agent tries to buy something, and what I have measured rather than assumed.

Readable is not chosen. Chosen is not transactable. That is the argument. The interview is the narrative; this page is the evidence trail — the evidence behind the empirical claims is published here, with the methodology at the bottom.

Three problems, not one

Most writing about AI and ecommerce treats visibility as a single thing. It is not. Three separate questions sit behind it, and a store can pass one while failing the next.

readable
Can a machine reach your store and interpret what it sells?
selectable
Given that it can, does an assistant actually name you in an answer?
transactable
Given that it named you, can an agent complete the purchase?

I have tested all three, with different kinds of evidence: population scans, a pre-registered naming study, and a live agentic checkout. They behave very differently. This is the layered model I use throughout my work — see the AI Commerce Stack for the full version.

Readable: most stores are still exposing very little

I scan live Magento stores drawn from the top 200,000 domains of the Tranco list: 462 in July, 762 in August. In the August scan, about 11% of the frame served an llms.txt and about 10% published Product JSON-LD.

The second scan is the part that matters. Of those stores, 376 were measurable in both runs, a month apart. In that matched panel, 94% showed no change in any measured signal, and not one store had added product markup between the two scans.

On these signals, in this panel, that is not a market adopting something slowly. It is a market that has barely started.

376 Magento stores, measured twice: 94% did not change →
462 Magento stores scanned: the baseline →

Selectable: being readable does not make you chosen

This is the finding I least wanted. I ran a pre-registered study — analysis plan sealed and hashed before I saw any data — on businesses that ChatGPT, Gemini and Perplexity had actually named in buying answers. 458 unique domains went into the analysis.

The outcome I measured was how often a business was named — repeatedly versus exactly once. Not ranking, not traffic, not conversion. The question was whether four observable signals separated those two groups.

None of them did. One, llms.txt, ran in the opposite direction in every cut.

Every business in that sample had already been named at least once, so the study says nothing about what gets a store into an answer in the first place. But within those limits it is a null result on the signals I build tooling for, and I published it as one.

AI assistants named 458 shops →

What those llms.txt files actually contained

While working on that study I read the first line of every llms.txt my scanner had found. 71% matched a single generated template, differing only in the brand name. The file was present. It was not saying anything.

That is the difference between compliance and communication — and the reason I do not think AEO is a checklist.

Transactable: discovery is a reading problem, transaction is a contract problem

The part I see far less work on is what happens when something machine-shaped actually tries to buy: no session, no cookie consent, a price rendered client-side, an API demanding a token the agent will never have. My own agentic feed endpoint returned 401 to anonymous callers — correct for a REST API, fatal to that agentic path when the agent has no account with you.

I built the full path on my demo store as MCP tools and placed real orders through it from an AI assistant. Cart to placed order, with the guardrails enforced server-side.

Claude places a real Magento 2 order via MCP →

Method

Magento store scans

  • Frame: Magento 2 stores detected in the top 200,000 domains of the Tranco list
  • Scanned: 462 stores in July 2026, 762 in August 2026
  • Matched panel measurable in both runs: 376 stores
  • Unchanged across the two scans: 94%; stores that added product markup: none
  • August frame: llms.txt 11%, Product JSON-LD 10%
  • Signals collected by AngeoBenchmarkBot, a low-rate identified research crawler

AI naming study

  • 458 unique domains, all previously named by ChatGPT, Gemini or Perplexity in buying answers
  • Analysis plan pre-registered — sealed and hashed before the data was seen
  • Outcome measured: frequency of naming (repeatedly vs. exactly once)
  • Signals tested: AI-crawler blocking, llms.txt, Product JSON-LD, offers.availability
  • Result: no signal separated the groups; llms.txt ran in the opposite direction in every cut
  • Of the llms.txt files found, 71% matched a single generated template

What this changes

Readable is not chosen. Chosen is not transactable. Each layer needs its own work, and the evidence for each is different — which is why I would rather publish the measurements, including the ones that went against me, than sell a checklist.

The interview covers the rest: why the modules are open source, what I decided not to build and why, and what I would tell a developer starting on this today.

Original interview on CoderLegion