2

After adding schema.org microdata markup for reviews and aggregate ratings, I expected review and rating information to show up in rich snippets. Unfortunately, neither are being shown.

Google's Structured Data Testing Tool finds the microdata, and there're no errors or warnings on the page. Any idea what's wrong with the microdata markup?

Example 1:

Example 2:

3 Answers 3

1

A simplified version of your code works, which suggests the problem is elsewhere on the page.

<div itemscope itemtype="http://schema.org/Product">
  <h2 class="product_name" itemprop="name"><span>Bengali</span></h2>
    <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <meta content="50" itemprop="ratingValue" />
    <meta content="100" itemprop="reviewCount" />
    <meta content="100" itemprop="bestRating" />
    <meta content="0" itemprop="worstRating" />
</div>

So we can at least eliminate problems with the ratings code itself. I've tried a number of things to pin down what it is, including but no luck so far.

I think you need to go through a process of elimination with the entire page code to find out what's causing this.

Some possibilities I've explored:

  • The ratings code comes above the actual product info in the code. When I replicate that with my simplified version of your code, by moving the product name beneath the review, I get an error. There's no such error with your full page code, but nevertheless I wonder if there may be some issue there.
  • Google's page on these Rich Snippets suggests using only one type of review markup on a page. I did try removing your individual reviews without success, but again, something to consider in combination with other things.
1

Nick, I checked the markup on the Bengali product page and this is what I found and what I would suggest:

When it comes to the "ratingValue" and "reviewCount" properties, you should not "hide" those with meta tags. You also have too many independent product markups on your page. Instead of marking up each related product with a separate product schema, you should include them within your primary product markup and use the "isRelatedTo" property for each. And you should try to add a description for your product and of course use the "description" property within your product markup, however short that product description may be.

I hope that helps.

David

10
  • I've tested his code with values in <meta> and it works - I'm not aware of any reason you can't do this as long as the information is actually displayed on the page. Do you have any references for not doing it?
    – GDVS
    Commented May 27, 2014 at 10:07
  • Yes, there's no question that it will work with meta tags. But it goes against Google's guidelines for rich snippets. Properties such as ratingValue and reviewCount should be visible on the page and should not be hidden with meta or similar tags. And those visible elements should be marked up. support.google.com/webmasters/answer/1093493#hidden Commented May 27, 2014 at 20:40
  • That page doesn't mention <meta> at all, but does specifically refer to content hidden with CSS, which is rather different. That guideline also refers to instances where it may be appropriate to "provide both a machine-readable and a human-readable version of your content", and use of <meta> for such purposes is expressly specified by Schema.org (schema.org/docs/gs.html#advanced_missing).
    – GDVS
    Commented May 28, 2014 at 13:23
  • Whether a person uses a <meta> tag or hides it with CSS or another method, it's all the same to Google--it's hidden markup. Yes, there are instances where providing information through the use of <meta> tags is acceptable, such as marking up the latitude and longitude of a location or marking up the time or date in ISO 8601 format. There are a few other instances as well. But as a general rule, you should not hide markups, regardless of the method. In regards to Nick's situation, he should not hide the rating value and review count with <meta> tags. Commented May 29, 2014 at 16:23
  • "[I]t's all the same to Google" and "should not hide [content] with <meta>" are statements of opinion, not fact. There's a difference between content simply hidden with CSS (itself not necessarily invalid), and content which is shown on page but may be difficult or impossible to mark-up with microdata without recourse to <meta>.
    – GDVS
    Commented May 30, 2014 at 9:59
-1

Okay. This just might be the shortest answer I have ever given. Change the meta tag to span. I have not checked the rest of your code, but I know meta tag does not work.

3
  • Which meta tag are you suggesting to change?
    – nickh
    Commented May 26, 2014 at 3:56
  • With the rating values. I went through this in two other questions and using meta tag for the values did not work. Using the span tag worked. Sorry. Could have been clearer.
    – closetnoc
    Commented May 26, 2014 at 4:10
  • I don't think this is correct. Use of <meta> is within spec, and in fact if you take Schema.org's own example code for AggregateRating and replace the rating values with <meta> equivalents, it still works in Structured Data Testing Tool. Further, I tested the OP's code with both <span> and <div> in place of <meta> and couldn't produce the desired result.
    – GDVS
    Commented May 26, 2014 at 11:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.