Product Schema
How to Add Product Schema in Shopify
A practical Shopify guide to adding Product and Offer JSON-LD without creating conflicts with themes, SEO apps, review apps, variants, or Markets.

Shopify product schema should describe the product a shopper can actually buy: name, image, description, brand, price, currency, availability, URL, and review signals when they are real and visible.
The tricky part is that Shopify themes, SEO apps, review apps, and variant apps can all output JSON-LD. Before adding more markup, audit what already exists.
1. Audit existing Shopify schema first
Before you edit Liquid
- check_circleOpen a product page and inspect all JSON-LD blocks.
- check_circleCheck whether the theme already outputs Product schema.
- check_circleCheck whether an SEO app outputs another Product entity.
- check_circleCheck whether the review app outputs Review or AggregateRating markup.
- check_circleCompare schema price, currency, availability, and URL against visible page content.
- check_circleTest a product with variants, a product on sale, and an out-of-stock product.
2. Where to add Product schema in Shopify
In most Shopify themes, Product JSON-LD belongs in a product template or product section that has access to the product Liquid object. The exact file depends on your theme architecture, but common places include product JSON templates, main-product sections, or snippets included only on product pages.
3. Basic Shopify Product JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"description": {{ product.description | strip_html | json }},
"image": [
{% for image in product.images limit: 6 %}
{{ image | image_url: width: 1200 | prepend: "https:" | json }}{% unless forloop.last %},{% endunless %}
{% endfor %}
],
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }}
},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"offers": {
"@type": "Offer",
"url": {{ shop.url | append: product.url | json }},
"priceCurrency": {{ cart.currency.iso_code | json }},
"price": {{ product.selected_or_first_available_variant.price | divided_by: 100.0 | json }},
"availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
"itemCondition": "https://schema.org/NewCondition"
}
}
</script>4. Handle variants carefully

Shopify products often have variants for size, color, material, quantity, or subscription. If variants change price or availability, your schema should not claim one generic offer that contradicts the selected or canonical variant.
4. Handle variants carefully
| Variant issue | Risk | Fix |
|---|---|---|
| Selected variant price differs | Schema price does not match visible price | Use selected_or_first_available_variant consistently. |
| Variant availability differs | Out-of-stock variants appear available | Reflect current variant availability when possible. |
| Variant images differ | Schema image does not match selected product | Include representative product images and variant-specific image when relevant. |
| Multiple apps output offers | Conflicting price and currency | Choose one authoritative schema source. |
5. Shopify Markets, currency, and hreflang
If you use Shopify Markets, the same product may render different currencies, URLs, availability, and localized content. Product schema should match the market-specific page that the crawler and shopper see.
Markets checks
- 1The schema currency matches the rendered market currency.
- 2The schema URL matches the current market URL.
- 3Localized product descriptions do not conflict with canonical language signals.
- 4hreflang targets resolve to accessible localized pages.
- 5Availability and shipping promises are accurate for the market.
6. Add review schema only when reviews are real and visible
Review apps may output AggregateRating and Review markup. Do not manually invent review schema if the review content is not visible or if the app already outputs it. Duplicate review markup can create conflicts.
7. Add BreadcrumbList for product context
Breadcrumb schema helps explain product hierarchy. In Shopify, products can appear in multiple collections, so choose a stable breadcrumb strategy that matches the visible page rather than switching unpredictably.
8. Validate after theme and app changes
Validation checklist
- 1Test one simple product, one variant-heavy product, one sale product, and one out-of-stock product.
- 2Compare rendered JSON-LD to the visible page.
- 3Check whether SEO apps or review apps create duplicate Product entities.
- 4Confirm product images are crawlable.
- 5Confirm Product, Offer, Review, AggregateRating, and BreadcrumbList are internally consistent.
- 6Re-test after theme updates, app updates, and Markets changes.
FAQ
Does Shopify automatically add Product schema?keyboard_arrow_down
Many Shopify themes output some Product schema, but quality varies. Apps can also add schema. Always inspect the rendered page before adding another JSON-LD block.
Should Product schema go in the Shopify theme or an SEO app?keyboard_arrow_down
Either can work, but one source should be authoritative. Theme-level schema is often easier to align with Liquid product data, while apps may be easier for non-developers but can create duplicate output.
How should Shopify variants be represented in schema?keyboard_arrow_down
At minimum, the schema should not contradict the selected or canonical variant. Price, availability, SKU, image, and currency should align with what the shopper sees.
Can review apps conflict with Shopify product schema?keyboard_arrow_down
Yes. Review apps may inject Review or AggregateRating schema while the theme or SEO app also outputs rating data. Audit the final rendered JSON-LD, not just app settings.
Related tools
Shopify Schema Checker for Product Pages
Free Shopify schema checker for product pages. Scan Product schema, variant offers, app-injected metadata, Shopify Markets signals, and AI search readiness.
Free Product Schema Checker for Ecommerce Pages
Check ecommerce product pages for Product schema, Offer data, JSON-LD consistency, price, availability, attributes, and AI search readiness.
Shopify SEO Checker for Product Pages, Variants, Markets, and AI Shopping
Free Shopify SEO checker for product pages, variant schema, theme Liquid, SEO apps, review apps, Markets currency, hreflang, and AI shopping readiness.
Related posts
Google Structured Data for Ecommerce: Product, Offer, Review, Breadcrumb, and Variants
A practical ecommerce guide to Product, Offer, Review, Breadcrumb, variant, shipping, and return structured data for search visibility and AI shopping readiness.
Shopify Agentic Commerce Readiness Checklist
A practical checklist for making Shopify product pages easier for AI shoppers and buying agents to understand, compare, and recommend.