CatalogScan

SEO Guide · 2026

Shopify Customer Reviews and AI Agent Recommendations: The Structured Data Gap

78% of Shopify stores have zero AggregateRating in their product JSON-LD — even stores with thousands of reviews and active review apps. The problem is almost always JavaScript rendering: the review widget loads after the page, so AI crawlers never see it.

TL;DR AI shopping agents use AggregateRating JSON-LD as a quality and trust signal. Review apps that render ratings as JavaScript widgets are invisible to AI crawlers. Check your page source for "AggregateRating" — if it is not there, your reviews are not helping AI recommendations. Judge.me outputs JSON-LD server-side by default; Yotpo requires explicit configuration; most others need custom fixes.

Why 78% of Shopify stores fail AggregateRating

Our CatalogScan analysis of 100 top Shopify stores found that despite most running review apps, only 22% had AggregateRating in their product JSON-LD. The root cause in almost all cases:

  1. JavaScript-rendered review widgets: The review app loads star ratings and counts via JavaScript after page load. AI crawlers (GPTBot, PerplexityBot, ClaudeBot, Googlebot-Shopping) execute limited or no JavaScript. They parse the HTML as initially served — and the rating is not there yet.
  2. App injection into Liquid, not JSON-LD: Some apps inject a visually correct rating display in Liquid templating, but do not add the corresponding JSON-LD block to the structured data. The human visitor sees 4.8 stars; the AI crawler sees no rating data at all.
  3. Disabled JSON-LD export in app settings: Several review apps have a toggle for "export structured data" that defaults to off. Merchants install the app, see the star widget, and assume the job is done — but the JSON-LD export was never turned on.

How to verify your AggregateRating is crawlable

# Check your product page source for AggregateRating JSON-LD
# (this is what AI crawlers actually see, before JavaScript runs):
curl -s -A "Mozilla/5.0 (compatible; Googlebot/2.1)" \
  "https://yourstore.com/products/your-product" | \
  grep -i "AggregateRating" | head -5

# Expected output if working:
# "AggregateRating","ratingValue":"4.8","reviewCount":"127"

# If no output: your AggregateRating is JavaScript-only and invisible to AI crawlers

Review app comparison: AggregateRating JSON-LD support

Review appJSON-LD outputDefault stateHow to enable
Judge.me Server-rendered Enabled by default Works out of the box; verify in page source
Yotpo Optional Disabled by default Settings → SEO → Enable Structured Data
Okendo Configurable Partial (may require theme integration) Contact Okendo support for JSON-LD snippet
Stamped.io JavaScript-only Not server-rendered Manual JSON-LD snippet required (see below)
Loox JavaScript-only Not server-rendered Manual JSON-LD snippet required
Shopify Product Reviews (native) Server-rendered Basic JSON-LD included Works by default; limited feature set
Ali Reviews Optional Requires theme code edit Follow app documentation for JSON-LD snippet

Correct AggregateRating JSON-LD format

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailblazer Boot Mid",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127",
    "bestRating": "5",
    "worstRating": "1"
  }
}

Key requirements:

Manual AggregateRating Liquid snippet (for apps without native JSON-LD)

{% if product.metafields.reviews.rating.value != blank %}

{% endif %}

This works if your review app stores ratings in Shopify's standard reviews.rating and reviews.rating_count metafields — which Judge.me, Yotpo, and Okendo do. Add this snippet to your product.liquid (or product-template.liquid) file.

How AI agents use AggregateRating in practice

AI agentAggregateRating useImpact
Google AI Mode Used in Shopping ranking; shown in product comparison cards with star display Products with ratings rank above equivalent unrated products in price comparison results
ChatGPT Shopping (Bing) Bing indexes rating from JSON-LD and Bing Webmaster verified sources; shown in chat comparison Rated products shown with star count in ChatGPT Shopping UI; higher trust signal
Perplexity Commerce Uses AggregateRating plus crawled review text to generate product quality summaries Strong ratings + substantive reviews → cited as "highly rated" in Perplexity answers
Google Shopping (non-AI) Seller ratings shown as star overlay on Shopping ads Higher CTR on Shopping ads; eligibility for Product Ratings badge

Common AggregateRating errors to fix

ErrorIncorrectCorrect
Zero reviews "reviewCount": "0" Remove AggregateRating entirely until you have at least 1 review
Wrong scale "ratingValue": "9.6" with "bestRating": "5" Use "bestRating": "10" for 10-point scales
Rating not in structured data Stars shown as HTML image/CSS only Add JSON-LD block with numeric ratingValue and reviewCount
JavaScript-only output JSON-LD injected after DOMContentLoaded Render JSON-LD in initial HTML response (server-side Liquid)

Check if your reviews are visible to AI

CatalogScan scans your product page for AggregateRating JSON-LD and flags missing or malformed review schema.

Scan my store →

FAQ

Do customer reviews affect AI shopping recommendations for Shopify stores?

Yes, significantly. AggregateRating JSON-LD is a key trust and quality signal for Google AI Mode, ChatGPT Shopping, and Perplexity Commerce. Our scan found 78% of Shopify stores have no AggregateRating in their product JSON-LD despite many running review apps — usually because review apps render ratings via JavaScript that AI crawlers don't execute.

Which Shopify review apps correctly output AggregateRating JSON-LD?

Judge.me outputs server-rendered AggregateRating JSON-LD by default — the most AI-friendly option. Yotpo requires enabling structured data in settings. Okendo requires theme integration. Stamped.io and Loox are JavaScript-only and need manual JSON-LD snippets. Always verify by checking your page source (Ctrl+U) and searching for "AggregateRating".

What is the correct AggregateRating JSON-LD format for Shopify?

Include ratingValue (average score, numeric), reviewCount (must be greater than 0), bestRating (maximum scale, typically 5), and worstRating (minimum, typically 1). Never output reviewCount: 0. Ensure it is in the initial HTML response, not JavaScript-injected after page load.

How many reviews do I need before AggregateRating helps AI recommendations?

At least 1 to be valid, but practical impact starts at 10+ reviews. Products with 10+ reviews and 4.3+ average see measurable Google AI Mode impressions uplift. Products with 50+ reviews and 4.5+ rating consistently outperform equivalent unrated competitors in AI price comparison results.