Almost every Shopify theme ships some product structured data, and almost every review app adds its own. The two rarely agree, and the usual result is markup that contradicts itself or duplicates the same entity twice on one page.
Broken markup is worse than no markup, because it disqualifies the page from rich results silently. Nothing errors, nothing warns, the stars simply never appear.

What Does Your Store Already Output?
Audit before adding anything, because the most common problem on Shopify is too much markup rather than too little.
Where it usually comes from:
- The theme, which typically emits Product markup by default
- The review app, which emits its own AggregateRating and sometimes a second Product entity
- SEO apps, which add another layer on top of both
- Manually added snippets left over from a previous agency

What Does Google Require?
The markup must match what is visible on the page, and ratings must come from real users.
The requirements that decide eligibility:
- Ratings must come from genuine user reviews of the product
- Those reviews must be visible on the page carrying the markup
- The entity rated must be reasonably described by the reviews
- Price and availability in the markup must match the page
Worth knowing: Google’s self-serving review restriction, where an entity publishes reviews about itself, applies to LocalBusiness and Organization markup. It does not apply to Product markup, so genuine product reviews on your own store remain eligible for star display.

How Do You Keep Price and Availability Accurate?
Generate them from the same source the page renders from, never hard-code them. Markup that claims a price the page no longer shows is a contradiction, and on a store prices change constantly.
What to check:
- Price updates in the markup when a product goes on sale
- Availability reflects real stock status rather than always claiming in stock
- Currency matches the market being served, particularly on multi-market stores
- Variant pricing is handled so a range is expressed correctly rather than as one figure
- Sold-out products do not continue claiming availability
What Else Should Shopify Product Pages Mark Up?
Breadcrumbs, and shipping and returns detail where it qualifies.
Beyond the core Product and Offer:
- Breadcrumb markup, so the result shows a readable category path instead of a raw URL
- Shipping and returns, where the detail qualifies for enhanced display
- Brand, which matters more than expected on stores selling their own goods
- Product identifiers where they exist, and the exemption correctly declared where they do not
Why Does Broken Markup Cost More Than No Markup?
Because it fails silently and because the penalty for spam is domain-wide.
Two separate risks:
- Silent disqualification. Conflicting entities mean the page never earns a rich result, with no error to alert you
- Manual action. Marking up reviews that are not genuine or not visible is structured data spam, and a manual action can strip rich results across the entire domain rather than the offending page
The second is why fabricated ratings are never worth it. The upside is stars on some products. The downside is every product page you own.
Last Thoughts on Shopify Product Markup
On Shopify the job is usually removal and reconciliation rather than addition. Find what the theme emits, find what each app emits, keep one correct Product entity and delete the rest.
Then confirm price and availability are generated from the same source the page renders, and that reviews are genuine and visible. The Shopify SEO service includes the markup audit, and Core Web Vitals and apps covers the other cost those same apps impose.
Key Takeaways
- The common Shopify problem is too much markup, not too little. Theme and apps both emit Product data.
- Broken markup fails silently: no error, no warning, the stars simply never appear.
- Product markup is exempt from the self-serving review restriction that applies to Organization markup.
- Generate price and availability from the same source the page renders from. Never hard-code them.
- Add breadcrumb markup so results show a category path rather than a raw URL.
- A manual action for structured data spam can strip rich results domain-wide, not just on one page.
Frequently Asked Questions (FAQs)
Does Shopify add product schema automatically?
Most themes do, and review apps usually add their own. The frequent result is two conflicting Product entities on one page.
Why do my product pages never show star ratings?
Usually conflicting markup from the theme and a review app, or reviews that are marked up but not visible on the page.
Can I show reviews from my own store in schema?
Yes. The self-serving restriction applies to LocalBusiness and Organization markup, not to Product markup, provided reviews are genuine and visible.
Does price in schema need to match the page?
Yes. Generate it from the same source the page renders from, so sales and variant pricing never contradict the markup.
What happens if I mark up fake reviews?
Google can issue a manual action for structured data spam, which can remove rich results across the whole domain rather than one page.
Want More Sales From Search?
Get a free, no-obligation store audit and a clear plan to grow your revenue.