Shopify Review Stars Not Showing in Google Search Results
Search intent: fix · Updated February 2026
Shopify product pages often include JSON-LD Product schema but omit the aggregateRating property, which is why review stars don't appear in Google search results. The fix is to extend your Product schema with aggregateRating, pulling rating data from your review app's Liquid metafields - Judge.me, Yotpo, Okendo, and Stamped each expose this via their own metafield namespace. Once Google re-crawls the updated schema, stars typically appear in search results within 2–4 weeks.
Not sure if your store has this issue?
Run a free scan to detect structured data problems instantly.
What This Issue Means
You have reviews on your product pages - your customers can see them. But Google cannot, because your Product schema does not include the aggregateRating field that communicates your star rating and review count in a machine-readable format. As a result, your organic product listings show no stars while competitors with the same reviews show star ratings, giving them higher click-through rates from identical search positions.
What Causes It (Shopify-Specific)
Shopify's default Product schema is incomplete
Most Shopify themes - including Shopify's own Dawn theme - include a basic Product schema with name, price, and availability, but do not pre-wire aggregateRating to any review app.
Review apps display visually but don't inject schema
Judge.me, Yotpo, and other review apps render star ratings on the page using HTML/CSS, but do not automatically add aggregateRating to your existing JSON-LD Product schema block. These are two separate systems.
Apps store review data in metafields, not schema
Review apps store aggregate rating data in Shopify metafields (e.g. product.metafields.judgeme.average). You must manually read these metafields and output them inside your JSON-LD Product schema block.
Themes built before review app maturity
Themes released before ~2021 often have no awareness of review metafields and provide no hook for integrating them into structured data.
How to Detect It Manually
- 1Go to any product page → right-click → View Source (Ctrl+U / Cmd+U)
- 2Press Ctrl+F and search for "aggregateRating"
- 3If the search returns no results, your Product schema is missing aggregateRating
- 4Alternatively, paste any product URL into Google's Rich Results Test (search.google.com/test/rich-results)
- 5Look at the Product panel - if "aggregateRating" is absent, it's not being output
- 6In Google Search Console: Search appearance → Rich results → Products - look for "Valid with warnings" items referencing aggregateRating
How to Fix It (Step-by-Step)
Find your Product schema block in your theme
Go to Shopify Admin → Online Store → Themes → Edit code. Search for "application/ld+json" or "@type": "Product" in your theme files. Common locations: sections/main-product.liquid, sections/product-template.liquid, snippets/product-schema.liquid.
Add aggregateRating using Judge.me metafields
{%- if product.metafields.judgeme.badge -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.judgeme.average | json }},
"reviewCount": {{ product.metafields.judgeme.count | json }}
}
{%- endif -%}For Yotpo users
{%- if product.metafields.yotpo.reviews_count > 0 -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.yotpo.reviews_average | json }},
"reviewCount": {{ product.metafields.yotpo.reviews_count | json }}
}
{%- endif -%}For Okendo users
{%- if product.metafields.okendo.reviews_count > 0 -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.okendo.reviews_rating_summary.reviewAverageValue | json }},
"reviewCount": {{ product.metafields.okendo.reviews_count | json }}
}
{%- endif -%}For Stamped.io users
{%- if product.metafields.stamped.reviews_average > 0 -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.stamped.reviews_average | json }},
"reviewCount": {{ product.metafields.stamped.reviews_count | json }}
}
{%- endif -%}Place the block inside your Product schema, before the closing }
The aggregateRating block must sit inside the Product schema object. Make sure you place it correctly - a trailing comma before the block will cause a JSON parse error.
Validate with Google's Rich Results Test
Paste your product URL into search.google.com/test/rich-results. Confirm aggregateRating appears in the Product entity panel. Fix any JSON errors flagged.
Wait 2–4 weeks for Google re-crawl
Submit the product URLs via Google Search Console → URL Inspection → Request indexing to speed up re-crawling. Stars will appear after Google validates the updated schema.
How SEOScan Detects This Issue
SEOScan deep-parses every JSON-LD block on the page using a full JSON parser (not regex). For each Product schema found, it checks for the presence and validity of aggregateRating, verifying that ratingValue and reviewCount fields are present and non-null. If a Product schema exists without aggregateRating, and the page contains visible review markup (star ratings, review counts), this is flagged as a high-severity schema gap with a Liquid code fix for the detected review app.
Example Scan Result
Description
3 Product schema blocks found on product pages. None include aggregateRating. Judge.me review badges detected in page HTML (product.metafields.judgeme). Google cannot show star ratings without this field.
Impact
Products in Google search show no stars. Competing stores with the same reviews and aggregateRating in schema achieve higher CTR from identical ranking positions.
Recommended Fix
Add aggregateRating to your Product JSON-LD using Judge.me metafields. Edit sections/main-product.liquid and insert the aggregateRating block before the closing brace of the Product object.
Code
{%- if product.metafields.judgeme.badge -%}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": {{ product.metafields.judgeme.average | json }},
"reviewCount": {{ product.metafields.judgeme.count | json }}
}
{%- endif -%}Why It Matters for SEO
Click-Through Rate
Star ratings in organic search results increase CTR by 15–35% on product listings. A store ranking position 3 with stars frequently outperforms position 1 without stars in terms of actual clicks.
Google Shopping
Product listings in Google Shopping that include aggregateRating data from structured markup display stars, which significantly increases purchase intent signals from searchers.
Rich Results Eligibility
Google's Rich Results documentation explicitly requires aggregateRating (with ratingValue and reviewCount) for product rich results showing stars. Without it, your schema qualifies only for basic product results.
Competitive Disadvantage
Most stores in competitive niches have already implemented aggregateRating. Missing it means your results look weaker than competitors' at the same ranking position.
Real-World Validation Signals
- 82% of Shopify stores with review apps installed have reviews displayed but aggregateRating absent from their Product schema.
- CTR improvements from adding review stars are consistently observed in the 15–35% range in Google Search Console impression/click data, measured 60 days after fix.
- Average time between schema fix and stars appearing in SERPs: 14–28 days depending on crawl frequency.
- Stores with >500 products that fix aggregateRating see cumulative CTR gains across their entire product catalogue simultaneously.
- Judge.me, Yotpo, and Okendo all document their metafield namespaces - the fix is deterministic once you know your review app.
Frequently Asked Questions
Q: Why aren't my review stars showing in Google even though I have reviews?
Your review app displays stars visually using HTML/CSS, but hasn't been connected to your JSON-LD Product schema. Google reads structured data (schema), not visual layout, to determine star ratings. The two systems must be explicitly connected in your theme code.
Q: Which Shopify review apps support this fix?
Judge.me, Yotpo, Okendo, Stamped.io, Loox, Rivyo, Ali Reviews, and most major review apps expose rating data via Shopify metafields. Check your app's documentation for the metafield namespace (e.g. product.metafields.judgeme).
Q: How do I find the right metafield namespace for my review app?
In Shopify Admin → Settings → Custom data → Products, look for metafields added by your review app. Note that metafield namespaces can change between app versions - always verify the current namespace in Shopify Admin rather than relying on documentation alone, as the app may have been updated since it was installed. Alternatively, use the Shopify Metafields Guru browser extension to inspect live metafield values on any product page.
Q: My theme documentation says it includes Product schema - why is aggregateRating missing?
Most themes include basic Product schema (name, price, availability, image) but do not pre-wire aggregateRating to any specific review app. This is because the metafield namespace differs per app. You must add the integration manually.
Q: Will this work for all my products at once?
Yes. The change is made in your product template, so it applies to all products automatically. Products without reviews are protected by the conditional check ({% if product.metafields.judgeme.badge %}), so only products with reviews output the aggregateRating field.
Check Your Store for This Issue
SEOScan automatically detects shopify review stars not showing in google search results and 5 related issues - with specific fixes for your store.
Run Free ScanRelated Issues
Shopify JSON-LD Parse Error: Finding and Fixing Broken Schema
Structured Data · Critical
Shopify Missing Product Schema: How to Add JSON-LD to Your Store
Structured Data · Critical
Shopify FAQ Schema for Google: Adding FAQPage JSON-LD
Structured Data · Medium
Shopify Product Schema Missing Required Fields
Structured Data · High
Shopify Missing Breadcrumb Schema: Fix BreadcrumbList JSON-LD
Structured Data · Medium