Back to AI & Future SEO
AI & Future SEO - Step 7 of 7
Tip: Bookmark this Free SEO Tool for quick access later

Shopify & Ecommerce Multi JSON-LD Schema Script Generator

Build clean, Google-compliant multi JSON-LD schema markup for your Shopify store - product pages, collections, reviews, FAQs and more. No bloat, no coding required. The Laughing Professor

Open the Generator

JSON-LD Schema Builder

Ecommerce

Content

Shopify / Ecommerce JSON-LD Generator

Output:
No schemas built yet

Select a schema type from the left to begin.

Review & AggregateRating nest inside Product by default.
FAQPage always outputs as its own standalone script.

What is a Shopify JSON-LD Schema Generator?

Structured data you add to your page's HTML - a small block of code that tells Google exactly what your content is: a product, a review, a business, a FAQ. It doesn't change what visitors see, but it dramatically changes how search engines and AI tools read and present your page.

Google uses it to generate rich results - star ratings, price snippets, FAQ dropdowns, and sitelinks that appear directly in search, before anyone clicks. For Shopify stores, this is one of the highest-leverage SEO improvements you can make.

Why Schema Tags Matter

Star ratings in search results
AggregateRating
Price & stock snippets
Product + Offer
FAQ dropdowns in SERP
FAQPage
🏠
Breadcrumb navigation
BreadcrumbList
🏢
Business info & hours
LocalBusiness
🔍
Sitelinks search box
WebSite

Why Use This Generator?

Built specifically for Shopify and ecommerce - not a generic one-size-fits-all tool.

⚡ One clean script, no bloat

Combine multiple schema types into a single @graph block. Reduces duplicate code and keeps page load fast.

✓ Google rules enforced

FAQPage always outputs standalone. Review and AggregateRating nest inside Product by default - exactly how Google expects them.

🔗 Platform-aware nesting

Already using a review app? Uncheck the nesting toggle - no conflicts with Judge.me, Yotpo, or Okendo.

📝 Fill only what you have

Empty fields are never included. No invalid "" values, no broken schema. Only what you enter makes it in.

📊 Built-in validation hints

Flags missing required fields before you open Google's Rich Results Test. Fewer round-trips, faster implementation.

📄 Copy or download, paste & go

Each output block has its own copy button, ready to drop into your Shopify Liquid template or theme editor.

Google's Key Schema Rules for Shopify Stores

One FAQPage per page maximum
Google ignores any additional FAQPage blocks. This tool always outputs it as a separate standalone script so you can manage it independently.
AggregateRating must reference a specific item
When nesting inside Product, the item reference is inherited automatically. When standalone, you must specify the item name and type.
Don't duplicate what your platform already outputs
Shopify's base theme and many review apps output their own schema. Use this tool to supplement missing fields, not replace existing ones.
Only include data visible on the page
Google requires schema properties match visible content. Don't add a rating if reviews aren't displayed on the page - it triggers a manual action.
Never mark up content you don't own
Schema is for your own page's content only. Marking up third-party reviews, products, or businesses you don't control is a guideline violation.

Shopify Implementation Guide

How to add structured data scripts to your Shopify theme templates. Assumes you've generated your JSON-LD above.

Which template file to edit:

product.liquid

  • Product schema
  • AggregateRating (nested)
  • Review (nested)
  • BreadcrumbList

📚 collection.liquid

  • CollectionPage schema
  • BreadcrumbList
  • Organization

🏠 index.liquid

  • WebSite schema
  • Organization
  • LocalBusiness

📄 article.liquid

  • Article / BlogPosting
  • Person (author)
  • BreadcrumbList

👥 page.liquid

  • FAQPage (standalone)
  • Person
  • LocalBusiness

🏭 theme.liquid

  • WebSite (site-wide)
  • Organization (site-wide)
  • Never add page-specific schema here
Don't add product or FAQ schema to theme.liquid - it loads on every page. Page-specific schemas belong in page-specific templates.

