Back in October, I wrote a bunch of short mini-reviews on products and services that I use regularly. I published them all on a single page called "Favorite Things". In the past, I've written a couple of reviews on Amazon and then copied them to my website as a blog post.
I decided it was time to be able to publish proper reviews from my own website, including having them show up in Google with the little stars, what Google now calls "Rich Snippets."
Searching for Google's documentation on how to mark up a web page to show the Rich Snippet reveals an interesting pattern. Currently, their documentation provides three recommended markup styles: Microdata, RDFa, and JSON-LD. All three use the Schema.org vocabulary.
In 2015, they hadn't quite implemented JSON-LD yet, so were recommending Microdata or RDFa only.
In 2013, they had a different set of recommendations: Microdata, Microformats, and RDFa. However, at this time, all three formats used the Microformats hReview vocabulary.
In 2009, when they launched Rich Snippets, there were only two recommendations: Microformats and RDFa. The Microformats markup used the hReview vocabulary, and the RDFa markup used data-vocabulary.org's vocabulary.
Here is a table summarizing these results.
A rough timeline follows:
Here is the Schema.org FAQ from 2014 compared to 2016, where they answer "Why Microdata? Why not RDFa or Microformats?":
The pattern that is particularly concerning to me when choosing a format to publish my reviews in, is that the formats that Google invented on their own have changed the most often. Over the years, Google has gone from recommending uploading a text file, to parsing RDFa with a slightly modified Microformats vocabulary, to going all-in on Microdata, to then replacing Microdata with JSON-LD and the new Schema.org vocabulary. In the mean time, the Microformats hReview vocabulary hasn't changed, and has continued to be parsed by Google since it is so widely deployed. It would seem there is some advantage to using a format that was developed externally from Google, since they are unable to simply turn their backs on it and replace it with a new format whenever they want.
For this reason, I'm sticking with publishing the Microformats 1 hReview markup for my reviews.
Here is a minimal example of a Microformats 1 hReview.
<div class="hreview"> <div class="item"> <a href="https://amazon.com/dp/B012B7S46Q/?tag=aaronpk-20" class="url fn">Bose Solo 15 Sound System</a> </div> <div class="rating"><span class="value">2</span> out of <span class="best">5</span></div> <p class="summary">Bluetooth works great, sound leaves something to be desired</p> <div>Review by <span class="reviewer"><a href="https://aaronparecki.com/" class="url fn">Aaron Parecki</a></span></div> <p class="description">I was optimistic about this item at first given my experience with the BOSE SoundLink Mini Bluetooth speaker which has excellent audio quality and bass for its size. However, I was disappointed by this device. The bass wasn't as rich as I had hoped, and it didn't fill the room like I had hoped. It sounds very mono-directional compared to other sound bars which have speakers on the ends to simulate surround sound better.</p> </div>
You can copy and paste this into Google's Structured Data Testing Tool to confirm that Google still parses it.
Once Google indexes the page, here's how it appears in search results!
In my experience, submitting a URL through their Fetch as Google tool and submitting it for indexing would cause it to appear in search results within minutes!