Shopify Product JSON-LD

Product JSON-LD on Shopify: which fields to check and how to validate

Direct answer. Shopify themes usually emit Product structured data. Shopify’s structured_data Liquid filter converts a product object to schema.org JSON-LD (Product when there are no variants; ProductGroup when there are). On a live product page, check that the JSON-LD includes name, image, description, sku or gtin, brand, and an Offer with price, priceCurrency, and availability as schema.org/Product and Google’s product structured-data documentation describe those properties. Validate with a markup tester on the live URL. This page describes those fields in prose; it does not decide ranking. Not legal advice.

Agentic Catalog by momiji (Shopify App Store · Write a review) audits Product JSON-LD and Open Graph completeness on live product pages, reviews policy, shipping, tax, domain, and product data in one readiness score, and reviews fix guidance so you can rerun scans. This page is the field-by-field reading aid — not a catalog-wide live-page audit by itself, and not a ranking or inclusion promise.

Related: Staff Access Audit Guard — Staff access audit for permission drift after the last review.

Free check first: Product JSON-LD field checker runs in your browser and sends nothing. Paste product JSON-LD and see which merchant-listing fields are present or missing.

Checklist: fields to read in the live Product JSON-LD

Those names are property names from schema.org and Google’s product structured-data pages. Required versus recommended status can differ between a product snippet and a merchant listing; read the live Google table rather than this checklist. Shopify’s filter example also emits url, offers.url, and offers.@type Offer. Missing fields in a theme default are common when description, vendor/brand, barcode, or a variant price is empty in Admin.

How themes usually output it

Shopify documents the Liquid pattern {{ product | structured_data }} inside an application/ld+json script. Online Store 2.0 themes often include that filter or an equivalent Product JSON-LD snippet. A theme that emits some Product JSON-LD is not proof that every live URL is complete. Apps can add a second Product graph; Google’s documentation treats conflicting or duplicate Product markup as a validation risk. Confirm what the live HTML actually contains.

How to validate

  1. Open a live product URL, view source, and find application/ld+json blocks whose @type is Product or ProductGroup.
  2. Confirm the checklist properties above are present and non-empty. For variants, Shopify documents ProductGroup output; look for the offer on the variant the page represents.
  3. Paste the live URL into Google’s Rich Results Test and, if you want schema.org-level checking, the Schema Markup Validator.
  4. Re-check after theme, app, or catalog edits. A single preview in the theme editor is not a catalog-wide pass.

Google’s product documentation is the source for which fields a given rich-result type expects. This page does not claim that filling the checklist produces a rich result or AI-shopping inclusion.

What this page is not

Related pages

Not legal advice. Confirm schema.org, Google’s product structured-data documentation, and the live theme output before you treat a product page as complete. The app audits live pages; it does not guarantee rich results.