A shop is the only kind of site the rubric scores on a check nobody else gets. C5, commerce actionability, is four points that a SaaS product or a publisher never sees, because for them it is marked not applicable and its points move elsewhere. Three of B2's five points turn on Product or Offer markup for a shop and on other types for everyone else, and D3 asks a shop for shipping and returns pages where it asks everyone else for terms. And a shop's decision on AI crawlers is the simplest of any site type. Those are the four places a retailer's report differs from the rest of the leaderboard, taken here in the order an agent meets them, with the fixes ranked by effort at the end.
What the crawler does on a shop
Site type is decided once, from the raw HTML of the homepage. If the homepage's JSON-LD contains Product, Offer or OnlineStore, or the HTML contains a /cart path, the phrase "add to cart" or "add to bag", or the word "shopify" or "woocommerce", the site is typed e-commerce. Most storefronts trip one of those. A brand homepage with no cart link and no product markup does not, and is typed general, at which point C5 is redistributed rather than scored and B2 asks for an Article or a FAQPage instead of a Product. The type appears at the top of the report, so a wrong one is visible; the cheapest correction is an OnlineStore block in the homepage's JSON-LD alongside the Organization.
The crawl is the homepage plus up to five more pages, chosen from the sitemap and the homepage's links. Paths under /product, /products, /shop and /collections are ranked near the top of the selection, /cart and /checkout near the bottom. That ordering is the whole meaning of the rubric's phrase "within two clicks of the homepage": the engine's version is "within the crawl", which means linked from the homepage or listed in the sitemap under a conventional path. Every signal below is read from the raw HTML of those six pages, with no cookies, no session and no JavaScript executed, which is also how an agent doing a plain fetch arrives.
Those six pages are the ones an agent fetches to do its job on a shop. A product page, to read a price and a stock state. A cart or checkout path, to find out whether a purchase can begin without an account. A shipping page and a returns page, to answer the two questions a person asks before they let an agent buy anything.
C5, the four signals
C5 is worth 4 of the 25 actionability points and carries a High effort rating. Each of its four signals is one point, and the evidence names them: productPageFound, offerSchema, cartReachable and expressCheckout.
The product page is the first crawled page whose URL contains /product/, /products/, /shop/, /collections/ or /item/. A store using /p/48213 or a bare slug at the root has product pages the engine does not recognise as such.
The Offer signal is a presence test. The raw HTML of that product page, or of the homepage if no product page was crawled, is searched for the literal text "@type": "Offer", with any whitespace around the colon. It does not open the Offer or compare its price to the page; an AggregateOffer alone does not pass, because the string is different. Product and Offer schema that matches the page covers what a correct block looks like and how to do the comparison yourself.
The cart signal is true when the first crawled page whose URL contains /cart, /checkout or /basket returned a 200 with a body to an anonymous request. Because product paths outrank cart paths in the page selection, a large catalogue can fill the five extra slots before the cart is reached, as of v1.0.1; the evidence shows which URLs were used.
The express signal searches the cart page, or the homepage if none was crawled, for shop pay, apple pay, google pay or guest checkout, case-insensitively and with or without the space. Guest checkout is an agent feature sets out what each signal means at the point of purchase and how a login-gated cart shows up in the evidence.
B2 and D3, the commerce readings
B2 collects every @type from the JSON-LD on all crawled pages. Two points for an Organization or a WebSite anywhere in that set; three points, for a site typed e-commerce, if the set contains Product or Offer. The walk is recursive, so an Offer nested inside a Product's offers is found. The definition of the type is at schema.org/Product. Either type alone earns the three points, but C5 looks for the Offer specifically and so does an agent looking for a price, so emit both, server-side, on the product template.
D3 for a shop wants a linked privacy policy, two points, plus a shipping or delivery page and a returns or refunds page both linked from a crawled page, two more. The test is on href values, so the pages have to be linked, not merely exist. A shop that links returns but not shipping loses both of the second pair.
Why no A2 token is worth blocking
A2 is six points, one per token, for GPTBot, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot and Google-Extended. The six AI crawlers works through the decision for four kinds of site, and the commerce row is the one with nothing on the other side of the ledger.
A product description was written to be repeated. A training crawl contributes copy you wanted circulated. A search-index crawl is how an answer to "which of these should I buy" can point at your product page rather than a competitor's. And a block on Claude-User refuses the shopper who pasted your product URL and asked about sizing or delivery. There is no token in the six whose block protects an asset a shop has; each one removes a route by which a purchase could start. Allow all six at the root, by name, and if there is editorial content you do value, withhold it by path rather than by token. Then confirm with check A5 that the edge agrees with the file, because a CDN default can refuse the same crawlers before robots.txt is read.
Fixes in order of effort
| Order | Fix | Checks | Effort |
|---|---|---|---|
| 1 | Allow all six A2 tokens at the root in robots.txt, each named in full | A2 | Minutes |
| 2 | Link the shipping and returns pages from the footer on every page | D3 | Minutes |
| 3 | Link at least one product page under /products/ or another recognised segment from the homepage, and list product pages in the sitemap |
C5 | Minutes |
| 4 | Add an OnlineStore block to the homepage JSON-LD so the type is never in doubt |
B2, C5 | Under an hour |
| 5 | Turn on guest checkout or wallet buttons, and confirm the words appear in the server-rendered cart HTML | C5 | A platform setting, usually |
| 6 | Emit Product with a nested Offer, carrying price, priceCurrency and availability, server-side on the product template |
B2, C5 | Template work |
| 7 | Open the cart path to an anonymous GET that returns the basket as HTML | C5 | Depends on the platform |
| 8 | Server-render the product page so the price is in the raw HTML, not drawn by a script after load | A7, C5 | Architecture |
The first four are configuration and take an afternoon between them. The last two are where a headless storefront pays for its architecture, and where the implementation service does most of its commerce work.
Check your own site
The free scan tells you whether the engine typed you as a shop and, if it did, which of the four C5 signals it found, which schema types it collected for B2, and which of the six A2 tokens your robots.txt blocks. The e-commerce leaderboard shows other shops on the same checks, and the definitions are on the methodology page under actionability, understanding and discovery and access.