What this guide covers
- What Schema.org is and why structured data matters
- Recommended format (JSON-LD)
- Mandatory and recommended product fields
- Step-by-step examples: basic to advanced
- Validation tools and recommendations
- Specifics for e-commerce platforms
1. What is Schema.org and why it’s important
Schema.org is a vendor-neutral vocabulary for structured data supported by major search engines. It helps search engines understand product pages correctly and can enable rich snippets (price, availability, rating, images).
Official references:
2. Recommended format
Google recommends JSON-LD. It does not interfere with DOM, can be inserted by the server, and dynamically generated from database data.
Available formats: JSON-LD (recommended), Microdata, RDFa. Choose JSON-LD for e-commerce.
3. Mandatory fields for proper product markup
- name — product name
- image — at least one image URL
- description — short description
- offers.price — price
- offers.priceCurrency — currency (ISO code, e.g., UAH, USD)
- offers.availability — availability (https://schema.org/InStock etc.)
- offers.url — product page URL
4. Recommended additional fields
- sku — product SKU
- mpn — manufacturer part number
- gtin8 / gtin12 / gtin13 / gtin14 — barcode
- brand — brand
- category — product category
- color, material, size, weight — attributes
- aggregateRating — aggregate rating
- review — reviews
- itemCondition — condition
- additionalProperty — custom attributes (PropertyValue)
- shippingDetails / OfferShippingDetails — shipping info
- seller — seller organization
5. Basic JSON-LD example
Code: JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wireless Headphones X100" product name,
"image": "https://site.com/images/headphones-x100.jpg" main image URL,
"description": "Wireless headphones with noise cancellation." short description,
"offers": {
"@type": "Offer",
"url": "https://site.com/product/headphones-x100" product page,
"priceCurrency": "UAH" currency (ISO),
"price": "2499" price as number,
"availability": "https://schema.org/InStock" availability
}
}
</script>
15. Open Graph and Twitter Cards for products
For correct display on Facebook, Messenger, Viber, WhatsApp, and X (Twitter), use Open Graph and Twitter Card meta tags.
Open Graph Example
Code: HTML
<meta property="og:type" content="product"> data type — product
<meta property="og:title" content="Product Name"> product title
<meta property="og:description" content="Short product description"> short description
<meta property="og:url" content="https://site.com/product-url"> product page URL
<meta property="og:image" content="https://site.com/upload/product.jpg"> product image
<meta property="product:price:amount" content="2499"> price
<meta property="product:price:currency" content="UAH"> currency
<meta property="product:availability" content="in stock"> availability
Twitter Cards Example
Code: HTML
<meta name="twitter:card" content="summary_large_image"> large product card
<meta name="twitter:title" content="Product Name"> title
<meta name="twitter:description" content="Short product description"> description
<meta name="twitter:image" content="https://site.com/upload/product.jpg"> image
<meta name="twitter:url" content="https://site.com/product-url"> product URL