You search your own product on Google and something's off. The little yellow stars under your listing β the ones that have been there for months β are gone. No error message, no email from Google. Just... no stars, and a click-through rate that's quietly eroding while the competitor one spot below keeps theirs.
Good news: in the vast majority of cases, the cause is one of the five below, and three of them take less than an hour to fix.
First: verify it yourself in 2 minutes (don't take anyone's word for it)
- Open Google's Rich Results Test and paste your product page URL.
- You'll get one of three outcomes:
- "No items detected" β your product markup is missing or was never there (causes 1, 2, 3 below).
- Items detected, with errors β markup exists but is broken (causes 2, 4).
- Everything green β the markup is fine; the problem is indexing or eligibility, not schema (cause 5).
- Cross-check with Search Console β Enhancements β "Products". The valid-items chart over time tells you exactly WHEN it broke β usually the day of a theme update or an app install/change.
Cause 1 β An app overwrote (or silently dropped) your markup
The most common cause by far. Review apps (Judge.me, Loox, Yotpo, and similar) and some SEO apps inject their own Product schema. Two ways this goes wrong:
- The duplicate: your theme already renders a
Productblock, and the app adds a second one with a different price or rating. Google ends up with two contradictory versions of the same listing β and either picks one at random or shows nothing at all. Classic symptom: "the stars show up some days and not others." - The JavaScript injection: the app doesn't write anything into the server-rendered HTML β it injects the schema via JavaScript after the page loads. Google usually gets around to executing it, but late and unreliably. The day that script gets blocked, changed, or fails silently, everything disappears with zero visible symptom on your storefront.
The fix: one single source of truth. If your review app has a "structured data" toggle, turn off either that toggle or your theme's native product schema block β never leave both active at once.
Cause 2 β A JSON-LD block became unreadable
Your schema lives inside <script type="application/ld+json"> blocks. It only takes one app concatenating two JSON documents together, or leaving a stray control character in there, for the entire block to become unparseable β and Google silently ignores the whole thing. Your site works perfectly, your customers see nothing wrong, and your stars just switch off.
Verify it: paste the URL into validator.schema.org and look for parsing errors.
The fix: find the app or theme section generating the broken block (search for a snippet of its text inside the theme code editor) and fix or disable it.
Cause 3 β The theme update that quietly took the markup with it
Modern Shopify themes (Dawn and its OS 2.0 derivatives) generate product schema natively. But a theme redesign, a purchased theme, or a developer "cleaning up" theme.liquid can strip the snippet out without anyone noticing β it doesn't render anything visible, so nobody catches it until the stars vanish weeks later.
The fix: compare against a backup of the theme, or reintroduce a server-rendered structured-data.liquid snippet pulling price, currency, availability, and image straight from the current product object β never hardcoded values.
Cause 4 β The price in your markup no longer matches the price on the page
A sale applied halfway, a currency-conversion app, a hardcoded price left over from a theme edit: if the "machine" price diverges from what shoppers actually see, Google loses trust in the listing. And if you run Google Shopping, Merchant Center can flat-out disapprove the product for an "inconsistent value."
Verify it: compare the price the Rich Results Test detects against the price actually displayed on the page.
The fix: in the theme, the schema's price must be pulled from the exact same variable as the displayed price (product.selected_or_first_available_variant.price) β never a duplicated or hardcoded value. (We cover this failure mode in depth in the companion piece on Merchant Center disapprovals, linked below.)
Cause 5 β The page isn't indexable anymore, period
The most brutal of the five: a noindex tag applied by mistake β often a seo.hidden metafield inherited from a CSV import, an SEO app rule, or a stray theme edit β removes the page from Google entirely. Stars included, because there's no listing left to attach them to.
Verify it: type site:yourstore.com/products/your-product into Google. Zero results means the page no longer exists as far as Google is concerned. (We go deep on this exact failure mode, including the cases where noindex is intentional, in the companion article linked below.)
The real problem: nobody's watching
None of these five failures produce a visible symptom on your storefront. They're discovered weeks later, buried in a Search Console chart nobody checks, while your click-through rate quietly drifts to the competitor who still has their stars. Of 77 Shopify stores we scanned in July 2026, 27% had at least one critical issue like this β without knowing it.
Run your own check. We scan these 5 causes (plus a dozen more) in about 2 minutes, read-only, with no access to your admin. β free scan
Next in this cluster
Not sure if this is happening on your store right now?
Scan my store for free