Shopify Missing Product Schema: How to Add JSON-LD to Your Store
Search intent: fix · Updated February 2026
Shopify missing product schema means your product pages have no <script type="application/ld+json"> block with "@type": "Product". Without this, Google cannot display price, availability, or review stars in search results. Some older themes, heavily customised themes, or stores that removed the schema block accidentally will have no Product schema at all. The fix is to add a complete JSON-LD Product schema block to your main-product.liquid or product.json section using Liquid variables for dynamic values.
Quick Diagnostic Checklist
- View source on a product page - does "application/ld+json" appear?
- If yes, does it contain "@type": "Product"?
- Paste the URL into Google's Rich Results Test - is a Product entity detected?
- Check if you're using a page builder (PageFly, Shogun) that may have replaced your template
Not sure if your store has this issue?
Run a free scan to detect structured data problems instantly.
What This Issue Means
Product schema (JSON-LD with @type: Product) tells Google the structured facts about each product: its name, price, currency, availability, images, brand, and review data. Without it, Google's crawler must infer these facts from your page's unstructured HTML - which is error-prone and doesn't qualify for product rich results in search. Rich results (the Google Shopping-style appearance with price and availability shown directly in organic search) require valid Product schema.
What Causes It (Shopify-Specific)
Older themes built before structured data was standard
Themes released before 2018 often have no structured data at all. If you're using a legacy theme purchased years ago, schema may simply never have been included.
Theme customisation removed the schema block
Custom development work sometimes modifies or removes sections of main-product.liquid without realising the JSON-LD block was there. Code editors with "replace all" or section rewrites can silently drop schema.
Schema moved to a snippet that isn't rendered
Some themes move the schema to a snippet (e.g. snippets/product-schema.liquid) but forget to include a {% render "product-schema" %} call in the product template. The snippet exists but is never output.
Third-party page builder replaced the template
PageFly, Shogun, and similar page builders replace the standard product template with their own. If the page builder's template doesn't include a schema block, all pages built with it will be missing Product schema.
How to Detect It Manually
- 1Go to any product page → right-click → View Source (Ctrl+U)
- 2Press Ctrl+F and search for "application/ld+json"
- 3If no results: you have no JSON-LD schema at all on this page
- 4If results exist: search for "@type": "Product" within those blocks
- 5Confirm absence by also checking Google's Rich Results Test - paste your product URL and look for no Product entity in results
- 6In Google Search Console, go to Enhancements - if no Product section appears, schema is likely absent across all product pages
How to Fix It (Step-by-Step)
Find your product template file
Go to Shopify Admin → Online Store → Themes → Edit code. Look for sections/main-product.liquid (OS 2.0 themes) or templates/product.liquid (legacy themes). This is where you'll add the schema block.
Add a complete Product schema block at the bottom of the section
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"description": {{ product.description | strip_html | truncate: 5000 | json }},
"url": {{ canonical_url | json }},
"image": [
{%- for image in product.images limit: 5 -%}
{{ image | image_url: width: 1200 | prepend: 'https:' | json }}
{%- unless forloop.last -%},{%- endunless -%}
{%- endfor -%}
],
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }}
},
"offers": {
"@type": "Offer",
"url": {{ canonical_url | json }},
"priceCurrency": {{ cart.currency.iso_code | json }},
"price": {{ product.selected_or_first_available_variant.price | divided_by: 100.0 | json }},
"availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %},
"itemCondition": "https://schema.org/NewCondition"
}
{%- if product.metafields.judgeme.badge -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.judgeme.average | json }},
"reviewCount": {{ product.metafields.judgeme.count | json }}
}
{%- endif -%}
}
</script>Validate with Google's Rich Results Test
Paste any product URL into search.google.com/test/rich-results. Confirm the Product entity appears with name, price, availability, and image. Fix any "missing recommended field" warnings.
Submit key product URLs for re-indexing
In Google Search Console → URL Inspection → paste each URL → Request Indexing. Prioritise your highest-traffic product pages. Rich results eligibility is assessed per-URL after re-crawling.
How SEOScan Detects This Issue
SEOScan checks every page for the presence of at least one <script type="application/ld+json"> block containing "@type": "Product". On product pages (detected by URL pattern /products/), absence of this block is flagged as a critical schema gap. SEOScan also checks if a page builder template is in use (PageFly, Shogun markers in HTML) to identify the likely cause.
Example Scan Result
Description
Scanned 15 product pages - 0 contain a JSON-LD Product schema block. No "@type": "Product" found in any application/ld+json script. PageFly template markers detected on 12 of 15 pages.
Impact
Google cannot show product rich results (price, availability, stars) for any product in this store. Estimated CTR loss: 15–35% compared to competitors with valid Product schema.
Recommended Fix
Add a JSON-LD Product schema block to your product template (or PageFly section). Use {{ product.title | json }} and {{ product.selected_or_first_available_variant.price | divided_by: 100.0 }} for dynamic values.
Why It Matters for SEO
Rich Result Eligibility
Product schema is required for Google product rich results - the enhanced search appearance showing price, availability, and stars. Without schema, you only get basic blue links.
Google Shopping Feed Alternative
Organic product schema acts as a signal to Google Shopping. Stores with complete Product schema are more likely to appear in Shopping results without paid listings.
AI and Voice Search Readiness
AI-powered search systems (Google SGE, Bing AI) use structured data to answer product queries. Stores with Product schema have their product facts machine-readable, increasing citation likelihood.
Competitive Gap
Most established Shopify themes include Product schema. Missing it means you're competing without a feature that your competitors likely have by default.
Real-World Validation Signals
- Google's Rich Results documentation explicitly states Product schema is required for product rich result eligibility - absence means zero eligibility regardless of product quality.
- PageFly and Shogun page builders are the most common cause of missing Product schema on otherwise well-built stores, because their templates often don't include structured data.
- Stores that add Product schema to previously schema-free product pages typically see rich result impressions appear in Google Search Console within 3–6 weeks.
- The price field alone (when correctly formatted in schema) is credited by Google as a key trust signal for Shopping-adjacent organic results.
When this may not need fixing
If Google's Rich Results Test already shows a valid Product entity for your product pages, schema is present and working - no action needed. Some stores use JSON-LD apps that inject schema after page load; these appear in Puppeteer-rendered scans but not in static HTML source. Run SEOScan on Pro tier (which uses Puppeteer) to confirm whether app-injected schema is being parsed.
Frequently Asked Questions
Q: Does Shopify automatically add Product schema?
Newer Shopify themes (like Dawn) include basic Product schema by default. However, heavily customised themes, legacy themes purchased before ~2019, and pages built with page builders often lack it. Always verify by checking your page source.
Q: Does missing Product schema hurt my rankings directly?
Not directly - Product schema is not a ranking factor. But it affects CTR by removing rich result eligibility (stars, prices, availability shown in search), which indirectly affects traffic even at the same ranking position.
Q: Can I use a Shopify app to add Product schema instead?
Yes - apps like Schema Plus, Rich Snippets, and JSON-LD for SEO can add Product schema without code changes. However, verify the output with Google's Rich Results Test, as some apps output invalid or incomplete schema.
Q: How do I add Product schema to a PageFly or Shogun page?
Add a Custom HTML element to your PageFly/Shogun template and paste the JSON-LD Product schema inside a <script type="application/ld+json"> tag. Use Liquid variables for dynamic values - both builders support Liquid in Custom HTML blocks.
Check Your Store for This Issue
SEOScan automatically detects shopify missing product schema: how to add json-ld to your store and 4 related issues - with specific fixes for your store.
Run Free ScanRelated Issues
Shopify Review Stars Not Showing in Google Search Results
Structured Data · High
Shopify JSON-LD Parse Error: Finding and Fixing Broken Schema
Structured Data · Critical
Shopify FAQ Schema for Google: Adding FAQPage JSON-LD
Structured Data · Medium
Shopify Product Schema Missing Required Fields
Structured Data · High