Both footwear brands in our latest schema audit had near-perfect product structured data — and zero size markup on any of the ten product pages we sampled between them. Every one of those pages told an AI buyer the price, the brand, and the stock status. Not one told it which sizes exist.
That is the finding from a field-by-field audit of five stores whose Product JSON-LD was complete enough to inspect: the core product fields are near-universal, and the variant fields are the cliff. Across 25 sampled product pages, name, brand, price, and availability appeared on all 25. Variant data — size, color, material — appeared on 10, and all 10 came from two stores. The three stores with none were the two footwear brands and a perfume house: the categories where a buyer's first question is "does it come in my size?"
The audit
We took the five stores in our June–July 2026 scan batch whose structured data scored above 80 — the ones with Product blocks worth auditing field by field. For each store we sampled five product pages and checked ten schema fields: name, brand, identifier, price, availability, shipping details, return policy, aggregate rating, review count, and variants. That is 25 pages and 250 field checks.
A word on who is not in this group: the rest of the batch had no structured data at all, and an audit of nothing produces nothing. Those stores — 11 of 30 in the batch, averaging 23/100 overall — are covered in our earlier teardown. This audit is about the stores that cleared the first hurdle and then stopped partway.
Where the markup stops
| Field | Pages carrying it |
|---|---|
| name, brand, price, availability | 25 of 25 |
| Identifiers (GTIN / MPN / SKU) | 22 of 25 |
| Variants (size / color / material) | 10 of 25 |
The four core fields were present on every page we sampled, at every store. That is worth stating plainly: these five stores nailed the block an AI buyer needs to name a product, quote a price, and confirm it is in stock.
The drop-off starts at variants. The 10 pages with variant data all belong to the same two stores — a tech-accessories brand that marks up color on every product, and a jewelry maker that marks up material. Each had variant data on 100% of its sampled pages. The other three stores had it on 0%.
Which three? Two footwear brands and a perfume house. The stores selling products where size decides the purchase are the ones that never told a machine the sizes exist.
Why size is the first question an AI buyer asks
A human shopping for shoes can see the size selector on the page. An AI buyer cannot see the selector; it can only read what the page source states. When ChatGPT is asked for "running shoes in size 10", the agent checks whether the candidate store's data can answer the size part of the question. A store whose Product block has availability but no size data can confirm the shoe exists and is in stock — and cannot confirm a size 10 does. The agent quotes what it can verify, and "in stock, sizes unknown" does not beat a competitor whose data says "size 10 available".
One of the two footwear stores did not lack the information. Its product names carried the colorway in parentheses — the color existed on the page, inside the name string. That is the tell of a variant gap: the data is there, in the one field an agent reads as a label rather than a filter. A model may guess a color from a name. It cannot be expected to guess a size, and it cannot filter a name the way it can filter a size property. Information that is not structured is information the agent is allowed to ignore.
What the two stores with variants did right
The accessories brand marked up color on every sampled page — five of five, values like a strap color on a watch band. The jewelry maker marked up material on every sampled page — five of five. Neither store sells in a size-critical category, which makes the pattern stranger, not the work harder: the fields are the same Product properties a footwear store would use, filled from product data the store already has.
Consistency is the other half. Variant data on some pages and not others teaches an agent to distrust the store; both stores here were at 100%, the only percentage that counts for a field an AI buyer will cite.
The fix is one template change
color, material, and size are plain Product properties — or, for stores that track per-variant stock and pricing, offers entries per variant. They belong in the same JSON-LD block that already carries name, price, and availability. The store with the colorway in its product names already owns the values; it just needs them in the right field.
Variants join the list of fields that decide recommendation when products are otherwise equal. We found the same drop-off pattern at the policy fields (shippingDetails, hasMerchantReturnPolicy — the policy blind spot) and at ratings (how AI buyers read reviews). The pattern repeats: stores complete the fields the spec calls required, and skip the fields the shopper actually filters on.
And for the stores that have not started at all — no Product block, no variants, nothing to audit — the first step is the one from the zero-data teardown. Variant markup is step two. Size is the difference between being found and being recommended, but step one comes first.
See which fields your store is missing — run a free scan at prefero.me.