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:

← All documentation