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:
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’.