Deepcrawl is now Lumar. Read more.

Review Microdata

Following on from product markup, review markup like itemReviewed schema 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
 

An Example of itemReviewed Schema

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

<div itemscope itemtype=”https://schema.org/Review”>
<div itemprop=”itemReviewed” itemscope itemtype=”https://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=”https://schema.org/Rating”>
<span itemprop=”ratingValue”>4</span<
</span> stars –
<b>”<span itemprop=”name”>A good seafood place.</span>”
<span itemprop=”author” itemscope itemtype=”https://schema.org/Person”>
<span itemprop=”name”>Bob Smith</span>
</span>
<span itemprop=”reviewBody”>The seafood is great.</span>
<div itemprop=”publisher” itemscope itemtype=”https://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”: “https://schema.org/”,
“@type”: “Review”,
“itemReviewed”: {
“@type”: “Restaurant”,
“image”: “https://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=”https://schema.org/Review”>
<span itemprop=”itemReviewed” itemscope itemtype=”https://schema.org/Thing”>
<span itemprop=”name”>Super Book</span>
</span>
<span itemprop=”author” itemscope itemtype=”https://schema.org/Person”>
<span itemprop=”name”>Joe</span>
</span>
<span itemprop=”reviewRating” itemscope itemtype=”https://schema.org/Rating”>
Rating:
<span itemprop=”ratingValue”>7</span> out of
<span itemprop=”bestRating”>10</span>
</span>
<span itemprop=”publisher” itemscope itemtype=”https://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”: “https://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

Content slider testimonial avatar placeholder
Sam Marsden

SEO & Content Manager

Sam Marsden is Lumar's former SEO & Content Manager and currently Head of SEO at Busuu. Sam speaks regularly at marketing conferences, like SMX and BrightonSEO, and is a contributor to industry publications such as Search Engine Journal and State of Digital.

Newsletter

Get the best digital marketing & SEO insights, straight to your inbox