AI Search Optimization

What Schema Does an Ecommerce Website Need? (Product, Offer, Review, Explained)

The exact schema an ecommerce site needs in 2026: required Product and Offer fields, Review/AggregateRating rules, and the mistakes that suppress rich results.

Long Nguyen Avatar

Long Nguyen

Fullstack Developer · AI Engineer · Researcher

5 min read

The schema stack an ecommerce site actually needs

Most stores stop at Product and maybe AggregateRating, then wonder why rich results never show up. In 2026 that's not enough for two separate audiences: Google's Merchant listing pipeline, which wants a fuller product record than it did a few years ago, and AI shopping agents, which read your JSON-LD to decide whether they trust your catalog enough to recommend or check out from it. Five schema types cover almost every ecommerce page:

Schema type Where it lives What it unlocks
Product Product detail page Product snippet / Merchant listing eligibility
Offer Nested inside Product Price, stock, and shipping shown in search
Review / AggregateRating Nested inside Product Star ratings under the listing
BreadcrumbList Category and product pages Breadcrumb trail in search results, clearer site hierarchy for crawlers
Organization Homepage / about page Brand identity, sameAs links, knowledge panel eligibility

The sections below go field by field, in the order Google and AI agents actually check them.

Product schema: the fields that are actually required in 2026

The old advice — name, image, offers, done — still validates in the Rich Results Test, but a thin Product object is easy for a crawler or an agent to skip past when it's comparing your listing to five competitors that filled in every field. Treat the following as the real minimum, not the legal minimum:

Property Requirement
name Exact product title, matches the visible H1
description Genuinely descriptive — thin one-liners under roughly 150 characters don't give Google or an agent enough to match intent
image At least one absolute URL; multiple angles help agent-side comparison
brand Nested Brand object with a name property, not a bare string
sku Your internal identifier
gtin / mpn Whichever applies — required for Merchant Center matching if you sell branded goods
category Product taxonomy path (e.g. "Electronics > Audio > Headphones")
additional attributes color, material, size, weight where relevant to the vertical — apparel and hardgoods stores lose eligibility for size-specific rich results without these

Here's a trimmed example showing the required nesting:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Trail Runner Backpack 28L",
  "description": "A 28-liter hiking backpack with a ventilated back panel, hydration sleeve, and rain cover, built for multi-day trail use.",
  "image": [
    "https://example.com/images/backpack-front.jpg",
    "https://example.com/images/backpack-back.jpg"
  ],
  "sku": "TRB-28-BLK",
  "gtin13": "0123456789012",
  "brand": {
    "@type": "Brand",
    "name": "TrailWorks"
  },
  "category": "Outdoor > Backpacks > Hiking Backpacks",
  "color": "Black",
  "material": "Ripstop nylon",
  "offers": { "@type": "Offer" },
  "aggregateRating": { "@type": "AggregateRating" }
}

A Product object missing offers won't qualify for a rich result at all, so that's next.

Offer schema: price, stock, and the return-policy field most stores skip

Offer is where most manual actions and suppressions actually happen, because it's the part most likely to drift out of sync with the live page. Google's Merchant listing requirements for the Offer object are stricter than a basic Product snippet:

Property Notes
price Must match the visible price on the page exactly — this is the single most common cause of suppression
priceCurrency ISO 4217 code (USD, VND, EUR)
availability InStock, OutOfStock, PreOrder, BackOrder, Discontinued — must match real inventory, not a hardcoded default
priceValidUntil Required for Merchant listings; keeps time-limited pricing honest
itemCondition NewCondition, UsedCondition, RefurbishedCondition
url Canonical URL of the product page
hasMerchantReturnPolicy Nested MerchantReturnPolicy object — return window, fees, region. Frequently skipped, frequently the reason a listing doesn't qualify for full Merchant listing enhancements
shippingDetails Nested OfferShippingDetails — delivery time and cost estimate

If your platform auto-generates schema (Shopify, WooCommerce, a headless storefront), check that price and availability are pulled live from the same source the storefront renders from — a cached or scheduled schema export is the most common way stores end up with a price mismatch they don't know about until rich results silently disappear.

Review and AggregateRating: what still earns star ratings

Google tightened review snippet guidance again in July 2026, and the rules are worth reading closely because Product is one of the few entity types still eligible — LocalBusiness and Organization lost self-review eligibility back in 2019, and that restriction hasn't loosened.

  • Nest, don't scrape. AggregateRating and Review should be nested inside the Product object, and the content must come from reviews actually visible on that page — pulling an average rating from a third-party platform and stuffing it into markup violates the guidelines.
  • The name property is required on Review items — specify what's being reviewed via itemReviewed, not just the rating.
  • Disclose incentives. Google's July 2026 documentation update explicitly bars fake or undisclosed incentivized reviews — a review written for a discount or free product is fine to publish, but only if that's clearly disclosed on the page and in the markup context.
  • One rating, one item. AggregateRating on a category or collection page representing many different products is a common violation — it belongs on the individual product page.
  • Keep it visible. If users can't see the rating and review count on the page itself, the structured data version won't be trusted either.

