Benchmark — research note

Research note · published 2026-08-28 · n=1,854 · data: 2026-q3

Half of live Magento stores put no Product schema on their product pages

SCHEMA-01 across 1,854 live Adobe Commerce and Magento storefronts — 54% of product pages an agent can reach fail the check, 48% carry no Product JSON-LD at all, and only 15% publish the full Product + Offer + AggregateRating triple.

An AI shopping agent that lands on a product page does not read the layout. It reads the structured data — the Product JSON-LD with an Offer inside it — and if that block is missing, the page is a picture of a product, not a product. This note is about how often that block is missing on real Magento stores.

The headline

On 18–20 August 2026 we ran the readiness scanner against 1,854 live Adobe Commerce and Magento storefronts — the same population as the Q3 2026 benchmark, assembled from public sources, no opt-in. One of the eight checks, SCHEMA-01, samples one product page per store and asks whether it carries Product and Offer JSON-LD, and whether an AggregateRating comes with them.

On 1,373 of those stores the scanner reached a product page and could decide. Of those:

Result Stores Share of decidable
Pass — Product + Offer present 632 46.0%
Fail 741 54.0%

That is the number to quote: 54% of Magento product pages an agent can reach fail the structured-data check. The remaining 481 stores (26% of the sample) could not be decided — see Not decidable below — and are excluded from the percentage rather than counted as failures.

What the failures are made of

A failed check is not one thing. The scanner records why, and the reasons are lopsided:

Reason for failing Stores Share of decidable Share of failures
No Product JSON-LD on the sampled product page at all 659 48.0% 88.9%
Product JSON-LD present, but no Offer (price / availability) 44 3.2% 5.9%
Product page unreachable (refused connection, redirect loop, unresolvable host) 27 2.0% 3.6%
Product page renders client-side only — same empty shell for every URL without JavaScript 10 0.7% 1.3%
Scan budget exhausted before the check 1 0.1% 0.1%

Nine failures in ten are the simplest case: the page has no Product block whatsoever. This is not a store that got the schema slightly wrong. Magento's stock Luma theme marks the product page up as microdata (itemtype="https://schema.org/Product"), not as JSON-LD; the JSON-LD block comes from the theme, an SEO extension, or a developer, and on 659 of 1,373 stores none of the three has put it there. The scanner does recognise those microdata pages as product pages — it simply records that the form an agent parses is absent.

The "Product without Offer" case — a Product node with a name and image but no offers — is small at 44 stores, but it is the more deceptive failure: a page that looks marked up in a validator and still gives an agent no price to quote.

The passes are thinner than they look

Passing SCHEMA-01 requires Product and Offer. AggregateRating is recorded but not required, because a new store legitimately has no reviews. Among the 632 passing stores:

Passing stores Stores Share of decidable
Product + Offer + AggregateRating 201 14.6%
Product + Offer, no AggregateRating 431 31.4%

So the full triple that Google's product rich results and most agent product cards are built on — price, availability and rating — is present on one store in seven. Two thirds of the stores that pass do so without any rating data, which is the field that lets an agent rank one offer against another.

Not decidable

481 stores are missing from every percentage above, and the reasons matter because they are not neutral:

Why the check could not run Stores
No product page could be identified (no sitemap with product URLs, no recognisable product links) 215
No product catalog detected on the storefront 157
robots.txt disallows fetching product pages — respected, not sampled 102
Homepage answered with an error, so nothing could be sampled 6
Scan budget ran out before the check 1

The 102 stores whose robots.txt forbids product pages to our scanner forbid them to every polite crawler, including the ones behind AI shopping assistants. The 215 where no product URL could be found are stores whose sitemap does not list products — a different problem, but the same outcome for an agent that arrives from outside. If those 317 stores were counted as failures, the fail rate would be 63%; we report the 54% because "we could not look" is not the same finding as "we looked and it was missing".

How this relates to the Q3 edition

The Q3 2026 edition reports SCHEMA-01 at a 41.0% pass rate on a snapshot of 11 August 2026. This note reports 46.0% on a re-scan of the same population one week later. Merchants did not fix 65 stores in seven days; the scanner did two things better. Product-page discovery now follows Magento's sitemap index and the sitemap declared in robots.txt instead of assuming /sitemap.xml lists products, and a check cut off by the scan's time budget is now recorded as not measured rather than as a failure. Both changes moved stores from fail to pass or not decidable, and both are the correct reading of the same pages. The edition stays frozen at its number, as editions do; the next edition will carry the new method, and this note states the difference so that neither figure is quoted as the other.

Method

  • Population: live storefronts verified as Adobe Commerce or Magento by homepage fingerprint, assembled from the HTTP Archive / Chrome UX Report crawl, public top-site lists and agency portfolios. Same population as the benchmark. No store was contacted or opted in.
  • Sampling: one product page per store, found through the sitemap (index followed, robots.txt-declared sitemap honoured), with up to three candidate URLs tried before giving up. robots.txt is respected for our user agent.
  • Check: the page's JSON-LD is parsed; a Product node with an offers property (or an offers.price path) passes; aggregateRating is recorded. Microdata and RDFa do not count as a pass — the check asks for the form shopping agents and product-card parsers read — but a page carrying them is recognised as a product page, so it is scored rather than skipped.
  • Dates: 1,851 stores scanned on 2026-08-18, 3 on 2026-08-20.
  • Published: aggregates only. No domain, brand or individual result appears here or in any material derived from this note. A store in the sample can obtain its own result by running the free scan.

What to do with this if you run a Magento store

Put Product JSON-LD with an Offerprice, priceCurrency, availability, url — on every product page, server-rendered, and add AggregateRating wherever you have reviews. On Magento this is a theme block or an extension, not a re-platform. It is also the first thing the Agentic Commerce Suite module's schema repair installs, and the first layer the readiness sprint fixes, because nothing downstream — feeds, agent endpoints, checkout — can quote a price the page does not state.

Expanding Web (2026). Half of live Magento stores put no Product schema on their product pages. Benchmark research note (n=1,854). https://expandingweb.com/benchmark/schema-01

Free to quote and republish with attribution and a link to this note. Aggregates only — no store is named. Underlying edition: /benchmark/2026-q3.json. Licence: terms.

Numbers in this note are frozen as published. A new measurement is a new note, not an edit. Last verified:

← The benchmark