Method A - Theme editor (no code, easiest)

1

Open Online Store ? Themes

From your Shopify admin, go to Online Store ? Themes and click Customize on your active theme.

2

Navigate to the correct page template

Use the page type dropdown at the top. Switch to Products, Collections, or whichever template you need.

3

Add a Custom Liquid block

Click Add section ? search for Custom Liquid. Position it at the bottom - it won't affect visible layout.

4

Paste your JSON-LD script & save

Paste the full <script type="application/ld+json"> block. Save, then validate with Google's Rich Results Test.

Method B - Code editor with Liquid variables (recommended for product pages)

product.liquid - dynamic JSON-LD
{% comment %} JSON-LD Product Schema {% endcomment %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Product",
      "name": {{ product.title | json }},
      "description": {{ product.description | strip_html | json }},
      "image": {{ product.featured_image | img_url: 'master' | prepend: 'https:' | json }},
      "brand": { "@type": "Brand", "name": {{ product.vendor | json }} },
      "sku": {{ product.selected_or_first_available_variant.sku | json }},
      "offers": {
        "@type": "Offer",
        "price": {{ product.price | money_without_currency | remove: ',' }},
        "priceCurrency": {{ cart.currency.iso_code | json }},
        "availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %}
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.8",
        "reviewCount": "124"
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Home", "item": {{ shop.url | json }} },
        { "@type": "ListItem", "position": 2, "name": {{ product.type | json }}, "item": "{{ shop.url }}/collections/{{ product.type | handleize }}" },
        { "@type": "ListItem", "position": 3, "name": {{ product.title | json }}, "item": "{{ shop.url }}{{ product.url }}" }
      ]
    }
  ]
}
</script>
AggregateRating note: Shopify doesn't expose review counts natively. If you use Judge.me, Yotpo, or Okendo, replace the hardcoded values with their Liquid objects (e.g. product.metafields.reviews.rating).
Pro tip: Use the Rich Results Test on your Shopify theme preview URL before publishing - you can validate changes before they go live.

PDF Downloads

Click any button to download

Frequently Asked Questions

Do I need a JSON-LD schema generator for my Shopify store?

Yes - for Shopify stores, adding JSON-LD schema is one of the highest-leverage SEO improvements you can make. It enables rich results like star ratings, price snippets, and FAQ dropdowns that appear before anyone clicks your listing. This generator builds clean, Google-compliant schema without any coding required.

Combined @graph vs separate script blocks - which is better?

A combined @graph block merges multiple schema types into a single script tag, reducing duplicate code and keeping things tidy for Google to parse. Both approaches are valid, but @graph is generally preferred. FAQPage must always be its own standalone script block regardless of which mode you choose.

Should I nest AggregateRating and Review inside my Product schema?

Yes - nesting is the correct and Google-preferred approach for rich result eligibility. The only exception is if your Shopify review app already outputs its own review schema; in that case, uncheck the nesting toggle to avoid conflicts.

Why does FAQPage always output as a standalone script block?

Google only allows one FAQPage per page. By always outputting it as a separate script tag, this generator ensures you can manage it independently and that Google can reliably detect your FAQ dropdowns in search results.

Will adding JSON-LD schema guarantee rich results?

Adding valid schema makes your pages eligible for rich results, but Google doesn't guarantee them. To maximise your chances: fill all required fields (price and image are mandatory for Product rich results), validate with Google's Rich Results Test, and only include schema for content that is actually visible on the page.

How do I test my JSON-LD schema?

Three tools: (1) Google Rich Results Test for rich result eligibility; (2) Schema.org Validator for structural errors; (3) Google Search Console ? Search Appearance ? Rich Results for real-world data across your whole store.

This tool is part of The Laughing Professor On Page SEO Toolbox, where multiple diagnostics and generators are combined into a single workflow for site optimization.

View More SEO Tools Web Design Report Card OG Meta Tag Generator