What Review schema is
Per Schema.org v30.0, Review is 'a review of an item — for example, of a restaurant, movie, or store.' Inheritance: Thing > CreativeWork > Review. Key properties: author (Person or Organization), datePublished, reviewBody (Text — the full review text), reviewRating (Rating with ratingValue), itemReviewed (the Product being reviewed), publisher. Optional: positiveNotes, negativeNotes for extraction-friendly pro/con summaries.
The self-serving policy applied to individual Reviews
Google's review snippet policy treats individual Reviews and AggregateRating identically: an entity reviewing itself cannot earn the star snippet. On Shopify, a Review emitted from the Shopify Product Reviews app or a custom in-house review system is self-serving — structurally valid, but no stars. A Review syndicated from an independent third-party platform (Yotpo, Stamped.io, Reviews.io, Trustpilot, Google Customer Reviews) is treated as independent.
Review fields
The Review properties Google requires for valid review snippets: author (Person with name, or Organization), datePublished (Date), reviewBody (Text — the review content) or name (Text — the review title), reviewRating (Rating with ratingValue, optionally bestRating and worstRating), itemReviewed (handled implicitly when Review is nested inside Product). Reviews missing any of these fail the Rich Results Test.
JSON-LD example — Review array inside Product
The block below shows a Review array inside a Shopify Product block, using Liquid to iterate through review metafields from a third-party app. Limit to the most recent 3–5 reviews to keep page weight manageable.
Validation
Rich Results Test against a PDP with individual Reviews should report Product detected, Review objects parsed, and (if the reviews are third-party) eligibility for review snippets. Common warnings: 'Either reviewBody or name is required' (the review must have either the full text or a title), 'Missing field author' (every Review needs an author Person object). Errors typically come from missing reviewRating.ratingValue.
Shopify gotchas on Review
Three gotchas catch most Shopify Review schema work. First: emitting too many Reviews — 50+ individual Review objects bloat the page and add no rich-result benefit beyond what AggregateRating already provides. Cap the loop at 3–5. Second: emitting Reviews without escaping reviewBody, which breaks the JSON when customers leave quotes or backslashes in their text. Third: emitting Reviews from the self-serving Shopify Product Reviews app expecting stars (you won't get them; the markup still helps AI engines).