Product Schema Generator
Generate Product JSON-LD schema for Google Shopping rich results and product snippets
Configure Schema
Article: Blog posts, news articles, guides
Generated Schema
// Fill in the form to generate schema markup
Other Schema Generators
About Product Schema Generator
Product schema markup enables rich product information to appear directly in Google Search results — including price, availability, star ratings, and review counts. These product rich results appear as enhanced snippets with visual elements that stand out from standard blue links, driving significantly higher click-through rates for e-commerce and product pages.
With Google's increasing integration of product information into search results through Google Shopping, Merchant Center, and product rich snippets, Product schema has become one of the most valuable structured data types for e-commerce businesses. Correctly implemented Product schema can get your product information into Google's Shopping Graph, which powers product results across Search, Images, and Shopping tabs.
The Product schema generator creates valid JSON-LD markup for your product pages including all required and recommended properties — name, description, image, price, availability, brand, SKU, and aggregate ratings. Our generator validates your inputs against Google's requirements and outputs schema that passes the Rich Results Test.
Product Schema and Google's Shopping Graph
Product schema connects your product pages to Google's Shopping Graph — a massive knowledge base of products, prices, and availability data that Google uses to power product results across its entire ecosystem. When you implement Product schema correctly, your products become discoverable not just in standard web search but also in Google Images, Google Shopping, and increasingly in Google's AI-powered shopping features.
The most impactful properties in Product schema for search visibility are AggregateRating (star ratings and review counts) and Offer (price and availability). Pages with AggregateRating schema frequently receive star rating display in search results, which multiple studies have shown increases click-through rates by 15-30%. The Offer properties enable price display in rich snippets and eligibility for Google's free product listings.
Google has become stricter about Product schema requirements over time. As of recent updates, Product schema must include either a Review, AggregateRating, or Offer property to be eligible for enhanced rich results. Standalone Product schema without pricing or review data receives less preferential treatment. This makes ensuring your Offer and AggregateRating data is accurate and up-to-date critical for maintaining rich result eligibility.
Key Considerations
Price and Availability Accuracy
Google requires that price and availability in your schema match what users see on the page. Discrepancies between schema data and page content can result in manual actions and rich result removal. Keep schema data dynamically generated and synchronized with your actual product data — never hardcode prices that could become outdated.
AggregateRating Requirements
For star ratings to appear in search results, AggregateRating must include ratingValue (average score), reviewCount or ratingCount (number of ratings), and bestRating (maximum possible score, typically 5). The rating must reflect genuine customer reviews — fabricated ratings violate Google's policies and can result in penalties.
Product Image Requirements
Product images in schema should be high quality, show the actual product, and be at least 160x90px (larger is better for Google Images). Include multiple images from different angles if available. Images must be crawlable by Googlebot — not behind authentication or blocked by robots.txt.
GTIN and Identifiers
Including product identifiers — GTIN (barcode), MPN (manufacturer part number), or ISBN for books — significantly improves Google's ability to match your product to its Shopping Graph knowledge base. Products with GTINs are more likely to appear in Google Shopping and product comparison features.
Common Product Issues
Data Accuracy Issues
- •Price in schema not matching price displayed on page
- •Availability showing 'InStock' when product is actually out of stock
- •Outdated prices after sales or price changes not reflected in schema
- •Currency not specified in priceCurrency property
Missing Required Properties
- •Missing name property — required for all Product schema
- •Missing Offer block — required for price rich results
- •AggregateRating missing ratingValue or reviewCount
- •Missing image property reducing rich result eligibility
Review and Rating Issues
- •Fabricated review ratings violating Google's policies
- •Self-reviews or incentivised reviews marked as organic
- •ratingValue outside the 1-5 range without specifying bestRating
- •reviewCount set to 0 but ratingValue provided — inconsistent data
Implementation Guide
Complete Product JSON-LD Schema
Full Product schema with all recommended properties for maximum rich result eligibility:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Premium Wireless Headphones",
"description": "High-fidelity wireless headphones with 40-hour battery life and active noise cancellation.",
"image": [
"https://example.com/images/headphones-front.jpg",
"https://example.com/images/headphones-side.jpg"
],
"brand": {
"@type": "Brand",
"name": "AudioPro"
},
"sku": "WH-1000XM5",
"gtin13": "4548736132276",
"offers": {
"@type": "Offer",
"url": "https://example.com/headphones",
"priceCurrency": "USD",
"price": "349.99",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"seller": {
"@type": "Organization",
"name": "Example Store"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "2847",
"bestRating": "5",
"worstRating": "1"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"reviewBody": "Outstanding sound quality and comfort. Battery life exceeds the claimed 40 hours."
}
}
</script>Dynamic Product Schema in Next.js
Generate Product schema dynamically from your product data:
// app/products/[slug]/page.tsx
export default async function ProductPage({ params }) {
const product = await getProduct(params.slug);
const productSchema = {
"@context": "https://schema.org",
"@type": "Product",
name: product.name,
description: product.description,
image: product.images,
brand: { "@type": "Brand", name: product.brand },
sku: product.sku,
offers: {
"@type": "Offer",
priceCurrency: "USD",
price: product.price.toString(),
priceValidUntil: product.salePriceExpiry ?? "2026-12-31",
availability: product.inStock
? "https://schema.org/InStock"
: "https://schema.org/OutOfStock",
itemCondition: "https://schema.org/NewCondition",
},
...(product.rating && {
aggregateRating: {
"@type": "AggregateRating",
ratingValue: product.rating.average.toString(),
reviewCount: product.rating.count.toString(),
bestRating: "5",
},
}),
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(productSchema) }}
/>
{/* Product page content */}
</>
);
}Merchant Center Integration
Connect your Product schema to Google Merchant Center for full Shopping integration:
// For Google Merchant Center eligibility, ensure:
// 1. Product schema matches your Merchant Center feed data exactly
// 2. Required fields: name, image, price, availability, brand, GTIN
// 3. Add merchant return policy schema:
{
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
// 4. Add shipping details:
{
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "USD"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1 },
"transitTime": { "@type": "QuantitativeValue", "minValue": 3, "maxValue": 5 }
}
}Common Use Cases
- E-commerce product pages targeting Google Shopping rich results
- Product comparison pages with multiple product schemas
- Review sites adding aggregate rating markup to product listings
- SaaS pricing pages using Product schema for plan listings
- Marketplace listings wanting price and availability in search snippets
Pro Tip
Keep your Product schema data dynamically generated and synchronized with your actual product database. Static or hardcoded schema that falls out of sync with real prices and availability is worse than no schema — Google may apply a manual action for misleading structured data. In Next.js, generate schema server-side from the same data source that powers your product page.