AuditTag

Why your Shopify products don't show prices and stars in Google (and how to fix it)

By Sam Parkinson16 September 20264 min read

Search for one of your products in Google. Then search for a competitor's.

If theirs shows a price, a star rating and "In stock" right there in the results, and yours is a plain blue link, you're losing the click before anyone visits either site. Same product, same demand — different structured data.

This is one of the most common, most fixable SEO gaps on Shopify, and it has nothing to do with how good your products are. Here's what's happening and how to sort it.

What product schema actually is

Structured data (also called schema, or JSON-LD) is a block of machine-readable code in the page's <head> that labels what the page is. For a product it says, in a format Google trusts: this is a Product, it costs £220, it has a 4.8 rating from 96 reviews, it's in stock.

Google uses that to build a rich result — the search listing with the price, stars and availability. You can't earn that listing by putting the price in your page text; Google wants the labelled version. No schema, no rich result, lower click-through, fewer visits.

How to check yours in two minutes

  1. Open a product page, right-click, View Page Source, and search (Ctrl/Cmd-F) for Product. If you see "@type":"Product" you have something.
  2. Paste the URL into Google's free Rich Results Test. It tells you whether the page is eligible for a product rich result, and lists any errors or missing recommended fields.

If the test says "Product snippets detected" with no errors, you're in good shape. If it finds nothing, or flags missing offers, price or availability, that's your gap.

The three gaps we see most on Shopify

1. No product schema at all. Some themes and older setups emit none. The Rich Results Test finds nothing. This is the big one, and the biggest opportunity.

2. Reviews on the page but not in the schema. Your reviews app (Judge.me, Loox, Okendo, Yotpo…) shows stars on the storefront, but those stars aren't in the structured data, so they never reach the results page. All that social proof stops at the browser. Most review apps have a setting to output AggregateRating schema — turn it on, then re-test.

3. Partial schema. The Product is there but offers, price, priceCurrency or availability are missing, so Google validates the type but won't show the rich result. The Rich Results Test will name exactly which recommended fields are absent.

A nuance most SEO tools get wrong: ProductGroup is fine

If your products have variants (sizes, colours, weights), Shopify often expresses them as a ProductGroup with each variant nested inside a hasVariant array, like this:

{
  "@context": "https://schema.org",
  "@type": "ProductGroup",
  "name": "Competition Olympic Barbell",
  "hasVariant": [
    { "@type": "Product", "name": "15kg", "offers": { "@type": "Offer", "price": "220.00", "priceCurrency": "GBP", "availability": "https://schema.org/InStock" } },
    { "@type": "Product", "name": "20kg", "offers": { "@type": "Offer", "price": "250.00", "priceCurrency": "GBP" } }
  ]
}

This is valid, Google-recommended markup for variant products — the Products live inside the group. Some SEO checkers only look at the top level, see ProductGroup instead of Product, and wrongly tell you your product schema is "missing." (We know, because our own audit did exactly that once, on a store whose markup was perfect — we fixed it.) So before you rebuild anything: if the Rich Results Test is happy, your schema is fine, whatever a scoring badge says.

How to fix it

If you have partial or no schema: the durable fix is one correct JSON-LD block per product, reflecting what's already true on the page — never invented. On Shopify that belongs in a theme snippet (the <head> isn't editable from the admin product fields). Add it to a duplicate theme, test with the Rich Results Test, and publish when it's clean.

If it's your reviews: enable schema output in your reviews app, and check it isn't being blocked or duplicated by the theme.

Either way, re-run the Rich Results Test after, and expect the rich result to appear within a crawl or two — not instantly, but soon.

Not sure which of your pages are missing it?

AuditTag runs a free audit that tells you precisely which product pages are missing schema — and correctly ignores the ones that already have valid ProductGroup markup. No app, no access to your store, and you review every change before it goes live. If you want it done, the fix pack hands you the corrected theme snippet to paste in yourself.

Run a free audit →

Either way, start by checking one product in the Rich Results Test. Five minutes now can be the difference between a plain link and a listing that sells. You can also read a whole sample fix pack to see exactly what a corrected snippet looks like before you spend anything.

Keep reading