SiteKickr
SiteKickr

Reputation: 249

Schema.org Review when not on a Product page

Everything here http://schema.org/Review tells me that the Review type is meant to be used on actual product pages.

How would you properly markup a standalone product review, or a page of reviews where the actual product isn't present on the page?

This is what I have so far (below). I'm only using the product title because it seems like it's required per the spec.

Would there be a better way to organize this?

    <article itemscope itemtype="http://schema.org/Product">

        <div class="review-image"><img itemprop="image" src="//usercontent.rtacabinetstore.com/testimonial/59/2.jpg" alt=""></div>
        <div class="review-image"><img itemprop="image" src="//usercontent.rtacabinetstore.com/testimonial/59/1.jpg" alt=""></div>

        <div class="review-wrapper">
            <h1 itemprop="name">Oak Kitchen Cabinets</h1>

            <div class="review-text" class="review" itemscope itemtype="http://schema.org/Review">
                <span itemprop="author">Bob Tester</span> Centennial, CO
                <h3 itemprop="name">They were beautiful and easy to put together.</h3>
                <q itemprop="reviewBody">I have to say I am so happy with the cabinets. We used the Oak line. They were beautiful and easy to put together (after the first one). delivery was as promised and again, just can't say how much I LOVE the cabinets. Have been getting a lot of rave reviews and posted on facebook with a link to your site.</q>
            </div>
        </div>

    </article>

Upvotes: 3

Views: 4863

Answers (3)

Jiř&#237; Hern&#237;k
Jiř&#237; Hern&#237;k

Reputation: 2477

I would suggest you can use JSON format, if you're not bothered with duplicate data and/or not want to clutter your html with the code.

<html>
<head>
<title>Legal Seafood</title>
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Restaurant",
    "image": "http://www.example.com/seafood-restaurant.jpg",
    "name": "Legal Seafood",
    "servesCuisine": "Seafood",
    "telephone": "1234567",
    "address" :{
      "@type": "PostalAddress",
      "streetAddress": "123 William St",
      "addressLocality": "New York",
      "addressRegion": "NY",
      "postalCode": "10038",
      "addressCountry": "US"
    }
  },
  "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>
</head>
<body>
</body>
</html>

If you insist on HTML markup, here is the thing:

<div itemscope itemtype="https://schema.org/Review">
  <div itemprop="itemReviewed" itemscope itemtype="https://schema.org/Restaurant">
    <img itemprop="image" src="/search/docs/data-types/markup/seafood-restaurant.jpg" alt="Catcher in the Rye"/>
    <span itemprop="name">Legal Seafood</span>
    <span itemprop="servesCuisine">Seafood</span>
    <span itemprop="telephone">1234567</span>
    <span itemprop="address">123 William St, New York</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>" </b>
  <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>

These are examples from here: https://developers.google.com/search/docs/data-types/review-snippet

Also check the online tester here: https://search.google.com/structured-data/testing-tool

Upvotes: 0

shaurya_b
shaurya_b

Reputation: 97

For your better reference, please see below example. This is what i think you are trying to implement-

http://www.google.com/webmasters/tools/richsnippets?q=uploaded:800501214281cda16fa0f257d5f818a3

<div itemscope itemtype="http://schema.org/Review">
<meta itemprop="itemreviewed" content="HGGHHJL"/>
  <span itemprop="reviewRating">5</span> stars -
  <b>"<span itemprop="name">A masterpiece of literature</span>" </b>
  by <span itemprop="author">John Doe</span>,
  Written on <meta itemprop="datePublished" content="2006-05-04">May 4, 2006
  <span itemprop="reviewBody">I really enjoyed this book. It captures the essential
  challenge people face as they try make sense of their lives and grow to adulthood.</span>
</div>

Upvotes: 1

daviddeering
daviddeering

Reputation: 819

SiteKickr, for a page where the main content is a review of something, it would be best to use the Review type as your primary schema type and nest the other types within it, like this:

<article itemscope itemtype="http://schema.org/Review">

<div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Product">
    <h1 itemprop="name">Oak Kitchen Cabinets</h1>
</div>

    <span itemprop="author">Bob Tester</span> Centennial, CO
    <h3 itemprop="headline">They were beautiful and easy to put together.</h3>
    <q itemprop="reviewBody">I have to say I am so happy with the cabinets. We used the Oak line. They were beautiful and easy to put together (after the first one). delivery was as promised and again, just can't say how much I LOVE the cabinets. Have been getting a lot of rave reviews and posted on facebook with a link to your site.</q>

</article>

You do need to define what exactly is being reviewed, though. So the name of the product must at least be somewhere on the page.

Upvotes: 3

Related Questions