The Product type describes any offered product or service in an e-commerce or catalog context. Search engines use Product markup to display rich results including price, availability, ratings, and images directly in search listings. Correct Product markup is one of the highest-impact schema types for commercial pages.
When to Use This
Use Product on any page that represents a single, specific product. This includes physical goods, digital products, software, and subscription services. The page should be a dedicated product detail page — not a category page listing multiple products.
Do not use Product for:
- Category or listing pages (use
ItemListinstead) - Service descriptions without a specific offering (use
Service) - Products that cannot be purchased (use
IndividualProductorProductModelfor informational catalogs)
If a single page sells multiple distinct products, mark up each product separately. If a product has multiple variants (sizes, colors), use a single Product with multiple Offer entries or use ProductGroup.
Required Properties
| Property | Type | Description |
|---|---|---|
@type | Text | Must be "Product". |
name | Text | The full product name. Be specific — include brand and model if applicable. |
description | Text | A factual description of the product. Avoid promotional superlatives. |
image | URL or ImageObject | One or more images of the product. Google recommends at least 3 images. Use high-resolution images with a 1:1, 4:3, or 16:9 aspect ratio. |
offers | Offer or AggregateOffer | Pricing and availability information. At minimum, include price, priceCurrency, and availability. |
Recommended Properties
| Property | Type | Description |
|---|---|---|
brand | Brand or Organization | The brand or manufacturer. Wrap in a Brand object with a name property. |
sku | Text | The merchant-specific stock keeping unit identifier. |
gtin | Text | The Global Trade Item Number (UPC, EAN, ISBN). Use gtin13, gtin8, or the generic gtin. |
mpn | Text | The Manufacturer Part Number. Useful when GTIN is unavailable. |
aggregateRating | AggregateRating | Overall rating based on a collection of reviews. Include ratingValue and reviewCount. |
review | Review | One or more individual reviews. Each review should include author, reviewRating, and reviewBody. |
color | Text | The color of the product. |
material | Text | The material the product is made from. |
weight | QuantitativeValue | The weight of the product. |
category | Text or URL | A category for the product. Can be a free-text string or a URL from a recognized taxonomy like Google’s product taxonomy. |
JSON-LD Example
A complete Product markup for a physical product with pricing, brand, and reviews:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Apex Pro Wireless Keyboard",
"description": "A full-size mechanical keyboard with hot-swappable switches, per-key RGB lighting, and 2.4GHz wireless connectivity. Compatible with Windows, macOS, and Linux.",
"image": [
"https://example.com/images/apex-pro-front.jpg",
"https://example.com/images/apex-pro-side.jpg",
"https://example.com/images/apex-pro-detail.jpg"
],
"brand": {
"@type": "Brand",
"name": "TechCraft"
},
"sku": "TC-APK-2025",
"gtin13": "0123456789012",
"mpn": "APK-WL-100",
"color": "Matte Black",
"material": "Aluminum frame, PBT keycaps",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/apex-pro-wireless",
"priceCurrency": "USD",
"price": "149.99",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"seller": {
"@type": "Organization",
"name": "TechCraft Official Store"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "USD"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 3,
"maxValue": 5,
"unitCode": "DAY"
}
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"bestRating": "5",
"reviewCount": "238"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Jordan Rivera"
},
"datePublished": "2026-01-15",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"reviewBody": "Excellent build quality and the wireless latency is imperceptible. The hot-swap feature makes it easy to try different switches."
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Sam Chen"
},
"datePublished": "2026-02-03",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"reviewBody": "Great keyboard overall. Battery life could be better when RGB is at full brightness, but otherwise no complaints."
}
]
}
The same product marked up with Microdata:
<div itemscope itemtype="https://schema.org/Product">
<h1 itemprop="name">Apex Pro Wireless Keyboard</h1>
<img itemprop="image" src="https://example.com/images/apex-pro-front.jpg" alt="Apex Pro Wireless Keyboard" />
<p itemprop="description">A full-size mechanical keyboard with hot-swappable switches, per-key RGB lighting, and 2.4GHz wireless connectivity.</p>
<div itemprop="brand" itemscope itemtype="https://schema.org/Brand">
<span itemprop="name">TechCraft</span>
</div>
<meta itemprop="sku" content="TC-APK-2025" />
<meta itemprop="gtin13" content="0123456789012" />
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="149.99">149.99</span>
<link itemprop="availability" href="https://schema.org/InStock" />
<link itemprop="itemCondition" href="https://schema.org/NewCondition" />
</div>
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<span itemprop="ratingValue">4.6</span> / <span itemprop="bestRating">5</span>
(<span itemprop="reviewCount">238</span> reviews)
</div>
</div>
The same product marked up with RDFa:
<div vocab="https://schema.org/" typeof="Product">
<h1 property="name">Apex Pro Wireless Keyboard</h1>
<img property="image" src="https://example.com/images/apex-pro-front.jpg" alt="Apex Pro Wireless Keyboard" />
<p property="description">A full-size mechanical keyboard with hot-swappable switches, per-key RGB lighting, and 2.4GHz wireless connectivity.</p>
<div property="brand" typeof="Brand">
<span property="name">TechCraft</span>
</div>
<meta property="sku" content="TC-APK-2025" />
<meta property="gtin13" content="0123456789012" />
<div property="offers" typeof="Offer">
<span property="priceCurrency" content="USD">$</span>
<span property="price" content="149.99">149.99</span>
<link property="availability" href="https://schema.org/InStock" />
<link property="itemCondition" href="https://schema.org/NewCondition" />
</div>
<div property="aggregateRating" typeof="AggregateRating">
<span property="ratingValue">4.6</span> / <span property="bestRating">5</span>
(<span property="reviewCount">238</span> reviews)
</div>
</div>
Common Mistakes
- Missing
offers. A Product without pricing data will not generate rich results in Google Search. Always include at least one Offer withprice,priceCurrency, andavailability. - Using
offerson a category page. Product markup belongs on individual product pages, not listing pages. Google may issue manual actions for misapplied markup. - Omitting
image. Products without images are ineligible for most rich result formats. Provide at least one high-resolution image. - Incorrect
availabilityvalues. Use the full Schema.org URL (e.g.,https://schema.org/InStock), not a freeform string like"in stock". - Stale
priceValidUntil. If you set this field, keep it updated. Expired dates signal to search engines that the data is unmaintained. - Using
brandas a plain string. Wrap the brand in aBrandorOrganizationobject with anameproperty. A plain string may not be parsed correctly by all consumers. - Duplicate GTIN values. Each product variant should have its own unique GTIN. Do not reuse the same GTIN across different products.
- Fabricated reviews. Marking up reviews that do not appear on the visible page violates Google’s structured data guidelines and can result in penalties.
Testing & Validation
- Google Rich Results Test — Paste your page URL or code snippet at search.google.com/test/rich-results. Verify the Product result type appears with no errors.
- Schema.org Validator — Use validator.schema.org to check that your JSON-LD is syntactically valid.
- Google Search Console — After deployment, check the “Product” enhancement report for indexing issues, warnings, and errors across your site.
- Merchant Center — If using Google Shopping, verify that your structured data aligns with your product feed. Mismatches between feed data and on-page markup can cause disapprovals.
- Manual inspection — Confirm that every value in your structured data matches the visible content on the page. Price, availability, rating, and review data must be consistent.
Related Schemas
- Offer — Pricing and availability details nested inside Product.
- Review — Individual product reviews with ratings.
- AggregateRating — Summarized rating data from multiple reviews.
- Organization — The seller or manufacturer entity.