Product · JSON-LD
Product Schema Generator
Product schema describes an item you sell: its price, availability, and rating. Of the common schema types, this is the one with the clearest surviving payoff in search results.
Open the schema generatorStill earns rich results
Still fully supported. Product markup can produce product snippets showing price, availability, and review stars, and it feeds Google's merchant and shopping surfaces. This is the schema type most worth getting exactly right on an ecommerce site.
Why it is still worth adding
Beyond the visible snippet, product markup is how shopping and AI assistants read your catalogue. When someone asks an assistant for a product like yours in a price range, structured price and availability data is what makes your item comparable rather than invisible.
A valid Product example
Drop this in a <script type="application/ld+json"> tag in the page head or body, with your own values.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ceramic Pour-Over Dripper",
"image": ["https://example.com/dripper.jpg"],
"description": "A single-cup ceramic pour-over dripper with a spiral rib design.",
"sku": "PD-001",
"brand": {
"@type": "Brand",
"name": "Rankealo Coffee"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/products/pour-over-dripper",
"priceCurrency": "EUR",
"price": "24.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "87"
}
}Required and recommended properties
| Property | Required | Notes |
|---|---|---|
name | Required | The product name as shown to customers. |
image | Required | One or more image URLs. Multiple aspect ratios are recommended. |
offers | Required | An Offer with price, priceCurrency, and availability. Required for a product snippet. |
offers.price | Required | A number without currency symbols. "24.00", not "€24". |
offers.availability | Required | A schema.org URL such as InStock or OutOfStock, not free text. |
aggregateRating | Optional | Only when genuine ratings exist and are visible on the page. |
sku / gtin / mpn | Optional | Identifiers that help match your item to a known product. |
Common Product schema mistakes
Prices in the markup that differ from the page
A stale price in JSON-LD is the most common product-markup error and it is the one Google treats most seriously, because it misleads shoppers. Generate the markup from the same data as the rendered price.
Ratings that are not visible on the page
aggregateRating must reflect reviews a visitor can actually see. Inventing a rating, or carrying one over from another site, is exactly what the review-snippet restrictions were designed to catch.
Currency symbols or ranges inside price
The price property takes a plain number. Ranges belong in separate offers or an AggregateOffer with lowPrice and highPrice.
Generating it is the easy half
The harder part is keeping markup correct across a site as pages change. Rankealo's SEO agent audits structured data across your pages and ships the JSON-LD fixes as pull requests you review and merge, rather than handing you a list of errors to implement yourself.
See how the SEO agent ships fixesProduct schema questions
Does product schema still earn rich results?
Yes. Product markup remains fully supported and can produce snippets showing price, availability, and star ratings, as well as feeding shopping surfaces. It is one of the few schema types whose original promise is still intact, which makes it the highest-value type to implement correctly.
Can I add product schema to a category page?
Not as a single Product. A category or listing page describes many items, so it should use ItemList referencing the individual product pages. Marking a category page up as one Product is invalid and is a frequent cause of Search Console errors.
What happens if my price changes?
The markup must change with it. Serving a price in JSON-LD that no longer matches the page can cost you the rich result and, in shopping surfaces, get the item disapproved. Always generate price and availability from live data rather than hard-coding them.
Other schema types
FAQPage
FAQ schema generator and reference.
LocalBusiness
LocalBusiness schema generator and reference.
Service
Service schema generator and reference.
Review
Review schema generator and reference.
Or go back to the schema markup generator to build markup interactively.
