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.
Historical recommended markup for Rich Snippets
Container Format | Serialization | Vocabulary | 2005 | 2006 | 2009 | 2013 | 2015 | 2016 |
txt | n/a | Google Base | ✓ | ✓ | ||||
RSS/Atom | XML | Google Base | ✓ | ✓ | ||||
RSS/Atom | XML | GData | ✓ | ✓* | ||||
HTML | Microformats | hReview | ✓ | ✓ | ✓* | ✓* | ||
HTML | RDFa | hReview / |
✓ | ✓ | ✓* | ✓* | ||
HTML | Microdata | hReview / |
✓ | ✓* | ✓* | |||
HTML | RDFa | schema.org/Review | ✓ | ✓ | ||||
HTML | Microdata | schema.org/Review | ✓ | ✓ | ||||
HTML | JSON-LD | schema.org/Review | not yet | ✓ |
- Recommended in Google Webmasters Guide
- ✓* no longer mentioned in documentation, but still consumes
A rough timeline follows:
- 2005: Google Base launched. A Google-invented vocabulary was serialized in txt, RSS or Atom and uploaded directly to their system for indexing. (Eventually shut down in 2010.)
- 2006: GData launched. GData was a format that used a Google namespace (schemas.google.com/g/2005) for the addition of the properties of a review, typically serialized in an Atom feed.
- 2009: Google launched Rich Snippets. This was a drastic change from before, where now Google would parse the review directly from any web page, rather than making websites upload data to their servers. When Rich Snippets launched, they recommended the hReview vocabulary marked up with either Microformats or RDFa. They created a namespace, data-vocabulary.org for RDFa, whose Review object derived directly from the hReview vocabulary.
- 2013: By 2013, Google started recommending Microdata markup. Their documentation still referred to the hReview vocabulary, and recommended all three formats: Microformats, RDFa and Microdata.
- 2015: In 2015, Google launched the schema.org vocabulary for reviews. Their documentation finally dropped the mention of Microformats, and instead recommended using Microdata or RDFa. At the same time, the schema.org FAQ went all-in on Microdata, specifically recommending Microdata over RDFa and Microformats. (see below)
- 2016: By February, Google finally launched JSON-LD support for review snippets. Around this time, the Schema.org FAQ was updated to recommend JSON-LD over their previous recommendation of Microdata. (see below)
Here is the Schema.org FAQ from 2014 compared to 2016, where they answer "Why Microdata? Why not RDFa or Microformats?":
Why this Matters
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.
Sticking with hReview
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!
@petermolnar Commenting on someone else's website by logging into your own site is barely intuitive for *me* never mind anyone else.
As I've said before, it feels like a bunch of guys in their 40s and 50s trying to rewind time.
Actually, this conversation has solidified my position, so thanks! 😅