Worked example · pottery-store.com
One store, opened completely.
pottery-store.com is ours. We own and run it, which is exactly why we can publish every measurement on it — the failing ones included — instead of the sanitised paragraph a client would reasonably ask for. Nothing below is a testimonial. It is two scans of the same store, by the same public scanner your store gets, 24 days apart.
1/4
Applicable checks passing on 3 August 2026, before any work
8/8
Passing in the scheduled scan of 27 August 2026
8
Consecutive days with every applicable check passing
Daily
How often this page's right-hand column is re-measured
Check it yourself rather than taking it from us: put pottery-store.com into the scanner, or read the artifacts directly — /.well-known/ucp, /llms.txt, /robots.txt.
Check by check
What each check said, then and now.
The left column is the scan of 3 August 2026, verbatim. Two checks did not exist in the register on that date and are marked as such rather than back-filled — an invented measurement is the one thing a case study cannot survive.
-
UCP-01 /.well-known/ucp profile conforming to UCP 2026-04-08
Before · 3 Aug 2026 ✕ FAIL
/.well-known/ucp exists but is not valid JSON
Now · 27 Aug 2026 ✓ PASS
UCP 2026-04-08, 1 service binding (mcp), 2 capabilities (catalog.search, catalog.lookup)
-
MCP-01 Advertised MCP endpoint reachable
Before · 3 Aug 2026 ✕ FAIL
No MCP endpoint advertised (checked the UCP manifest and page metadata)
Now · 27 Aug 2026 ✓ PASS
MCP endpoint completes the initialize handshake (protocol 2025-06-18, server pottery-store) and lists 5 tools, 5 with a description and input schema
-
BOT-01 robots.txt policy for AI shopping crawlers
Before · 3 Aug 2026 ✓ PASS
GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and Google-Extended may crawl
Now · 27 Aug 2026 ✓ PASS
GPTBot, ClaudeBot, PerplexityBot and 8 more AI crawlers may crawl the store and its product pages; no noindex/noai directives on the homepage
-
AGENT-01 AI agent user-agents served at the edge
Before · 3 Aug 2026 — not measured
Not in the register on this date — added after the baseline
Now · 27 Aug 2026 ✓ PASS
The edge serves the storefront to a caller announcing itself as GPTBot and ClaudeBot exactly as it does to the scanner — nothing at the edge turns AI shopping agents away
-
CRAWL-01 Crawl limits on search and faceted URLs
Before · 3 Aug 2026 — not measured
Not in the register on this date — added after the baseline
Now · 27 Aug 2026 ✓ PASS
robots.txt bounds catalog search and faceted URLs while leaving products and categories crawlable — the expensive URL space is closed to crawlers without costing AI visibility
-
LLMS-01 /llms.txt present
Before · 3 Aug 2026 ✕ FAIL
/llms.txt returns an HTML page, not plain text
Now · 27 Aug 2026 ✓ PASS
/llms.txt present (3077 bytes of plain text) — structured: has a markdown title, 4 sections, 0 links
-
FEED-01 Product structured data completeness (25+ agent attributes)
Before · 3 Aug 2026 — N/A
No product catalog detected — check not applicable for this domain
Now · 27 Aug 2026 ✓ PASS
19 of 35 weighted points for agent-expected product attributes (pass mark: 16), averaged across 3 sampled products — critical attributes missing: gtin, offers.shippingDetails, offers.hasMerchantReturnPolicy
-
SCHEMA-01 Product, Offer, AggregateRating JSON-LD on a product page
Before · 3 Aug 2026 — N/A
No product catalog detected — check not applicable for this domain
Now · 27 Aug 2026 ✓ PASS
Product and Offer JSON-LD present (no AggregateRating)
A pass is not a perfect score. FEED-01 above still names attributes the catalog does not carry — the check reports them because a store that stops reading its own findings stops improving. That is the same report your scan produces.
What moved the numbers
Four pieces of work, each tied to a check.
Every line names the check it moved, so a claim here can be walked back to a measurement instead of being taken on trust. This is the same shape as a sprint's output — an audit, an architecture, one working path, a roadmap — run on our own store first.
Moved FEED-01 · SCHEMA-01
A catalog an agent can actually read
The storefront was rebuilt so every product page publishes Product and Offer structured data from the same catalog the page renders — price, availability, identifiers and category, not a marketing description an agent has to parse.
Moved UCP-01
A profile that says what the store supports
A valid UCP profile at /.well-known/ucp, declaring the shopping service and the catalog capabilities the store answers — replacing a file that existed but was not valid JSON, which is the worst of both worlds: an agent finds it and then cannot use it.
Moved MCP-01
Live price and stock as tools
An MCP endpoint an assistant can call for search, product lookup and detail, answered from the live catalog. It completes the handshake and every tool carries a description and an input schema, which is what makes it usable rather than merely present.
Moved AGENT-01 · CRAWL-01 · BOT-01 · LLMS-01
Open to buyers, bounded for crawlers
The edge serves AI shopping agents the same storefront it serves anyone else, while robots.txt fences off catalog search and faceted URLs — the expensive, infinite half of the URL space. Products and categories stay crawlable. A /llms.txt in plain text replaced an HTML page pretending to be one.
What this does not prove
The limits of one store.
- It is our store, not a client's. We had no legacy integrations to negotiate with and nobody to convince. A store with an ERP, a PIM and a decade of customisation is a harder problem, and the sprint exists because it is.
- Passing eight checks is readiness, not revenue. These checks measure whether an agent can find, read and trust your catalog. Nobody — us included — can promise placement in an assistant's answer, and the FAQ says so at length.
- The protocols are young. A store that passes today can fail after a specification revision. That is the whole argument for measuring on a schedule rather than once, and it is why this page's right-hand column is a query, not a paragraph.
Now do the same for your store.
The scan is the same one that produced the column on the right. It reads eight public things, writes nothing, and takes fifteen seconds.