On this page
- Google's product schema hierarchy (as-of 2025-12-10)
- Required fields — minimum viable and complete implementations
- Price freshness — the most common failure at scale
- Product variants — ProductGroup
- Shipping and returns annotations
- BreadcrumbList
- AggregateRating
- FAQ schema — deprecated May 2026
- Merchant Center feed + on-page schema interplay
- AI search visibility — structured data as the discovery layer
- ChatGPT and Google Shopping
- AI Overviews and AI Mode
- NLWeb and the Agentic Resource Discovery (ARD) Specification (as-of 2026-06)
- Entity disambiguation for AI citations
- CTR lift — benchmarks
- Practitioner audit findings
- Governance at scale
- What practitioners report
- Key terms
- Next frontier
Structured Data
Structured Data
Structured data is machine-readable markup embedded in web pages — most commonly using the Schema.org vocabulary and the JSON-LD serialisation format — that allows search engines, AI agents, and browser-based agents to parse, interpret, and act on page content without needing to infer meaning from unstructured HTML. In ecommerce, structured data powers rich results (price, rating stars, availability, shipping and returns annotations) in search SERPs, feeds Google's Shopping Graph, and in 2025–2026 has emerged as primary infrastructure for AI agent discovery of products across AI Overviews, Google AI Mode, and ChatGPT carousels.
Google's product schema hierarchy (as-of 2025-12-10)
Google distinguishes two main product schema classes for ecommerce, each with different eligibility requirements (Google Search Central, developers.google.com):
- Product Snippets — for pages where a user cannot directly purchase. Requires
nameplus at least one ofreview,aggregateRating, oroffers. - Merchant Listings — for pages where a customer can purchase. Stricter: requires
price,priceCurrency,availability,shippingDetails, andhasMerchantReturnPolicy. For apparel, also requires sizing attributes.
Additional structured data types in the Shopping group: Product Variants (ProductGroup + hasVariant), Loyalty program, Merchant return policy, and Merchant shipping policy.
Google recommends JSON-LD as the preferred implementation approach — it sits in a single <script> block and does not entangle with visible markup the way microdata does (Google Search Central).
Required fields — minimum viable and complete implementations
Source: MagsTags / Mags Sikora (magstags.com, 2026-03-27).
Minimum for Product Snippet eligibility:
name+ one ofreview,aggregateRating,offers
Minimum Offer node:
price,priceCurrency,availability
Full implementation maximising AI Overviews and Shopping Graph eligibility:
name,brand,description,image,price,availability,aggregateRatingidentifier(GTIN, MPN, or SKU),priceValidUntil, review nodes,hasMerchantReturnPolicy,shippingDetails
Passing the Rich Results Test ≠ effective schema. The test confirms markup is parseable — it does not confirm Google is using it, that data matches the visible page, or that the right schema type was chosen for the feature being targeted (MagsTags, 2026-03-27).
Price freshness — the most common failure at scale
Source: MagsTags / Mags Sikora (magstags.com, 2026-03-27).
Google requires that price and availability in schema match what a user sees on the page. Google suppresses rich results for mismatched pages and may issue manual actions in persistent cases.
Common failure patterns at enterprise scale:
- Sale prices go live before schema is updated
- Caching layers serve stale JSON-LD
- Prices hardcoded in templates rather than pulled dynamically from the product data layer
Schema.org has no salePrice property. When a product is on sale, price is updated to the sale price and priceValidUntil is added with the sale end date — Google uses priceValidUntil to determine eligibility for price-drop annotations in Shopping.
Googlebot routinely crawls landing pages and compares the price in the Merchant Center feed against what it finds in both the page HTML and structured data. If any of these three sources disagree, the product may be disapproved.
At scale, a 3% template error rate translates to 1,500 pages with bad data on a 50,000 SKU site. Google does not flag these individually — they surface in the Search Console Rich Results report months later as a spike in "items with issues" (MagsTags, 2026-03-27).
Product variants — ProductGroup
Source: MagsTags / Mags Sikora (magstags.com, 2026-03-27); OuterBox / Jeff Hirz (outerboxdesign.com, 2026-07-17).
Google introduced structured data support for product variants (ProductGroup with hasVariant and variesBy properties) in February 2024. Correct implementation enables colour swatches, size-specific pricing, and variant-to-query matching directly in Shopping results.
variesBy must use full schema.org URIs [1]. Plain text is technically valid schema but does not trigger Shopping swatches.
Most common template error: wrapping all products in ProductGroup regardless of whether they have variants. This passes validation, produces no errors, and loses rich results on every single-SKU product (MagsTags, 2026-03-27).
Shipping and returns annotations
Source: MagsTags / Mags Sikora (magstags.com, 2026-03-27, 2026-03-22).
Shipping and return annotations ("Free delivery over £20 · 30-day returns") appear beneath the price in Shopping tiles and in an expanded section below the meta description on organic product pages (since April 2023). Powered by ShippingDetails and ReturnPolicy schema, cross-referenced with the Merchant Center feed.
Recommended enterprise pattern: define ShippingService once at the Organisation level with a referenceable @id, then reference it from individual product Offer nodes via shippingDetails.hasShippingService[@id] — rather than duplicating shipping data across every product page.
[!unverified] MagsTags (2026-03-27) describes shipping and return annotations as having "the lowest implementation effort of the four major rich result types" and notes "most competitors do not have them" — this is a practitioner observation, not a formally measured benchmark.
BreadcrumbList
[[BreadcrumbList]] clarifies where a product sits within a collection hierarchy, should be present on every PDP and category page, improves SERP display, and helps Google understand site hierarchy (MagsTags, 2026-03-27).
AggregateRating
[[AggregateRating]] schema is separate from Google's Merchant Center Product Ratings programme — they draw from different data and appear in different placements. Self-serving reviews placed by an entity on its own website are not eligible for star display (policy in force since September 2019) (OuterBox, 2026-07-17).
FAQ schema — deprecated May 2026
Source: Ecorn Agency (ecorn.agency, 2026).
Google removed FAQ rich results from standard search on 7 May 2026, then retired the FAQ search appearance report, Rich Results Test support, and API support during 2026.
Ecorn Agency (2026): FAQ markup is no longer a sound investment — redirect engineering effort away from FAQPage schema entirely.
MagsTags (2026-03-27): Deprioritise rather than remove; structured Q&A data may become relevant to AI agents evaluating and comparing products in the future.
Reddit / r/shopify (2026-05): "FAQ schema is still heavily used by other LLM web search systems. Google is a single (influential) player." Counter: "No LLM companies have come out and said they prefer JSON-LD schema over html." No consensus. Neither source provides primary evidence from the LLM vendors.
Merchant Center feed + on-page schema interplay
Providing both structured data on web pages and a Merchant Center feed maximises eligibility across Google experiences. Some experiences combine data from both sources — for example, product snippets may use pricing data from the merchant feed if it is not present in on-page structured data (Google Search Central, 2025-12-10). See also Google Merchant Center.
AI search visibility — structured data as the discovery layer
ChatGPT and Google Shopping
Source: Peec AI study, Search Engine Land (2026).
A 2026 study by Peec AI analysed over 43,000 ChatGPT product carousel items and 200,000 organic shopping results:
- 83% of ChatGPT's product carousel items were strong matches with Google Shopping's top 40 organic results (as-of 2026). (as-of 2026)
- 60% of matched ChatGPT carousel products came from Google's top 10 organic shopping results.
- ChatGPT generates "shopping query fan-outs" averaging 7 words (vs. 12 for regular fan-outs), occurring at 1.16 per prompt (vs. 2.4), differing from regular fan-outs 98.3% of the time — these exist specifically to hit shopping indexes.
Implication: structured data that earns Google Shopping eligibility is the primary pathway to ChatGPT carousel visibility.
AI Overviews and AI Mode
Google has confirmed structured data improves extraction accuracy for AI Overviews. GTIN is the identifier Google uses to match a product across sources. No special markup beyond well-implemented product schema is required (MagsTags, 2026-03-27).
Schema App / Conductor (2025–2026): Schema markup gives a measurable advantage in AI-generated results; Google and Microsoft Bing's principal PM confirmed this on record. r/TechSEO (2026-06): "Ahrefs and Zyppy Signal studies show schema doesn't do anything for AI citation rates." Counter from same thread: "I would expect AI search visibility to also improve." No resolution. Entity consistency across review sites and directories is flagged as a possible more effective lever.
NLWeb and the Agentic Resource Discovery (ARD) Specification (as-of 2026-06)
Source: Schema App webinar (YouTube, 2026-06-17); companion blog post schemaapp.com.
Microsoft's NLWeb — an open protocol for making websites conversationally queryable by humans and AI agents — builds on Schema.org as its data foundation. R.V. Guha (creator of Schema.org, now Microsoft Technical Fellow) confirmed during the Schema App June 2026 webinar that structured data provides the shared framework AI systems already use to interpret web content.
Microsoft released the Agentic Resource Discovery (ARD) Specification — co-authored by Google, GitHub, GoDaddy, Hugging Face, and Microsoft — positioning Schema.org markup as discoverable infrastructure for AI agents browsing product and service pages (as-of 2026-06).
Entity disambiguation for AI citations
Source: SMA Marketing (YouTube companion content, 2026-06-15).
Advanced schema markup using sameAs, about, and mentions properties provides disambiguation context that allows AI models to correctly identify and cite a brand, fixing cases where AI search gets a brand or product entity wrong.
CTR lift — benchmarks
Industry summaries place product rich-result CTR gains in the 20–30% range (OuterBox, 2026-07-17; MagsTags, 2026-03-27). A single unnamed rollout across 8,400 pages produced 41–52% CTR improvement (Ecorn Agency citing seofrancisco.com case study; low confidence — single unnamed case study).
CTR lift claims vary widely: 20–30% (OuterBox, MagsTags, directional) vs. 41–52% (single unnamed case study via Ecorn Agency). The outlier is position-dependent and from a single unnamed rollout. No measured conversion-rate (as opposed to CTR) studies were found.
Practitioner audit findings
Source: MagsTags (2026-03-22); Reddit r/ecommerce (2026-06).
Practitioner audits of ecommerce sites at scale find (as-of 2026-03): (volatile)
skumissing in ~40% of implementationsavailabilityhardcoded toInStockregardless of actual stock in ~60% of sitesshippingDetailsmissing in ~80% of ecommerce siteshasMerchantReturnPolicymissing in ~90% of sites
[!unverified] Figures from a single consultant's observations — not a formally published study.
An independent audit of 10 ecommerce stores for GEO visibility (r/ecommerce, 2026-06) found only 1 of 10 had real product schema on product pages; none had review or rating schema. Post was flagged as self-promotional by the community — treat directionally.
A common Shopify-specific pain point: SEO apps prevent custom JSON-LD, offering only their own version of schema. Practitioners seeking to deploy more comprehensive custom schema files find no suitable Shopify app as of 2025-08 (r/shopify, 2025-08).
Cloudflare/Shopify blocks validator.schema.org — practitioners testing Shopify stores should use Google's Rich Results Test instead (r/TechSEO, 2026-07).
Governance at scale
Source: MagsTags (2026-03-27).
A minimal governance workflow for enterprise ecommerce requires:
- Weekly checks of Search Console's Rich Results report for new error types
- Monthly crawl samples comparing schema price and availability against live pages (any mismatch rate above 1–2% warrants a template audit)
- Rich Results Test run before and after every platform update or template change
- Confirmation that price changes in the PIM propagate to schema generation in the same deployment
What practitioners report
Source: Reddit r/TechSEO, r/ecommerce, r/shopify (2025–2026).
- Schema is framed as "Layer 1 (Data)" in AI-agent readability frameworks — the classic failure is a price rendered client-side where the agent fetches HTML and finds an empty div (r/TechSEO, 2026-08).
- Practitioners struggle to prove ROI to clients when Google qualifies a site for breadcrumbs but withholds them editorially. Tactic: show client the SERP difference using a direct competitor with solid schema vs. one without (r/TechSEO, 2025-05).
- Google selectively applies rich results even when markup is valid across the whole catalogue — only a subset of indexed products receive product snippets (r/SEO, 2024-12).
- A persistent critique: structured data relies on self-declared information, inverting Google's original PageRank philosophy of evaluating what others say through backlinks (r/SEO, 2025-08).
Key terms
| Term | Meaning |
|---|---|
| JSON-LD | JavaScript Object Notation for Linked Data — the preferred structured data format; placed in a <script type="application/ld+json"> block |
| Schema.org | Community-maintained vocabulary for structured data types, jointly governed by Google, Microsoft, Yahoo, and Yandex |
| Product Snippet | Google rich result type for product pages where users cannot directly purchase |
| Merchant Listing | Google rich result type for transactional product pages; stricter requirements |
| ProductGroup | Schema.org type for a product with multiple variants (size, colour, etc.) |
| hasVariant | Schema.org property on ProductGroup pointing to individual variant Product nodes |
| variesBy | Schema.org property on ProductGroup specifying which dimensions vary (must use full schema.org URI) |
| GTIN | Global Trade Item Number — the identifier Google uses to match a product across sources |
| AggregateRating | Schema.org type for star ratings; separate from Merchant Center Product Ratings |
| priceValidUntil | Schema.org property for sale-price end date; used by Google for price-drop annotations |
| ShippingDetails | Schema.org type for delivery options; powers shipping annotations in SERPs |
| hasMerchantReturnPolicy | Schema.org property linking to a MerchantReturnPolicy node |
| NLWeb | Microsoft open protocol for conversationally queryable websites; builds on Schema.org |
| ARD Specification | Agentic Resource Discovery Specification (Microsoft/Google/GitHub/GoDaddy/Hugging Face, 2026) |
Next frontier
- Shopping Graph — referenced in 8 vault pages, no concept page yet
- Speculation Rules API — referenced in 6 vault pages, no concept page yet
- BreadcrumbList — referenced here, no dedicated concept page
- JSON-LD — referenced extensively, no dedicated concept page
- Schema.org — foundational vocabulary, no dedicated concept page
- Merchant Listings (Google) — distinct from Product Snippets, no concept page
References
- e.g., `, not the plain string `"Color"` — schema.org/color`