Skip to content
Issue docs

No Review or Rating schema

Standardreview_rating_schemaIssue 93

What is this issue?

This issue reports a Review schema block your page already declares that is missing itemReviewed or reviewRating — not a page that carries no review markup at all.

What this issue is not: it does not guess that a page showing star ratings or customer testimonials in its visible content ought to carry Review schema. A page with no declared Review block is never reported. It also does not check the numeric range of a rating value here — that range check only runs when a rating is nested inside a Product (reported under #108). A standalone AggregateRating block (#107) is checked for the presence of ratingValue/reviewCount only, never for range.

Why it matters

AggregateRating schema significantly impacts click-through rates and trust:

  • Star ratings in search: Pages with star ratings get 35% more clicks on average
  • Social proof: Users trust businesses and products with visible ratings
  • Rich snippets: Enables review count and rating display in search results
  • Local SEO: LocalBusiness with ratings appear more prominently in maps
  • AI search signals: AI engines use rating data to recommend top-rated options
  • Conversion rates: Products with ratings have higher conversion rates

Resolving this issue improves your SEO health score by adding powerful social proof signals that increase click-through rates and user trust.

How to fix it

If this issue was raised, your page already declares a Review block missing itemReviewed or reviewRating — open the finding for which one. The steps below are for adding review markup to a page that has none: worthwhile, and never reported as a defect while absent.

  1. Add a Review block for any genuine, published customer or editorial review:

    {
      "@context": "https://schema.org",
      "@type": "Review",
      "itemReviewed": {
        "@type": "Product",
        "name": "Product Name"
      },
      "author": { "@type": "Person", "name": "Reviewer Name" },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      },
      "reviewBody": "The review text as shown on the page."
    }
  2. Include both required properties:

    • itemReviewed: the thing being reviewed (a Product, LocalBusiness, etc.)
    • reviewRating: a Rating (or AggregateRating) with at least a ratingValue
  3. Match the schema to what is on the page: the rating and review text must reflect real, visible content — do not publish a Review for a testimonial that was never posted.

  4. For a summary rating across many reviews, use AggregateRating (see #107) instead of, or alongside, individual Review blocks.

  5. Validate with Google's Rich Results Test

Examples

Example 1: No Schema Declared — Not This Issue

<!-- Product page with visible customer reviews, but no Review schema -->
<html>
  <body>
    <h1>Wireless Headphones</h1>
    <div class="review">"Great sound quality!" — verified buyer</div>
  </body>
</html>

Nothing is reported. A page's visible testimonials do not, on their own, trigger this check.

Example 2: A Well-Formed Review (passes)

{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Product",
    "name": "Wireless Headphones"
  },
  "author": { "@type": "Person", "name": "Alex Rivera" },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "4",
    "bestRating": "5"
  },
  "reviewBody": "Great sound quality and battery life."
}

Example 3: Review Missing itemReviewed (fails)

Problematic state:

{
  "@context": "https://schema.org",
  "@type": "Review",
  "reviewRating": { "@type": "Rating", "ratingValue": "4" }
}

Reported: itemReviewed missing.

Corrected state:

{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": { "@type": "Product", "name": "Wireless Headphones" },
  "reviewRating": { "@type": "Rating", "ratingValue": "4" }
}

Example 4: Review Missing reviewRating (fails)

Problematic state:

{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": { "@type": "Product", "name": "Wireless Headphones" },
  "reviewBody": "Solid headphones."
}

Reported: reviewRating missing.

Corrected state: add a reviewRating object with at least a ratingValue.


A Review nested inside a Product's review array is validated the same way, and a reviewRating whose ratingValue falls outside its declared scale is reported under the Product's own issue (#108) rather than here. A standalone AggregateRating block missing ratingValue or reviewCount is issue #107.

How PixyScan detects this

  1. Read the declared structured data: every JSON-LD block is parsed, and @graph wrappers are flattened.

  2. Select declared Review entities: any schema block whose @type is Review — whether declared at the top level or nested inside another schema (e.g. a Product's review array). A page that declares no Review schema is not examined.

  3. Check the required properties: a declared Review must have itemReviewed and reviewRating.

  4. This is reported when: a declared Review block is missing itemReviewed or reviewRating. A page with no Review schema at all is never reported.

Two related but separate checks:

  • A reviewRating (or a Product's aggregateRating) whose ratingValue is out of its declared scale is validated separately — under the parent Product's own issue (#108) when nested inside a Product, since that is where the value-range rule runs.
  • A standalone AggregateRating block missing ratingValue or reviewCount is issue #107, not this one.

What we store

Storage Level

Page Level — This issue is evaluated for each individual URL that contains structured data.


Database Table / Prisma Model

PageStructuredData


Stored Fields

Field Type Description
schemaType SchemaType The type of schema (e.g., Organization, Person)
schemaFormat SchemaFormat The format of the schema (JSON-LD, Microdata, RDFa)
schemaIdentifier String? Unique identifier for the schema
rawJson Json? The raw JSON-LD or structured data content
schemaErrors Json? Array of validation errors found in the schema
isValidSchema Boolean? Whether the schema is valid according to validation
missingFields Json? Reserved for future use — the crawler always writes null here today; no check currently populates it

Detection Dependencies

  • The following data sources are required to evaluate this issue:
  • HTML Document — The crawler parses the HTML to find structured data (JSON-LD, Microdata, RDFa)
  • Structured Data Validation — The extracted schema is validated against Schema.org definitions
  • Schema Parser — JSON-LD scripts, Microdata attributes, and RDFa markup are parsed

Further reading