Product Schema for Ecommerce: The Complete 2026 Guide

Product schema is the backbone of structured data for ecommerce sites. It enables rich snippets with price, availability, rating, and review information...

Dilshad Akhtar
Dilshad Akhtar
Published: 18 June 2026
4 min read
TL;DRAI summary
  • The central type is Product , which belongs to the Thing hierarchy.
  • Google requires name , image , and either offer with price and availability or aggregateRating for a product to qualify for rich results.
  • Every product needs at least one Offer .
  • Adding AggregateRating enables star ratings in search snippets.
  • For sale prices, include both price and highPrice / lowPrice properties.
  • The decision to use one Product with multiple Offers versus separate Product entries depends on your URL structure.
  • Every product page includes valid Product schema with JSON-LD name, image, and at least one Offer are present Price values are strings, not floats...

Product schema is the backbone of structured data for ecommerce sites. It enables rich snippets with price, availability, rating, and review information directly in search results. For an online store, correct Product schema implementation directly correlates with click-through rate, conversion...

Core Product Schema Structure

The central type is Product, which belongs to the Thing hierarchy. A Product represents a tangible or digital item that can be offered for sale. The full schema includes the Product itself, its Offer (pricing and availability), and optional AggregateRating and Review sub-graphs.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Noise-Canceling Headphones Pro X2",
  "description": "Premium over-ear headphones with active noise cancellation and 40-hour battery life.",
  "sku": "WNCH-PRO-X2",
  "mpn": "WNCH-PRO-X2-2026",
  "brand": {
    "@type": "Brand",
    "name": "SoundWave Audio"
  },
  "image": [
    "https://example.com/images/headphones-front.jpg",
    "https://example.com/images/headphones-side.jpg"
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/wireless-headphones-pro-x2",
    "priceCurrency": "USD",
    "price": "249.99",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock"
  }
}

Google requires name, image, and either offer (with price and availability) or aggregateRating for a product to qualify for rich results. In practice, provide all three property groups for maximum eligibility (Google Search Central, "Product Snippets," 2025).

name should be the product title as shown on the page. description should be a concise summary of the product's key features. image must be at least 200 pixels wide and accessible. Google accepts up to 100 images per product, declared as an array.

sku (stock keeping unit) and mpn (manufacturer part number) are recommended for product identification. These help search engines match your products across multiple sources and surfaces.

The Offer Subtype

Every product needs at least one Offer. The Offer specifies price, currency, availability, and condition. For products with multiple variants (size, color, storage capacity), each variant gets its own Offer within the same Product block:

{
  "@type": "Product",
  "name": "Pro X2 Headphones",
  "offers": [
    {
      "@type": "Offer",
      "name": "Midnight Black",
      "price": "249.99",
      "availability": "https://schema.org/InStock"
    },
    {
      "@type": "Offer",
      "name": "Arctic White",
      "price": "269.99",
      "availability": "https://schema.org/LimitedAvailability"
    }
  ]
}

Use the correct availability enum: InStock, OutOfStock, LimitedAvailability, PreOrder, or Discontinued. Each maps to a specific rich result badge in search.

AggregateRating and Review Markup

Adding AggregateRating enables star ratings in search snippets. The schema requires ratingValue, bestRating (typically 5), ratingCount, and itemReviewed (the product name):

{
  "@type": "AggregateRating",
  "ratingValue": "4.5",
  "bestRating": "5",
  "worstRating": "1",
  "ratingCount": "312",
  "reviewCount": "287"
}

Individual reviews use the Review type with author and reviewBody. Only markup reviews that exist on the page. Fake or inflated ratings violate Google's structured data policies and can lead to manual actions (Google Search Central, "Structured Data Policies," 2025).

Price Anchors and Sale Pricing

For sale prices, include both price and highPrice/lowPrice properties. The price field should contain the current selling price. Use priceValidUntil to indicate when the offer expires. Google may use this to suppress outdated pricing snippets.

For currency, always use ISO 4217 codes. Common values are USD, EUR, GBP, and JPY. Never use currency symbols in the priceCurrency field.

Product Variants vs Individual Products

The decision to use one Product with multiple Offers versus separate Product entries depends on your URL structure. If each variant has its own URL, create a separate Product schema per page. If all variants share a single URL with client-side selection, use multiple Offers within one Product block.

Audit Checklist

  • [ ] Every product page includes valid Product schema with JSON-LD
  • [ ] name, image, and at least one Offer are present
  • [ ] Price values are strings, not floats (to avoid precision issues)
  • [ ] availability uses the full schema.org URL enum, not a string like "InStock"
  • [ ] image URLs are absolute and publicly accessible
  • [ ] brand is defined as a Brand type, not a plain string
  • [ ] AggregateRating only includes genuine user reviews
  • [ ] Product schema is not present on category, search, or cart pages
  • [ ] All product IDs (sku, mpn, gtin) are validated for accuracy

Conclusion

Product schema is the highest-impact structured data type for ecommerce sites. The implementation is straightforward: one Product block per page with Offers for each variant. Validate every property against Google's requirements and monitor Search Console for product snippet impressions....

Ready to Build Your Dream Website?

Let's discuss your project and create something amazing together.