Rich snippets - Reviews

New! schema.org lets you mark up a much wider range of item types on your pages, using a vocabulary that Google, Microsoft, and Yahoo! can all understand. Find out more. (Google still supports your existing rich snippets markup, though.)

When review information is marked up in the body of a web page, Google can identify it and use it to understand and present the information on your pages. Review information such as ratings and descriptions can help users to better identify pages with good content.

Usage guidelines

The goal of a review rich snippet is to provide users with review information about a specific product or service, such as the star rating (1 to 5 stars) and the name of reviewer(s).

The following guidelines apply to review snippets:

  • When using review markup, the main topic of the page needs to be about a specific product or service. For example, using review markup on a page containing multiple products is not supported.
  • Review of adult-related products or services are not supported.
  • If the markup contains a single review, the reviewer’s name needs to be a valid name (Person or Organization). For example, "50% off until Saturday" is not a valid name for a reviewer.

You can mark up either individual reviews (for example, an editor's review of a product), or aggregate review information—for example, the average rating for a local business or the total number of user reviews submitted.

Use the individual Review format for pages containing a single review. For pages containing a collection of reviews, use the Review-aggregate format. If your page contains both (for example, an editor's review plus a set of user reviews), we recommend picking one format. Use the individual Review format to mark up the editor's review OR you can use the Review-aggregate format to summarize the set of user reviews. If a page contains both types of markup, Google will use the Review-aggregate markup for display.

Note: There are many possible ways to indicate review ratings—for example, stars, percentages, and various rating scales. More information about how to convey review ratings.

Individual reviews

example of a Google rich snippet showing review data

Properties

A Review can contain a number of different properties which you can label using microdata, microformats, or RDFa markup. Google recognizes the following Review properties, derived from the hReview microformat. In general, you can use the same property name for microdata, microformats, and RDFa; where the microdata/RDFa and microformats property names differ, the microformats name appears in parentheses. Properties in bold are required. In addition, at least one of the following must be present: rating or dtrviewed.

Property Description
itemreviewed (item) The item being reviewed. In microformats, can include the name of the item reviewed (fn).
rating A numerical quality rating for the item (for example, 4). You can indicate a rating scale by specifying best (default: 5) and worst (default: 1). More information about review ratings.
reviewer The author of the review.
dtreviewed The date that the item was reviewed in ISO date format.
description The body of the review.
summary A short summary of the review.

The following HTML code contains a review of L'Amourita Pizza.

<div>
L’Amourita Pizza
Reviewed by Ulysses Grant on Jan 6.
Delicious, tasty pizza on Eastlake!
L'Amourita serves up traditional wood-fired Neapolitan-style pizza, 
brought to your table promptly and without fuss. An ideal neighborhood pizza joint.
Rating: 4.5
</div>

The following sections describe how to mark up this content using microdata, microformats, or RDFa.

Microdata

Here is the same HTML code marked up with microdata:

<div>
  <div itemscope itemtype="http://data-vocabulary.org/Review">
    <span itemprop="itemreviewed">L’Amourita Pizza</span>
    Reviewed by <span itemprop="reviewer">Ulysses Grant</span> on
    <time itemprop="dtreviewed" datetime="2009-01-06">Jan 6</time>.
    <span itemprop="summary">Delicious, tasty pizza in Eastlake!</span>
    <span itemprop="description">L'Amourita serves up traditional wood-fired Neapolitan-style pizza, 
      brought to your table promptly and without fuss. An ideal neighborhood pizza joint.</span>
    Rating: <span itemprop="rating">4.5</span>
  </div>
</div>

Here's how this sample works:

  • On the first line, <itemscope itemtype="http://data-vocabulary.org/Review"> indicates that the HTML enclosed in the <div> represents a review. itemscope indicates that the content of the <div> describes an item, and itemtype="http://data-vocabulary.org/Review" indicates that the item is a review.
  • The sample describes properties of the review, such as the subject of the review, the reviewer, and the date reviewed. To label review properties, each element containing one of these properties (such as <div> or <span>) is assigned an itemprop attribute indicating a property. For example, <span itemprop="reviewer">.
Microformats

Here is the same HTML content marked up with the hReview microformat.

​<div class="hreview">
   <span class="item">
      <span class="fn">L’Amourita Pizza</span>
   </span>
   Reviewed by <span class="reviewer">Ulysses Grant</span> on
   <span class="dtreviewed">
      Jan 6<span class="value-title" title="2009-01-06"></span>
   </span>.
   <span class="summary">Delicious, tasty pizza on Eastlake!</span>
   <span class="description">L'Amourita serves up traditional wood-fired   
   Neapolitan-style pizza, brought to your table promptly and without fuss. 
   An ideal neighborhood pizza joint.</span>
   Rating: 
   <span class="rating">4.5</span>
</div>

Here's how this sample works.

  • In the first line, class="hreview" indicates that the HTML enclosed in the <div> describes a review.
  • The structured information is conveyed by the class attribute (such as class="rating" and class="reviewer", and the values (such as 4.5, Ulysses Grant). You can change the tags such as span and div to suit your formatting needs.
  • Properties can contain other properties. In the example above, the property item describes the subject of the review, and includes the subproperty fn(name).

Non-visible text

We recommend providing date information in ISO date format. This helps ensure that your information appears correctly in search results. You can provide this information, while still displaying a human-readable date on the page itself, by using the microformats value class pattern.

Consider this snippet from the HTML sample above:

   <span class="dtreviewed">
      Jan 6<span class="value-title" title="2009-01-06" />
   </span>.

By including this date information inside the block labeled with class="dtreviewed", you indicate that the rich snippets parser should use the value in the title attribute to find the date the review was written.

Nested entities

In your review, you may want to use the people format to provide information about the reviewer, or use the organization format to describe a business being reviewed. In this case, you can nest the person or business entity inside your review entity. More information about nested entities.

RDFa

​Here is the same HTML content marked up with RDFa.

<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Review">
   <span property="v:itemreviewed">L’Amourita Pizza</span>
   Reviewed by
   <span property="v:reviewer">Ulysses Grant</span> on
   <span property="v:dtreviewed" content="2009-01-06">Jan 6</span>.
   <span property="v:summary">Delicious, tasty pizza on Eastlake!</span>
   <span property="v:description">L'Amourita serves up traditional wood-fired 
   Neapolitan-style pizza, brought to your table promptly and without fuss. 
   An ideal neighborhood pizza joint.</span>
   Rating:
   <span property="v:rating">4.5</span>
</div>

Here's how this sample works.

  • The example begins with a namespace declaration using xmlns. This indicates the namespace where the vocabulary (a list of entities and their components) is specified. You can use the xmlns:v="http://rdf.data-vocabulary.org/#" namespace declaration any time you are marking up pages for people, review, or place data. Be sure to use a trailing slash and # (xmlns:v="http://rdf.data-vocabulary.org/#" ).
  • Also on the first line, typeof="v:Review" indicates that the marked up content is a review.
  • Each property of the review (such as the subject of the review and the reviewer) is labeled using property. The property name is prefixed with v: (<span property="v:rating">).

Non-visible text

We recommend providing date information in ISO date format. This helps ensure that your information appears correctly in search results. You can provide this information, while still displaying a human-readable date on the page itself, by using the "content" attribute.

Consider this snippet from the HTML sample above:

  <span property="v:dtreviewed" content="2009-01-06">Jan 6</span>

By including this date information in the content attribute, you indicate that the rich snippets parser should use this value to find the date the review was written.

Nested entities

In your review, you may want to use the people format to provide information about the reviewer, or use the organization format to describe a business being reviewed. In this case, you can nest the person or business entity inside your review entity. More information about nested entities.

Aggregate reviews

Google also recognizes markup about aggregated reviews. For example, a restaurant may have 24 reviews, with an average rating of 9 out of 10. Aggregating reviews allows you to convey this information.

image of a Google rich snippet for an aggregate review of a restaurant

Properties

Google recognizes the following aggregate review properties, derived from the hReview-aggregate microformat. In general, you can use the same property name for microdata, microformats, and RDFa; where the microdata/RDFa and microformats property names differ, the microformats name appears in parentheses.  Properties in bold are required. Each item must include at least one of either count or votes.

Property Description
itemreviewed(item) The item being reviewed. In microformats, can include the name of the item reviewed (fn).
rating A numerical quality rating for the item (for example, 4). You can indicate a rating scale by specifying best (default: 5) and worst (default: 1). More information about review ratings.
count The total number of reviews for the item on your site. Note: Whenever you include count, the page must also contain review markup for each reviewed item. count should only include reviews on your own site.
votes Specifies the number of people who provided a rating with or without an accompanying review. A page must specify at least one of count or votes.
summary A short summary of the collection of reviews that are being aggregated.
photo The photo or the image of the item being reviewed.

The following code represents an aggregated review of L'Amourita Pizza.

<div>
L’Amourita Pizza
9 out of 10, based on 24 ratings.
5 user reviews.
</div>

The next sections explain how to mark up this content using microdata, microformats, or RDFa.

Microdata

Here's the same HTML code marked up with microdata.

  <div itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
    <span itemprop="itemreviewed">L’Amourita Pizza</span>
    <img itemprop="photo" src="pizza.jpg" />
    <span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
      <span itemprop="average">9</span>
      out of <span itemprop="best">10</span>
    </span>
    based on <span itemprop="votes">24</span> ratings.
    <span itemprop="count">5</span> user reviews.
  </div>    

Here's how this sample works:

  • On the first line, <itemscope itemtype="http://data-vocabulary.org/Review-aggregate"> indicates that the HTML enclosed in the <div> represents an aggregate review. itemscope indicates that the content of the <div> describes an item, and itemtype="http://data-vocabulary.org/Review" indicates that the item is a review.
  • The sample describes properties of the aggregate review, such as the subject of the review and the rating. To label aggregate review properties, each element containing one of these properties (such as <div> or <span>) is assigned an itemprop attribute indicating a property. For example, <span itemprop="itemreviewed">.
  • A property can consist of another item (in other words, an item can include other items). For example, the review above includes a rating (itemtype="http://data-vocabulary.org/Rating") with the properties average, best, and count. More information about review ratings.
Microformats

Here is the same HTML content marked up with the hReview-aggregate microformat.

<div class="hreview-aggregate">
   <span class="item">
      <span class="fn">L’Amourita Pizza</span>
      <img src="pizza.jpg" class="photo" />
   </span>
   <span class="rating">
      <span class="average">9</span> out of
      <span class="best">10</span>
   </span>
   based on
   <span class="votes">24</span> ratings.
   <span class="count">5</span> user reviews.
</div>

Here's how this sample works:

  • In the first line, class="hreview-aggregate" indicates that the HTML enclosed in the <div> summarizes the reviews on a page.
  • The structured information is conveyed by the class attribute (such as class="fn" and class="rating", and the values (such as L'Amourita Pizza, 9). You can change the tags such as span and div to suit your formatting needs.
  • Properties can contain other properties. In the example above, the property rating includes the subproperties average (the average rating) and best (the highest possible rating), and the property item contains fn. More information about nested entities.
  • votes is useful whenever users on a review site can rate an item without writing full corresponding reviews. Their vote contributes toward the average rating but not towards the number of reviews available.
RDFa

Here is the same HTML content marked up with RDFa.

<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Review-aggregate">
   <span property="v:itemreviewed">L’Amourita Pizza</span>
   <img src="pizza.jpg" rel="v:photo" />
   <span rel="v:rating">
      <span typeof="v:Rating">
         <span property="v:average">9</span>
         out of 
         <span property="v:best">10</span>
      </span>
   </span>
   based on 
   <span property="v:votes">24</span> ratings. 
   <span property="v:count">5</span> user reviews
</div>

Here's how this sample works:

  • The example begins with a namespace declaration using xmlns. This indicates the namespace where the vocabulary (a list of entities and their components) is specified. You can use the xmlns:v="http://rdf.data-vocabulary.org/# namespace" declaration any time you are marking up pages for people, review, or place data. Be sure to use a trailing slash and # (xmlns:v="http://rdf.data-vocabulary.org/#" ).
  • Also on the first line, typeof="v:Review-aggregate" indicates that the marked-up content summarizes the reviews on a page.
  • Each property of the review (such as the subject of the review and the number of votes) is labeled using property. The property name is prefixed with v: (<span property="v:itemreviewed">).
  • We want to include the review rating (typeof=v:Rating") in the typeof="v:Review-aggregate" entity. Here, we use rel instead of property to indicate a relationship between the aggregate review (the entity v:Review-aggregate) and this rating (the entity v:Rating). Then, we include <span typeof="v:Rating"></div> to include the actual rating entity. More information about nested entities.
  • votes is useful whenever users on a review site can rate an item without writing full corresponding reviews. Their vote contributes toward the average rating but not towards the number of reviews available.