Search code examples
htmlschema.orgrich-snippetsstructured-data

Is this structured data markup using schema.org for a game review correct?


I understand that it takes time for Google to show rich snippets for a website. But, I want to make sure that I'm marking up my structured data correctly in the mean time. Is the following code okay for a review? Can it be done better?

<main itemscope itemtype="http://schema.org/Review">
    <meta itemprop="inLanguage" content="en-CA">
    <article itemprop="reviewBody">
        <header>
            <img itemprop="thumbnailUrl" src="/review/pushmo.jpg" alt="Pushmo">
            <h1 itemprop="name"><span itemprop="itemReviewed" itemscope itemtype="http://schema.org/Thing"><span itemprop="name">Pushmo</span></span> Review</h1>
            <h2 itemprop="headline">This sumo wrestling cat has children to rescue</h2>
            <p>Reviewed by <a href="/profile/crazyaj" rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">A.J. Maciejewski</span><meta itemprop="url" content="http://example.com/profile/crazyaj"></a> on <time itemprop="datePublished" datetime="2014-09-03T20:33:03-07:00">September 3, 2014</time></p>
            <meta itemprop="description" content="Review for Pushmo on 3DS. This sumo wrestling cat has children to rescue. Pushmo proves that Nintendo still has the ability to produce great new properties.">
            <meta itemprop="keywords" content="Review,3DS,Pushmo">
        </header>
        <p>blah blah blah</p>
        <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
            <span itemprop="ratingValue">8.4</span> <small>out of <meta itemprop="worstRating" content="1"><span itemprop="bestRating">10</span></small>
        </div>
    </article>
</main>

As a side note, I noticed when I search for "review site:example.com" the rich snippets appear but they don't when I don't use "site:example.com". Does anyone know why this is?

Thanks again for reading. Any help would be greatly appreciated.


Solution

  • Apart from the following points, your use of HTML5, Microdata and schema.org looks good to me.

    • When the value is a URL, you must use link instead of meta. So it should be

      <link itemprop="url" href="http://example.com/profile/crazyaj">
      
    • As value for itemReviewed, you might want to use a more specific type than Thing. For Pushmo, it would be SoftwareApplication (the subtype VideoGame will probably be added soon, it’s already proposed and discussed).

    • You should not use h2 for a subtitle. This was possible with the hgroup element, but as hgroup is no longer part of HTML5, this would now create a wrong document outline. Instead, simply use a div/p for the subtitle.