seoschema.orggoogle-rich-snippets

Aggregate review is missing on Google SERP


Recently I've lost my star review on Google SERP. I know that reasons may be differents and various, but I would to be sure that I didn't made mistakes on code:

   <div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating" style="text-align:right;">
         <b><span itemprop="ratingValue">5</span> on 
         <span itemprop="bestRating">5</span> based on <span itemprop="reviewCount">857</span> reviews</b>
   </div> 

Could Google have released an update?


Solution

  • The code snippet you provided in the main post: in isolation is not valid according to Google SDTT.

    The review has no reviewed item specified

    <div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating" style="text-align:right;">
      <b><span itemprop="ratingValue">5</span> on 
      <span itemprop="bestRating">5</span> based on <span itemprop="reviewCount">857</span> reviews</b>
    </div>
    

    This is fixed by adding in itemprop="itemreviewed"

    <div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating" style="text-align:right;">
      <h3 itemprop="itemreviewed">Mario Bros service</h3>
      <b><span itemprop="ratingValue">5</span> of 
      <span itemprop="bestRating">5</span> based on <span itemprop="reviewCount">857</span> reviews</b>
    </div>
    

    Instances of AggregateRating may appear as values for the following properties

    • Brand
    • CreativeWork
    • Event
    • Offer
    • Organization
    • Place
    • Product
    • Service

    Source - http://schema.org/AggregateRating


    Your full snippet in the comments (which I have simplified) is using the Organization schema http://schema.org/Organization and a different vocabulary for Review aggregate

    <html itemscope itemtype="http://schema.org/Organization">
      <body>
        <div class="review">
          <div itemprop="review" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
            <img itemprop="rating" src="#" alt="173 recensioni" />
            <span itemprop="count">173 recensioni</span>
          </div>
        </div>
      </body>
    </html>
    

    Which has multiple errors.


    The valid way would be:

    Using data-vocabulary.org

    <html itemscope itemtype="http://schema.org/Organization">
      <body>
        <div>
          <h1 itemprop="name">Mario Bros</h1>
          <div itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
            <h3 itemprop="itemreviewed">Mario Bros service</h3>
            <p>
              <span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
                <em itemprop="average">5</em> out of <em itemprop="best"> 5 </em>
              </span>
              <b>based on</b>
              <!-- How many people rated this item? -->
              <em itemprop="votes">173</em> ratings.
            </p>
            <p>
              <!-- How many people reviewed this item? -->
              <em itemprop="count">45 </em> user reviews.
            </p>
          </div>
        </div>
       </body>
    </html>
    

    Using schema.org

    <html itemscope itemtype="http://schema.org/Organization">
      <body>
        <div>
          <h1 itemprop="name">Mario Bros</h1>
            <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
              <em itemprop="ratingValue">5</em> out of <em itemprop="bestRating">5</em> based on <em itemprop="ratingCount">24</em> user ratings.
            </div>
        </div>
       </body>
    </html>
    

    You also mentioned in comments that they are products:

    products such as curtains, roll-up, etc

    This is Google's example from the Products data type:

    <div itemscope itemtype="http://schema.org/Product">
      <img itemprop="image" src="dell-30in-lcd.jpg" />
      <span itemprop="name">Dell UltraSharp 30" LCD Monitor</span>
      <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
        <span itemprop="ratingValue">87</span>
        out of <span itemprop="bestRating">100</span>
        based on <span itemprop="ratingCount">24</span> user ratings
      </div>
    </div>
    

    Modified for your criteria would be:

    <html itemscope itemtype="http://schema.org/Organization">
      <body>
        <div>
          <h1 itemprop="name">Mario Bros</h1>
            <div itemscope itemtype="http://schema.org/Product">
              <img itemprop="image" src="curtains.jpg" />
              <span itemprop="name">Acme brand Curtains</span>   
              <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
                <em itemprop="ratingValue">5</em> out of <em itemprop="bestRating">5</em> based on <em itemprop="ratingCount">173</em> reviews.
              </div>
            </div>
        </div>
       </body>
    </html>
    

    Enchanced further:

    <html itemscope itemtype="http://schema.org/Organization">
      <body>
        <div>
          <h1 itemprop="name">Mario Bros</h1>
            <div itemscope itemtype="http://schema.org/Product">
              <span itemprop="brand">Acme brand</span>
              <img itemprop="image" src="curtains.jpg" />
              <span itemprop="name">Acme brand Curtains</span>   
              <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
                <em itemprop="ratingValue">5</em> out of <em itemprop="bestRating">5</em> based on <em itemprop="ratingCount">173</em> reviews.
              </div>
              <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                <!--price is 1000, a number, with locale-specific thousands separator and decimal mark, and the € character is marked up with the machine-readable code "EUR" -->
                <span itemprop="priceCurrency" content="EUR">€</span>
                <span itemprop="price" content="1000.00">1,000.00</span>
                <link itemprop="availability" href="http://schema.org/InStock" />
                <span>In stock</span>
              </div>              
            </div>
        </div>
       </body>
    </html>