This is the group where a measurement and a forecast sit next to each other, so they are labelled.
What is measured
- Half the business sites we crawled are agent-invisible: an assistant fetching them the way an assistant fetches gets nothing it can act on. The count and the rate are in the table below, rendered from the crawl rather than typed here.
- Where tools are exposed at all, it is overwhelmingly platform-shipped — Wix and Shopify — rather than authored by the business. It is not exclusively so, and the table on where the standard stands carries the remainder.
- The WebMCP standard is accepted at the W3C community group, live as a Chrome origin trial, with native browser support targeted for H2 2026.
Agent-invisible is a verdict about one fetch, and the code that assigns it is the
definition — quoted here rather than described, from tools/fleet_crawl.py:342:
agent_invisible = (None if verdict in ('UNREACHABLE', 'CRAWLER_ERROR') else verdict in ('DEAD_OR_ERROR', 'JS_ONLY', 'EMPTY'))So the rate divides by the sites we could judge, not by every row. When our crawler never reached a host, the value is NULL rather than false — we could not attribute it, and calling those sites fine would be as wrong as blaming them. They are shown beside the rate rather than folded into it.
Sources — fleet crawl 2026-08-28, rendered from the snapshot below; vendor documents held and hash-verified.
Those are observations. They were taken once, on stated dates, and can be taken again.
What is a bet
That agent-driven access becomes a primary way customers reach a business, and that sites built only for human browsing lose ground to sites that are also legible to software.
This has not happened. There is no measurement of it, because you cannot measure a thing that is still ahead of you. It is a position, and this site takes it — but it is not dressed up as data, and no number on this page is offered as proof of it.
If the bet is wrong, a site built this way is still fast, still static, still structured, and still works perfectly for people. The downside is small. That asymmetry is most of the argument.
What building for it actually means
Almost none of it is exotic:
- Send the content in the first response. If the page needs to run code before the words exist, an assistant never sees the words.
- Say what things are. Structured data turns “guess which line is the phone number” into “here is the phone number.”
- Offer actions, not just pages. A tool surface an assistant can call, mapped to what the site already does.
- Stay boring. No client-side framework to fail, no third-party script to time out.
Every one of those improves the site for people too. That is not a coincidence — an assistant and a person on a slow phone want the same thing.
Fleet crawl · 2026-08-28 · 25,478 judged
| Sites crawled | 27,112 |
| Sites we could judgea verdict was assigned | 25,478 |
| Agent-invisible | 12,827 |
| Rateof the 25,478 we could judge — not of all 27,112 | 50.3% |
| Could not judgenever reached, or our own crawler failed. Counted nowhere | 1,634 |
SNAPSHOT 2026-09-04T01:47:53Z · measured 2026-09-03T03:25:55Z · bq query --dry_run then --nouse_legacy_sql over agent_ready.crawl_v1 (frozen, 27,112 rows) · rate = invisible / JUDGED, where judged excludes UNREACHABLE and CRAWLER_ERROR (agent_invisible IS NULL, tools/fleet_crawl.py:342) · receipt receipts/crawl_v1-census.json