Following on from product markup, review markup can be applied to a variety of entities such as local businesses, products, films and books etc. When search engines detect review markup they may decide to show this in their search results in a variety of ways, such as a review snippet enhancing a search result or as part of a Knowledge Card as pictured here:

Review rich snippet

To provide search engines with review markup using microdata, you can use the following basic syntax:

<div itemscope itemtype=”http://schema.org/Review”>
<div itemprop=”itemReviewed” itemscope itemtype=”http://schema.org/Restaurant”>
<img itemprop=”image” src=”seafood-restaurant.jpg” alt=”Catcher in the Rye”/>
<span itemprop=”name”>Legal Seafood</span>
</div>
<span itemprop=”reviewRating” itemscope itemtype=”http://schema.org/Rating”>
<span itemprop=”ratingValue”>4</span<
</span> stars –
<b>”<span itemprop=”name”>A good seafood place.</span>”
<span itemprop=”author” itemscope itemtype=”http://schema.org/Person”>
<span itemprop=”name”>Bob Smith</span>
</span>
<span itemprop=”reviewBody”>The seafood is great.</span>
<div itemprop=”publisher” itemscope itemtype=”http://schema.org/Organization”>
<meta itemprop=”name” content=”Washington Times”>
</div>
</div>

To provide the same information in JSON-LD you can refer to the following example:

<script type=”application/ld+json”>
{
“@context”: “http://schema.org/”,
“@type”: “Review”,
“itemReviewed”: {
“@type”: “Restaurant”,
“image”: “http://www.example.com/seafood-restaurant.jpg”,
“name”: “Legal Seafood”
},
“reviewRating”: {
“@type”: “Rating”,
“ratingValue”: “4”
},
“name”: “A good seafood place.”,
“author”: {
“@type”: “Person”,
“name”: “Bob Smith”
},
“reviewBody”: “The seafood is great.”,
“publisher”: {
“@type”: “Organization”,
“name”: “Washington Times”
}
}
</script>

Both of these examples provide details such as: the item type (e.g. restaurant), name, image, rating value, author and organization.

If you want to provide details about a review rating, you will need to use the following syntax using microdata:

<span itemscope itemtype=”http://schema.org/Review”>
<span itemprop=”itemReviewed” itemscope itemtype=”http://schema.org/Thing”>
<span itemprop=”name”>Super Book</span>
</span>
<span itemprop=”author” itemscope itemtype=”http://schema.org/Person”>
<span itemprop=”name”>Joe</span>
</span>
<span itemprop=”reviewRating” itemscope itemtype=”http://schema.org/Rating”>
Rating:
<span itemprop=”ratingValue”>7</span> out of
<span itemprop=”bestRating”>10</span>
</span>
<span itemprop=”publisher” itemscope itemtype=”http://schema.org/Organization”>
<meta itemprop=”name” content=”Washington Times”>
</span>
</span>

Alternatively, providing the same markup using JSON-LD would look like this:

<script type=”application/ld+json”>
{
“@context”: “http://schema.org/”,
“@type”: “Review”,
“itemReviewed”: {
“@type”: “Thing”,
“name”: “Super Book”
},
“author”: {
“@type”: “Person”,
“name”: “Joe”
},
“reviewRating”: {
“@type”: “Rating”,
“ratingValue”: “7”,
“bestRating”: “10”
},
“publisher”: {
“@type”: “Organization”,
“name”: “Washington Times”
}
}
</script>

The above provides review rating details including: item type, name, author type, author name, rating value, best possible rating, publisher type and publisher name.

Review markup considerations

When applying review markup it is important to note that:

  • Reviews must be ‘about’ another schema.org type. For instance, review markup should be nested within Book, Local Business, or Product objects.
  • Single entities should be marked up as opposed to entire categories or collections of entities. This means that you should have markup on a single product page, but should not mark up every product on a category page.
  • Ratings should be visible to users and not just found within the page’s markup. Hiding structured content does not comply with Google’s structured data guidelines.
  • Using any form of manipulative behaviour can result in a Google penalty e.g. marking up content which is invisible to visitors or marking up irrelevant or misleading content. Google will mistrust this structured data information and you will receive a manual action message from Google’s search console indicating ‘Spammy Structured Markup’.
  • Next: Other Microdata