Reputation: 67
What's the proper Schema.org JSON-LD for a blog post / article that is solely meant to be a review for a product? Example of a practical usage that's ubiqutous on the web: I own a website that has a blog writing reviews and providing affiliate links (for example Amazon).
Technically, this is a Product
, it's a Review
, and obviously it's an Article
(BlogPosting
?).
On the Product
you can nest the Review
structure. So, this seems to be more focused with the pages content and this is the one I would assume is to be used. But, it is still an article and technically the site doesn't offer the product itself making the Product
type seem incorrect.
So how exactly are you supposed to handle affiliate markup like this for blog sites without getting potentially dinged for marking up misleading information?
Upvotes: 0
Views: 1111
Reputation: 96547
It depends on how expressive you want to be. For consumers interested in reviews, the first snippet would typically be all they need, as it’s likely not relevant to them if the review is published as blog post, as article, as forum post etc.
The minimum would be a Review
with itemReviewed
:
{
"@context": "https://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "Product"
}
}
If you want to convey that the review is published as a blog post, you could use BlogPosting
in addition:
{
"@context": "https://schema.org/",
"@type": ["Review", "BlogPosting"],
"itemReviewed": {
"@type": "Product"
}
}
If the BlogPosting
consists of more than just the Review
, but the Review
is the primary content, you could use mainEntity
with separate entities (and if it’s not the primary entity, you could use hasPart
instead):
{
"@context": "https://schema.org/",
"@type": "BlogPosting",
"mainEntity": {
"@type": "Review",
"itemReviewed": {
"@type": "Product"
}
}
}
And if you want to provide data about the web page which contains the blog posting which is/contains the review, you could use ItemPage
with mainEntity
:
{
"@context": "https://schema.org/",
"@type": "ItemPage",
"mainEntity": {
"@type": ["Review", "BlogPosting"],
"itemReviewed": {
"@type": "Product"
}
}
}
{
"@context": "https://schema.org/",
"@type": "ItemPage",
"mainEntity": {
"@type": "BlogPosting",
"mainEntity": {
"@type": "Review",
"itemReviewed": {
"@type": "Product"
}
}
}
}
Upvotes: 2