I'm following Google's official examples to make JSON-LD markup for reviews and test in Google's structured data testing tool.
When making list of reviews for the same organization (all reviews are about the same organization), the testing tool shows duplicates.
For example, two reviews of the same Thing (a book) pass the test OK:
<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": "8",
"bestRating": "10"
},
"publisher": {
"@type": "Organization",
"name": "Washington Times"
}
},
{
"@context": "http://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "Thing",
"name": "Super Book"
},
"author": {
"@type": "Person",
"name": "Jane"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "7",
"bestRating": "10"
},
"publisher": {
"@type": "Organization",
"name": "Washington Times"
}
}]
</script>
Results: Google correctly detects two reviews of a Book with single reference to the Books name in each review.
Now I just change Thing to Organization, and what I get is a mess.
<script type="application/ld+json">
[{
"@context": "http://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "LocalBusiness",
"@id": "www.some-url.com",
"name": "Company Name"
},
"author": {
"@type": "Person",
"name": "Jack"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"publisher": {
"@type": "Organization",
"@id": "www.some-url.com",
"name": "Company Name"
}
},
{
"@context": "http://schema.org/",
"@type": "Review",
"itemReviewed": {
"@type": "LocalBusiness",
"@id": "www.some-url.com",
"name": "Company Name"
},
"author": {
"@type": "Person",
"name": "Jane"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"publisher": {
"@type": "Organization",
"@id": "www.some-url.com",
"name": "Company Name"
}
}
]
</script>
The output in the testing tool shows multiple references to the organization name:
Four times for two reviews. When I add a hundred of reviews, each will contain hundreds of references to the organization.
Why is it such a mess? if this affects the code, how fix it?


"@type": "LocalBusiness"and just keeping the"@id": "www.some-url.com"does the trick. The only note is that SDTT shows that reviewed item by default is a @Thing, not a LocalBusiness. I hope Google bot can understand, that it's a local business by it's unique @id. – Alex V Jun 28 '17 at 14:07Thing(it works for me). Did you copy-paste my first snippet exactly like that? It should display the@typespecified there. – unor Jun 28 '17 at 15:02