← All articles

Product JSON-LD on Shopify: How to Check Yours in 2 Minutes (and When to Fix It)

Product JSON-LD is a small block of machine-readable data on your product pages that states, unambiguously, what the product is, what it costs, whether it's in stock and who makes it. Google has used it for years to power shopping results. AI assistants lean on the same signal: it's the difference between a system that can verify your product exists at a price, and one that has to guess from prose.

Check yours right now (2 minutes, no tools)

1. Open any product page on your store

A real product, not a collection page.

2. View the page source

Right click, "View Page Source" (or add view-source: before the URL in Chrome).

3. Search for "@type": "Product"

Press Ctrl+F / Cmd+F and search for Product inside a script type="application/ld+json" block. Found it? You have Product JSON-LD. Now sanity-check what's inside it.

What a healthy block contains

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Ceramic Pour-Over Dripper V2",
  "image": ["https://cdn.shopify.com/.../dripper-1.jpg"],
  "description": "Handmade stoneware dripper, 12cm, fits #2 filters...",
  "brand": { "@type": "Brand", "name": "Studio Clay Co" },
  "offers": {
    "@type": "Offer",
    "price": "48.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://studio-clay.com/products/ceramic-dripper-v2"
  }
}

The fields that matter most: name, image, description, brand, and inside offers: price, priceCurrency and availability. Note that the markup only carries what your catalog contains. If your description is two words in Shopify admin, your JSON-LD dutifully broadcasts two words. Structured data is plumbing; the water is still your product data.

The three common situations

It's there and complete: leave it alone

Nearly every modern Shopify theme (anything Online Store 2.0 era) emits solid Product JSON-LD out of the box. If the block is present with real values, you're done. Do not install an app to "improve" working markup.

It's there twice: pick one source

A theme block plus an SEO app block means duplicate, sometimes conflicting markup (two prices, two availabilities). Machines distrust conflicts. Disable structured data in either the app or the theme, not both.

It's missing or empty: fix the source

Usually caused by a heavily customized or very old theme, or an app that stripped it. Options, in order: update the theme, re-enable the theme's structured data setting, or use a reputable structured-data app. Then re-run the 2-minute check.

Verify with a proper validator

Google's Rich Results Test (search that phrase, it's free) fetches your page and lists every structured-data item it can read, with errors. Paste a product URL, confirm a Product item appears with no critical errors, and you have machine-verified markup.

JSON-LD is one of nine checks.

FoundRate's free scan checks whether ChatGPT actually recommends your store and grades the catalog data behind it: foundrate.co/scan. About a minute, no install.