Read the product-schema breakdown →
Agency retainer vs a US$59 fixed report →
n = 9,510 live storefronts out of 10,514 attempted · 8,226 run Shopify · 1,284 other platforms, included in every rate below
| Check | Pass | 95% CI | |
|---|---|---|---|
| Product structured data | 3.6% | 3.2–4.0% | read |
| Offer structured data | 3.9% | 3.5–4.3% | — |
| FAQ structured data | 3.2% | 2.9–3.6% | — |
| Breadcrumb structured data | 16.0% | 15.3–16.7% | — |
| Open Graph tags | 92.4% | 91.8–92.9% | — |
| Canonical tag | 96.9% | 96.6–97.3% | — |
| Some image alt text missing | 81.1% | 80.3–81.9% | read |
| Not exactly one H1 | 36.9% | 36.0–37.9% | — |
Counts are literal rows. Rounding is one decimal place, so intervals may differ by 0.1 from a theoretical normal approximation.
Only 3.6% of 9,510 storefronts carry the markup that tells Google a price.
Stores running Klaviyo are 33% less likely to have product markup (2.8% vs 4.2%).
89.2% of storefronts had at least one homepage image with no alt text.
Cheaper stores have better markup: 4.3% under $50 vs 3.3% at $150 and over.
Every store was fetched server-side: the homepage, and the public product feed where one existed. The HTML was parsed for structured data, canonical tags, Open Graph tags, headings and image alt attributes. No model scoring, no weighting, no estimates.
Why this is defensible: the raw rows are available on request (support@seoscanaudit.com), and individual stores are never named.
We measured homepages. A store can carry Product markup on its product pages and still fail here, so read every number as "not visible from the homepage", not "the developer forgot". Themes, apps and regional CDNs change what a single fetch sees.
The easy tags are already solved (canonical at 96.9%), while the one block that carries price and availability sits at 3.6%. Our reading is that themes and apps ship the generic tags and nobody owns the commercial one — that is an interpretation, not a measured cause. INFERENCE