Get this section right and you're one of the few remaining rich result types where the payoff is direct: star ratings under an organic listing measurably move click-through rate.

Merchant listings vs. product snippets: which one your store needs

Google actually runs two overlapping product features, and conflating them is why some stores implement "full" schema and still don't see the enhancement they expected.

  Product snippet Merchant listing
Who it's for Pages where the visitor can't buy directly (editorial reviews, comparison pages) Pages where the visitor can purchase from you directly
Extra fields it rewards Pros/cons, detailed review content Sizing, shipping, return policy, condition
Google Merchant Center Not required Recommended — Merchant Center runs its own validation on top of the Rich Results Test, and catches feed-vs-markup mismatches the generic checker misses

In practice, an actual storefront product page should implement the fuller Merchant listing property set — doing so also makes the page eligible for the product snippet enhancements, since the requirements overlap. If you run both a live storefront and a separate editorial review section, treat them as two different schema jobs rather than reusing one Product object across both.

Don't spend time on FAQPage schema anymore

If your ecommerce build plan still includes FAQPage markup for product FAQs, drop it. Google retired the FAQ rich result and its Search Console report in May 2026, and structured data that no longer feeds a Search feature has no visible effect — it's not penalized, but it's also not worth engineering time. Keep FAQ content on the page for genuinely answering buyer questions and for AI answer engines that read page content directly, just don't budget schema-implementation hours toward the FAQPage type itself.

Common mistakes that get rich results suppressed

Mistake Effect
price in markup doesn't match the visible price Listing suppressed until corrected
availability hardcoded to InStock Feed mismatch flagged in Merchant Center; can trigger a manual review
AggregateRating with no visible reviews on the page Violates review guidelines; rich result withheld
Missing hasMerchantReturnPolicy / shippingDetails Page doesn't qualify for full Merchant listing enhancements
One AggregateRating covering a whole category page Guideline violation — ratings must map to a single item
brand as a plain string instead of a nested Brand object Weaker entity matching for Merchant Center and AI agents

Validate before you publish

Three checks catch nearly everything above before it costs you a rich result:

  1. Rich Results Test — run it on the live URL, not a staging copy, and check which enhancements the page actually qualifies for, not just whether the JSON-LD parses.
  2. Google Merchant Center diagnostics — if you have a product feed, this catches feed-vs-markup mismatches (GTIN, price, stock) the generic validator doesn't see.
  3. Search Console Enhancements report — the ongoing view once you're live; watch it after any theme, platform, or feed change, since that's when schema quietly breaks.

Ecommerce platforms increasingly need to satisfy a third reader too — the emerging layer of AI shopping agents and checkout protocols that read this same structured data to decide whether they can transact with your store at all, not just whether Google will show a star rating. That's a distinct implementation on top of everything above; if you're mapping out what agent-readiness actually requires, our SEO/AEO/GEO service covers the full stack from this schema baseline through agent-facing endpoints.

FAQ

Frequently asked questions

Do I need Product schema on every product page, or just my bestsellers?

Every product page that can be purchased directly should carry Product schema with a nested Offer. Rich results and Merchant Center matching are evaluated per page, so leaving pages without markup simply means those pages compete without the eligibility the rest of your catalog has.

Can I use AggregateRating without individual Review objects?

Yes. AggregateRating alone is valid and commonly used, as long as the rating reflects reviews that are genuinely visible on that page. Adding individual Review entries gives Google and AI agents more context, but it isn't required for the star rating to be eligible.

Why did my product's star rating disappear from search results?

The most common causes are a mismatch between the markup and what's visibly shown on the page, an AggregateRating applied to a collection page instead of a single item, or reviews that can't be verified as visible and genuine. Check the page against Google's current review snippet guidelines and re-test with the Rich Results Test.

Is FAQPage schema still worth adding to product pages?

No — Google retired the FAQ rich result and its Search Console report in May 2026. FAQ content is still useful on the page itself for buyers and for AI answer engines reading page content, but implementing FAQPage structured data specifically no longer produces any visible Search feature.

What's the difference between a product snippet and a Merchant listing?

A product snippet is for pages where visitors can't buy directly, like an editorial review page, and rewards fields like pros/cons. A Merchant listing is for pages where visitors can purchase directly, and rewards a fuller property set — condition, return policy, shipping details. A live storefront product page should implement the Merchant listing field set, which also covers product snippet eligibility.

Stay visible to AI

AEO, GEO, and agent-readiness tips, sent straight to your inbox.