Skip to main content

Product schema

Product schema (schema.org/Product) is structured data that provides search engines with explicit, machine-readable information about the products on your e-commerce pages. When implemented correctly, it can enable product-specific rich results — including price, availability, and ratings — directly in Google search results, improving click-through rates and shopping visibility.


Learning objectives

After completing this module, you will be able to:

  • Understand what Product schema communicates and what it can unlock.
  • Implement required and recommended product markup properties.
  • Avoid misleading or invalid product markup that triggers guideline violations.

Core schema types

Product schema combines several interconnected types:

TypePurpose
ProductThe product itself: name, image, description, brand, identifiers
OfferPurchase details: price, currency, availability, condition, URL
AggregateRatingAverage rating and review count (only for visibly displayed reviews)
ReviewIndividual review content (only for reviews shown on the page)
Brand / OrganizationBrand identity for the product

For product snippet eligibility

Google requires at minimum:

  • name — the product name.
  • image — a high-quality product image URL.
  • One of: review, aggregateRating, or offers.

For richer eligibility (price, availability in SERPs):

  • Offer with price, priceCurrency, availability, and url.

Full implementation

{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nike Air Max 90",
"image": "https://example.com/images/nike-air-max-90.jpg",
"description": "Iconic running silhouette with Max Air cushioning.",
"brand": {
"@type": "Brand",
"name": "Nike"
},
"sku": "NIKAM90-BLK-10",
"gtin13": "012345678901",
"offers": {
"@type": "Offer",
"url": "https://example.com/shoes/nike-air-max-90",
"priceCurrency": "USD",
"price": "120.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "312"
}
}

Merchant listings vs product snippets

Product snippets appear in organic search results — price, rating, and availability shown beneath the listing title. Triggered by Product schema on product pages.

Merchant listings appear in Google Shopping surfaces, including the Shopping tab and sometimes within image search. Enabled through Merchant Center integration and feed quality.

Product schema on your website and product feed data in Merchant Center are complementary signals — they should be consistent.


Visible content requirement

Google's core rule: only mark up content that is visible to users on the page. This applies to:

  • Ratings: If you show an average rating of 4.7 on the product page, you can mark it up. If you do not display ratings on the page, do not include aggregateRating in schema.
  • Reviews: Only mark up reviews that users can actually read on the page.
  • Price: Must match the price displayed on the page.
  • Availability: Must match the visible availability state.

Mismatches between schema and visible content are a common reason for manual action or loss of rich result eligibility.


Keeping schema synchronized with inventory

For sites with dynamic inventory, automated schema generation is essential:

  • Price changes must be reflected in schema within a reasonable time.
  • Availability status (InStock / OutOfStock) must update when inventory changes.
  • Template-based schema generation from the product database ensures consistency.

Manual schema updates for large catalogs are impractical and error-prone.


Checklist

  • Product schema matches visible page content for all properties.
  • Price and availability update automatically with inventory.
  • Ratings and reviews are real, current, and visible on the page.
  • Product images are crawlable (not blocked by robots.txt).
  • Required fields validate in Rich Results Test without errors.
  • Product feed (Merchant Center) and on-page schema are not in conflict.

Measurement

MetricWhat it tracks
Rich Results Test pass rateSchema validity
GSC product enhancement reportsTemplate-level errors and warnings
Product snippet impressions and CTRSearch visibility impact of rich results
Merchant listing visibilityShopping surface presence
Template error rateSystematic schema quality

Common mistakes

Marking up fake or aggregated ratings. Using a rating aggregated from internal sources not shown on the page, or inflating review counts, violates Google's guidelines and results in rich result removal.

Letting price or availability become stale. A product marked "InStock" at "$89" in schema that actually costs "$119" and is out of stock creates a frustrating user experience and policy violations.

Missing required offer fields. price, priceCurrency, and availability are required for product rich results. Missing any of these means the rich result will not appear.

Adding Product schema to non-product pages incorrectly. Adding product schema to a blog post about a product category, a brand overview page, or a comparison page is a misuse — schema should match the actual page type and content.

Ignoring validation after template changes. A CMS or platform update can silently break schema templates. Schedule regular Rich Results Test and GSC enhancement report reviews after any template deployment.