Not all structured data errors are worth your time. In Google’s tools, errors are missing required properties or invalid values that make a page ineligible for a rich result — those matter on pages that should earn one. Warnings are recommended-but-optional fields; their absence rarely blocks anything, so most warnings you can ignore. The single most common real problem on Shopify isn’t a warning at all: it’s duplicate product schema, where your theme outputs one block and a review or SEO app outputs another, producing conflicting or invalid markup. Fix errors on eligible pages, deduplicate your schema sources, and stop chasing every yellow flag.
What structured data does on Shopify
Structured data (schema.org markup, usually JSON-LD) is machine-readable labelling that tells
Google what a page is. On a Shopify store the one that earns money is Product schema — it
describes the product’s name, image, price, priceCurrency, availability, and optionally
aggregateRating and review. When it’s valid, Google can show a rich result: the price,
in-stock status, and star ratings right in the search listing.
That extra detail doesn’t rank the page higher on its own — structured data is not a direct ranking factor — but it makes the listing more prominent and clickable, which is why it’s worth getting right. The goal isn’t “zero warnings in Search Console.” The goal is eligible pages that qualify for the rich results you actually want.
Errors vs warnings: what each means
This is the distinction most store owners miss. Google’s Rich Results Test and Search Console → Enhancements report both an Error and a Warning severity, and they mean different things:
| Error | Warning | |
|---|---|---|
| What it is | A required property is missing or has an invalid value | A recommended (optional) property is missing |
| Effect | Page is ineligible for the rich result | Page usually still eligible; result may be less detailed |
| Example | price or availability missing from Product | aggregateRating or brand not supplied |
| Priority | Fix these first | Nice-to-have; ignore unless easy |
| Costs you | The rich result itself | Little to nothing |
The rule of thumb: errors on pages you want in rich results are worth fixing; warnings usually
aren’t. A Product page flagged “missing field ‘price’” can’t show a price rich result — that’s
real. A Product page merely warned it’s missing brand still qualifies — that’s noise.
The common real problems
A handful of issues account for most genuine Shopify structured data errors:
- Duplicate schema from theme + app. Your theme already outputs Product JSON-LD. Then a reviews app, an SEO app, or a page builder adds its own Product block. Now the page has two — sometimes conflicting on price or availability, sometimes both incomplete. Google may pick the wrong one or flag invalid markup.
- Missing required fields.
price,priceCurrency, andavailabilityare the usual offenders — often because a custom or heavily edited theme dropped them, or a product has no price set. - Invalid values.
availabilitymust be a valid schema.org value (e.g.InStock,OutOfStock) — a theme that emits plain text like “Available” is invalid. Prices with currency symbols or thousands separators inside the number also fail. - Review schema misuse. Star ratings from a reviews app must reflect genuine, on-page reviews. Marking up ratings the customer can’t see — or self-serving ratings of your own business — violates Google’s guidelines and can be ignored or penalized.
- Out-of-stock / price mismatches. The schema says
InStockat one price while the visible page says sold out or a different price. Google compares the two; mismatches erode trust in the markup and can drop the rich result.
How to diagnose
Use Google’s own tools, not a plugin’s SEO score:
- Rich Results Test (search.google.com/test/rich-results). Paste a live product URL. It shows detected item types, which are valid, and every error and warning with the exact property at fault. Run it on a real product, a collection, and the home page.
- Search Console → Enhancements (and the Merchant listings / Products reports). This shows issues at scale across your indexed pages, grouped by type, so you can see whether an error hits one template (every product) or one page.
- View source (
Ctrl+U) and search forapplication/ld+json. Count the blocks. Two Product blocks = your duplication smoking gun. Read what each contains.
How to fix each
- Deduplicate: one source of truth per page. Decide whether the theme or an app owns
Product schema, then disable the other. If a reviews app injects
aggregateRating, the cleanest setup is often the theme owning the Product block and the app feeding ratings into it — not two competing blocks. Turn off “add structured data” toggles in apps that duplicate what the theme already does. - Supply required fields. Ensure the theme’s Product JSON-LD emits
price,priceCurrency, and a validavailability. Missing because the theme was customized? That’s a template edit. - Fix invalid values. Map availability to schema.org enums; output raw numeric prices; use ISO currency codes.
- Clean up review schema. Only mark up reviews that are real and visible on the page. Remove self-serving or invisible ratings.
- Sync stock and price. Make the markup reflect the live page state so
availabilityandpricealways match what shoppers see.
Most of these are template-level changes — you’re editing how the theme renders JSON-LD, or untangling which app injects what. That’s exactly the surgery our Shopify development service handles.
When it needs a developer
You can fix app-vs-app duplication from settings. But you need a developer when:
- The theme’s Liquid emits the schema (
{{ product | structured_data }}or a hand-rolled JSON-LD block) and a field is missing, invalid, or duplicated — that’s a theme customization job. - You need custom or additional types (Organization, BreadcrumbList, FAQ, or bundle/offer markup) done correctly and without conflicts.
- The duplication spans theme + multiple apps and you need someone to trace every source and leave exactly one correct block per page.
What NOT to worry about
Being honest saves you hours:
- Optional warnings. “Missing field ‘brand’/‘sku’/‘aggregateRating’” on a page that’s otherwise valid is a warning. Add them if trivial; don’t lose sleep over them.
- Self-serving review stars. Google has largely stopped showing star ratings for schema a site applies to itself rather than to independently reviewable products. If yours don’t show, that’s often policy — not a bug you can “fix” by re-marking it up.
- Schema on pages that don’t earn rich results. Not every page type gets a rich result. A clean Rich Results Test with a few warnings is a perfectly healthy state.
Common mistakes
- Treating every warning as an error and rewriting theme code to chase a green checkmark.
- Adding an SEO app “to fix structured data” on a theme that already outputs valid schema — creating the duplication you were trying to solve.
- Marking up ratings or prices that don’t match the visible page.
- Ignoring a real error (missing
price/availability) because the store “looks fine.” - Assuming structured data will lift rankings — it drives rich results and click-through, not position.
When to get help
If Search Console shows an error across every product (a template issue) or you find two Product blocks in view-source and can’t tell which app to switch off, that’s a technical fix. It often travels with broader SEO problems, so it’s worth a wider pass: run the Shopify SEO checklist, and if visibility is the real concern, see Shopify collection pages not ranking and Shopify pages not indexed by Google — indexing comes before any rich result. For a hands-on look at your store, a free profit audit will tell you which errors actually cost you anything.
Structured data errors in Search Console? Send us your store URL — we’ll tell you which errors actually cost you rich results, fix duplicate or invalid schema at the source, and skip the warnings that don’t matter. See our Shopify development service or get a free profit audit.