Documentation — Readiness scanner checks
Readiness scanner checks
The eight checks the free scanner runs against a storefront, what each one looks for, why agents care, and how to read the score.
The scanner is read-only: it fetches public URLs of your storefront the way a shopping agent would and never logs in, submits a form or places an order. A run takes under a minute. The same eight checks feed the benchmark, the module's free in-admin diagnostics and our monitoring, so a score means the same thing everywhere.
The checks
| ID | Check | What passes |
|---|---|---|
| UCP-01 | /.well-known/ucp profile |
A profile at that path that validates against the Universal Commerce Protocol spec, version 2026-04-08 — the same validator our own profile has to pass. |
| MCP-01 | Advertised MCP endpoint reachable | The MCP endpoint the UCP profile names answers a handshake and lists its tools. A profile that advertises a dead endpoint fails. |
| BOT-01 | robots.txt policy for AI shopping crawlers |
The policy for the crawlers agents use (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, ChatGPT-User, Claude-User, Applebot-Extended, Amazonbot, Bingbot, meta-externalagent, CCBot) lets them read product URLs, not only the homepage. |
| AGENT-01 | AI agent user-agents served at the edge | robots.txt states a policy; the edge states the truth. The scanner fetches a page as GPTBot and ClaudeBot and checks the CDN or firewall does not answer 401/403/429/503 to that user agent. |
| CRAWL-01 | Crawl limits on search and faceted URLs | Catalog search and layered navigation generate unlimited distinct URLs, each a cache miss; the check asks whether robots.txt bounds them (/catalogsearch/result/, /search, …). |
| LLMS-01 | /llms.txt present |
A plain-text index of the site written for language models exists at the root. |
| FEED-01 | Product structured data completeness | Sampled product pages (up to three, found through the sitemap) score at least 16 of 35 weighted points across 27 attributes. The eight an agent cannot transact without — name, image, GTIN, price, currency, availability, shipping details, return policy — count double. |
| SCHEMA-01 | Product, Offer, AggregateRating JSON-LD | A product page carries valid JSON-LD for the product with an offer and, where reviews exist, an aggregate rating. |
Reading the result
- Score is the number of checks passed out of eight. It is a readiness measure, not a ranking prediction — nobody can promise placement in an AI answer, and we do not.
- Not applicable appears when a check cannot run (for example the store has no reviews, so there is no rating to look for). It does not count against the score.
- Blocked means the store refused the scanner (401, 403, 429, 503 or a challenge page); unreachable means it did not answer. Neither is reported as a failed check — we never assert something about a store we could not observe — but every real agent meets the same wall, so fixing the edge rule is usually the first task.
- Not decidable on FEED-01 or SCHEMA-01 means the scanner found no product URL to sample (most often a sitemap that lists no products). Give the scanner a product URL and it samples that.
Re-running
Scan as often as you like. If you asked for the engineer-reviewed report, the review is of the run you submitted; re-scan after fixes and compare.
Last verified: