Skip to content
Published

The 2026 Shopify JSON-LD library

Shopify product schema and structured data

Shopify ships Product schema baked into every theme1name, image, description, an Offer with price and availability. That's the floor, not the ceiling. The 2026 Shopify catalog AI shopping platforms actually surface needs Brand, GTIN, AggregateRating, Organization, WebSite, BreadcrumbList, and (for Merchant Center) hasMerchantReturnPolicy + shippingDetails15 — almost none of which Shopify themes auto-emit. This pillar is the library.

Two reasons schema gets its own section on a Shopify site in 2026. First, Shopify Catalog is the data source ChatGPT, Perplexity, Gemini, Copilot, and Shop pull from for product data3, and structured data is the language they read fastest. Second, Shopify's own AI-optimization doc names "structured data and product attributes" as one of seven things merchants should make sure their products carry4. Stores that ship clean schema beyond theme defaults get picked up; stores relying on auto-emission alone don't.

What Shopify structured data is, in one paragraph

Structured data on Shopify is JSON-LD — a JSON-shaped, script-tag-wrapped block that names the entities on a page (Product, Offer, Brand, Organization, WebSite, BreadcrumbList) and declares their properties (name, price, sku, gtin, sameAs). Shopify themes auto-generate Product JSON-LD on product pages — that's the platform-supplied floor. Everything else (site-wide Organization, WebSite SearchAction, BreadcrumbList, Article, MerchantReturnPolicy, shippingDetails) is the merchant's responsibility, injected into theme.liquid or per-template section files using Liquid variables so the markup composes dynamically per product, collection, and post.

The mental model: schema is the metadata layer of your storefront, written in a vocabulary every Google index, Bing index, ChatGPT-User retrieval, Perplexity-User crawl, and Gemini search uses to identify entities. The HTML Shopify renders describes what a human sees. The JSON-LD your theme emits describes what a machine reads. The same product page can be a clean PDP to a customer and a clearly-typed Product entity with an attached Offer, Brand, AggregateRating, and shippingDetails to Google's understanding layer at the same time — and the two layers do not interfere.

JSON-LD The minimal shape of a JSON-LD block
 <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Product", "name": "Your product title" } </script> 

The vocabulary lives at schema.org7, version 30.0 (released 2026-03-19). On a typical Shopify store you'll use about fourteen of its types — Product, Offer, Brand, AggregateRating, Review, BreadcrumbList, Organization, WebSite, Article, FAQPage, MerchantReturnPolicy, OfferShippingDetails, plus the GTIN identifier properties (gtin8 / gtin12 / gtin13 / gtin14) inside Product. The library on this pillar covers all of them.

Why schema matters more for AI shopping than for Google in 2026

Schema started as a Google rich-results play. In 2026 the bigger payoff on a Shopify store is AI shopping citation and Shopify Catalog inclusion. ChatGPT, Perplexity, Gemini, Copilot, and Shop all pull from Shopify Catalog — and Shopify's own optimisation doc names structured data and product attributes as one of the seven things merchants should make sure their products carry. A product with clean Product + Offer + Brand + AggregateRating + GTIN + shippingDetails JSON-LD gives an AI shopping engine a one-read path to the entity, the price, the brand, the rating, and the fulfilment story. A product with only Shopify's auto-emitted block forces the engine to infer those signals from prose, which it does worse and trusts less.

The reason is structural. Google has been parsing pages for two decades and inferring product entities from clean HTML reasonably well; structured data was a nice-to-have unless you were chasing a specific rich result. AI shopping agents, by contrast, are newer and rely on retrieval-time parsing rather than years of accumulated entity graphs. When ChatGPT-User or Perplexity-User fetches a Shopify PDP to consider for citation, it has seconds to decide what the product is, who makes it, what it costs, whether it ships to the customer, and whether the merchant accepts returns — and JSON-LD answers all five questions on a single read.

Shopify schema by the numbers

14

schema types cover the workload of a typical Shopify store — the library on this pillar.

Schema.org · 2026-03-19
May 7

the 2026 date Google retired FAQ rich results for non-government, non-health sites.

Google Search Central · 2026-05-07
Yes

Shopify themes auto-emit Product JSON-LD on PDPs (per Shopify's own SEO overview).

Shopify Help · 2026-05-22

What Shopify themes already emit (and where it stops)

Shopify's SEO overview states verbatim: 'Schema markup for products is built into themes to enable rich snippets.' In practice, the canonical view-source audit on a fresh Dawn-derivative theme finds Product JSON-LD with name, image, description, an offers object containing price + priceCurrency + availability + url, and on most themes brand (mapped from product.vendor) and sku. What Shopify themes do NOT auto-emit reliably: gtin properties (even when the Barcode field is populated), aggregateRating, review, hasMerchantReturnPolicy, shippingDetails, site-wide Organization, WebSite with SearchAction, BreadcrumbList JSON-LD (some themes emit visible breadcrumbs but no JSON-LD), Article JSON-LD on blog posts, FAQPage JSON-LD anywhere.

The implication: layering on a Shopify storefront is mostly additive, not replacement. Author a complementary JSON-LD block that adds the missing entities without re-declaring the fields Shopify already emits. Two top-level Product blocks with overlapping fields produce duplicate-entity warnings in the Rich Results Test; one Shopify auto-emission plus one merchant-authored @graph that references the existing Product by @id is the clean pattern.

Where Shopify schema still triggers rich results in 2026

What still triggers visible enhancements in Google Search: Product (rich snippets if Merchant Center aligned), Offer (price + availability on the Product card), Review and AggregateRating (review snippets, with the self-serving disqualifier), BreadcrumbList (URL-trail in results), Article (Top Stories carousel for news, organic enhancement for editorial). What no longer triggers rich results: FAQPage (retired 2026-05-07 for non-government, non-health sites). What helps AI shopping citation regardless of Google's decision: every type below.

This changes install priority on Shopify. Pre-2024 the high-value schema types were Product + Review + FAQ + HowTo. Today the high-value types are Product + Offer + Brand + AggregateRating + GTIN for Shopping/Merchant Center surfaces, plus Organization + WebSite + BreadcrumbList for AI-engine entity attribution. FAQPage still belongs on the right Shopify pages — the FAQ hub itself, a knowledge-base index — but the visible accordion result is gone for general Search.

Adding custom JSON-LD via theme.liquid

Custom JSON-LD on Shopify lives in two places: theme.liquid (site-wide entities like Organization and WebSite that fire once per page) and the per-template section files (main-product.liquid for Product, main-list-collections.liquid for collection BreadcrumbList, main-article.liquid for Article). Shopify's own SEO FAQ explicitly names theme.liquid, main-product.liquid, and main-list-collections.liquid as the three templates merchants debug structured data inside. The injection pattern is a single script tag with type='application/ld+json' containing one object or a @graph array. The block uses Liquid variables (product.title, product.featured_image, product.vendor, shop.url) so the markup re-renders dynamically per product.

The split between theme.liquid and section files matters because of cardinality. An Organization entity describes the brand — it should fire once per page, defined once, in theme.liquid where every template inherits it. A Product entity describes one specific product — it has to be defined inside main-product.liquid (or product-template.liquid on older themes) so the Liquid variables resolve to the current product. Putting Product schema in theme.liquid means the variables are unbound on non-product pages and the schema fails to render.

The validation workflow: Rich Results Test plus Schema.org validator

Two validators handle 2026 Shopify schema work. Google's Rich Results Test (search.google.com/test/rich-results) tells you whether Google sees the markup, parses the entities, and considers the page rich-result eligible — but only for the rich-result types Google still supports. The Schema.org Markup Validator (validator.schema.org) tells you whether the JSON-LD is structurally valid against the Schema.org vocabulary regardless of Google's rich-result decisions. Use both. Rich Results Test first for Product, Offer, Review, AggregateRating, BreadcrumbList, Article. Schema.org validator for FAQPage (post-2026-05-07), MerchantReturnPolicy, OfferShippingDetails, and any custom @graph composition Google's tool no longer specifically tests.

The validators answer different questions. Rich Results Test answers "will Google show this as an enhancement?" (a Google-product question). Schema.org validator answers "is the markup structurally valid?" (a vocabulary question). A Shopify page can pass the Schema.org validator and fail to trigger a Google rich result — that's the FAQ scenario today, and that's fine if your goal is AI engine extraction rather than SERP visibility. Conversely, a page that fails the Schema.org validator probably won't be reliably extracted by anyone, AI engine or Google.

The 14 types, in install order

Fourteen schema types cover the workload of a typical Shopify storefront. The install order, in priority sequence: Organization (the brand entity, in theme.liquid) → WebSite (with SearchAction, also in theme.liquid) → Product (verify what the theme auto-emits, layer on the missing fields) → Offer (inside Product, with price, availability, priceValidUntil) → Brand (inside Product) → GTIN / Barcode (Shopify's Barcode field maps to gtin) → BreadcrumbList (per template) → AggregateRating + Review (when independent reviews exist) → hasMerchantReturnPolicy → shippingDetails → Article (on blog posts) → FAQPage (on the FAQ hub only, post-2026-05-07). Skip the ones that don't apply. Author the rest in priority order.

Each leaf below covers one type. The structure is the same on every page: what the schema describes, when to use it, the current 2026 rich-results status from Google Search Central, the required and recommended fields per Schema.org, what Shopify themes auto-emit (so you don't duplicate), a full copy-paste JSON-LD example for a realistic Shopify product/page, where to paste it inside theme.liquid or the section file, validation steps, and the gotchas that catch first-time installs.

Start with the leaf that matches the page you're working on. If you're shipping a fresh Catalog Readiness install on a new Shopify store, the order is: Organization first, WebSite second, Product third, then everything inside Product (Offer, Brand, AggregateRating, GTIN, hasMerchantReturnPolicy, shippingDetails) in a single per-template block, then BreadcrumbList, then Article on the blog if there is one.

hasMerchantReturnPolicy and shippingDetails — the 2026 grey zone

Two properties dominate 2026 Shopify schema discussions: hasMerchantReturnPolicy (MerchantReturnPolicy with applicableCountry, returnPolicyCategory, merchantReturnDays) and shippingDetails (OfferShippingDetails with shippingRate, shippingDestination, deliveryTime). Industry SEO publications (Jan–May 2026) repeatedly state Google AI Overviews now treats both as effectively required on Product schema — without them, a product is invisible to AI shopping agents. Shopify's primary docs do not codify this requirement at the verification window, so the AI Overviews claim is unverified against primary sources — but the fields are worth adding regardless. Reason: Schema.org documents both as canonical Offer properties, and Google Merchant Center has required them for Shopping eligibility for over a year.

Practical rule of thumb. If you sell physical goods on Shopify, ship hasMerchantReturnPolicy referencing your Shopify policy page and shippingDetails describing your real shipping rates and delivery windows. The work is two MerchantReturnPolicy + OfferShippingDetails objects inside main-product.liquid using Liquid variables. The full implementation walkthroughs live on the hasMerchantReturnPolicy leaf and the shippingDetails leaf.

The six mistakes that catch first-time Shopify installs

Six mistakes account for most failed Shopify schema installs in 2026: smart quotes in the JSON (Shopify's admin editor auto-corrects), duplicate Product emission (the theme already emits it, so the merchant's block creates a second top-level Product), site-wide injection of per-template schema (Product schema in theme.liquid fails because product.* variables are unbound off PDPs), missing application/ld+json mime type (the block is then ignored), claiming entities the page doesn't visibly support (FAQPage on a page with no Q&A, Review on the store's own product where the reviews are self-serving), and hard-coded strings where Liquid variables belong (the block declares 'Coastal Vase No. 3' on every product because the developer forgot product.title).

The fixes are quick once you know what to look for. Author the JSON in a plain text editor (VS Code, not the Shopify admin code editor's rich text), use Liquid variables for every product-specific field, view source on the live page after deploying via Theme Editor / ThemeKit / Shopify CLI, and confirm the JSON renders as JSON rather than as escaped HTML. Run the Rich Results Test on one URL per template type. The full diagnostic list lives on the JSON-LD via theme.liquid leaf.

  1. HOW-TO Shopify Product schema fields and rich results Product schema What Shopify themes auto-emit on PDPs, what's missing for AI shopping, and the full Product JSON-LD a 2026 Shopify catalog needs. 10-min read
  2. HOW-TO Shopify Offer schema price availability Offer schema Offer is the transaction sub-object inside Product. price, priceCurrency, priceValidUntil, availability, seller — what Shopify ships and what to layer on. 8-min read
  3. HOW-TO Shopify Brand schema Brand schema The Brand object inside Product. Why a vendor-only Shopify field is not enough and what AI engines actually read. 7-min read
  4. HOW-TO Shopify AggregateRating schema reviews AggregateRating schema Stars in the SERP and AI citation lift. Which Shopify review apps emit it cleanly and which leave merchants installing it by hand. 8-min read
  5. HOW-TO Shopify Review schema self-serving rule Review schema Individual Review objects on PDPs. The self-serving rule that disqualifies Shopify's own native review apps from star snippets. 8-min read
  6. HOW-TO Shopify Breadcrumb schema theme BreadcrumbList schema What Shopify themes auto-emit on collection paths, what they miss on filtered collections, and the per-template JSON-LD pattern. 7-min read
  7. HOW-TO Shopify Organization schema sameAs Organization schema Site-wide Organization JSON-LD in theme.liquid. sameAs, contactPoint, logo — the entity AI engines use to confirm the brand. 8-min read
  8. HOW-TO Shopify WebSite schema sitelinks searchbox WebSite schema WebSite + SearchAction. The Sitelinks Searchbox pattern and what Shopify's /search path means for it. 7-min read
  9. HOW-TO Shopify Article schema blog post Article schema Article JSON-LD for the Shopify blog. headline, author, datePublished, dateModified, image — what the theme ships and what's missing. 8-min read
  10. HOW-TO Shopify FAQPage schema 2026 retirement FAQPage schema Google retired FAQ rich results 2026-05-07 for general Search. Why FAQPage JSON-LD still belongs on the right Shopify pages. 9-min read
  11. HOW-TO Shopify GTIN ISBN UPC barcode field GTIN, UPC, EAN, ISBN Shopify's Barcode field maps to GTIN. What it accepts, when AI engines and Merchant Center demand it, and where to put it. 8-min read
  12. HOW-TO Shopify hasMerchantReturnPolicy AI Overviews hasMerchantReturnPolicy The property third-party SEO sources call newly required for AI Overviews. Required for Merchant Center; we recommend it either way. 8-min read
  13. HOW-TO Shopify shippingDetails schema Merchant Center shippingDetails OfferShippingDetails with shippingRate, shippingDestination, deliveryTime. Why Shopify themes do not auto-emit this and how to layer it. 8-min read
  14. HOW-TO Shopify custom JSON-LD theme liquid Custom JSON-LD via theme.liquid The two-line script tag pattern, where to inject it inside the <head>, and the Liquid scope rules for product / collection / article. 10-min read
  15. HOW-TO Shopify Rich Results Test validation Rich Results Test on Shopify Running Google's Rich Results Test against a Shopify storefront — what to expect, what to ignore, what blocks a clean pass. 8-min read
  16. EXPLAINER Shopify schema app vs native JSON-LD Schema apps vs theme-native JSON-LD for SEO, Smart SEO, Avada — the schema app market vs hand-rolled theme.liquid. When each is worth the trade-off. 9-min read