Is your Product schema complete enough for AI agents?
Free 20-second check. We fetch one product page the way AI crawlers do, scripts off, parse the JSON-LD and tell you which of six fields agents need are present.
It fetches one product page, scripts off
The raw HTML, the way AI crawlers read it. Whatever JavaScript would add later is not counted, because agents do not wait for it.
It parses every JSON-LD block for a Product
Then checks six fields: price, availability, brand, an identifier, shipping details and rating. The same detector the full 115-rule audit runs.
Pass, partial or fail, field by field
With the block we found shown back to you. If the page blocks crawlers we say so rather than guess. Free, no sign-up.
What we check: rule PDP-A01 in six parts
Full rule page ›The rule requires a schema.org Product with the fields shopping agents read before they will quote, compare or buy an item. The verdict comes from the same detector the full audit runs: five or six fields is a pass, three or four is a partial, fewer is a fail.
| Rule | What we check | Passes when |
|---|---|---|
| PDP-A01 · aPrice in the offer | offers.price, the one number an agent must have before it can quote you at all. | ✓ pass a price is declared in the Product's offer. |
| PDP-A01 · bAvailability declared | offers.availability. Use the schema.org vocabulary (InStock, OutOfStock): free text like 'In stock' means nothing to a parser. | ✓ pass an availability value is declared. |
| PDP-A01 · cBrand named | brand on the Product. Agents group and filter offers by brand; an unbranded product is a text match only. | ✓ pass a brand is declared. |
| PDP-A01 · dAn identifier: GTIN or SKU | gtin, gtin13, gtin12 or sku. An identifier lets an agent confirm you sell the same item as other stores and compare on price. | ✓ pass any product identifier is present and non-empty. |
| PDP-A01 · eShipping details in the offer | offers.shippingDetails. This is how an agent quotes a landed price without opening your checkout. | ✓ pass shipping details are declared in the offer. |
| PDP-A01 · fAggregate rating | aggregateRating with a value and a count. Agents use it to rank between comparable offers. | ✓ pass an aggregate rating is declared. |
Best practices any store should adopt
Each point comes with the reason it matters and the spec it rests on. None of it is visible to shoppers; all of it decides whether an agent quotes your product or a competitor's.
AI crawlers fetch HTML and leave. Schema added by a reviews app or a tag manager after load is invisible to them, even though it passes browser-based validators.
'In stock' means nothing to a parser. https://schema.org/InStock does. The same goes for conditions and price validity dates.
A GTIN lets an agent confirm you sell the same item as three other stores and compare on price. A SKU at least makes the variant addressable.
It is the field stores most often skip and the one agents most often need. An agent quoting a landed price will skip a store that makes it open checkout to find out.
A price that changed on the page but not in the schema is worse than no schema. Machine readers cross-check, and a mismatch reads as unreliable.
Three stores that get it right
All 4 passing stores ›Related articles
Resources ›Isn't this the same as Google's Rich Results test?
Partly. Google tests validity for search snippets. We test the six fields shopping agents need to quote and compare a product, with the same detector our full 115-rule audit runs, and we show you exactly which block we read.
My schema is injected by an app after page load. Does it count?
No. Agents read the raw HTML. The result will say no Product JSON-LD was found in the server response, which is exactly what an AI crawler concludes.
Is this the same as the AI shoppers check?
It is one of its 12 agent rules, gone deep. The full audit runs all 12 across product page, cart and checkout; this tool checks the first one field by field.
This is one rule. The full audit runs 115.
Product page, cart and checkout, scored for human shoppers and for AI shopping agents, with a revenue band on every failing issue.