With ever-changing search and social world, it’s hard to keep up. For many people, Schema.org is kind of over the head…
Having answered a couple of questions here and there, I decided to put what I know in writing. I hope it will help!
- What is Schema.org?
- How do I use Schema.org? (+Download the cheatsheet)
- Putting Schema.org into the existing web page code
- What types of “schemas” currently populate Rich Snippets?
- What should we stay away from
- Schema.org versus Rich Data protocols
Let’s start with the easiest:
Schema.org is NOT a markup language or a protocol; it’s the collection of Microdata markup vocabulary explained and organized on the official site. Put simply, Schema.org is the attempt of search engines to make structured markup easier to understand for website owners and search crawlers.
Schema.org is officially supported by Google, Bing, Yahoo! and Yandex. Google now names it the “preferred” method to structure your content if you want to have a rich snippet in search.
>>>Itemscope does nothing but shows a search bot that it’s a new section that is defined and described by the following two elements:
>>>Each Itemscope has a “type” (itemtype) that actually defines the section we are starting here.
Here’s the full list of currently registered types: here
>>>Itemprop actually describes each element of the itemtype (In other words, it is a property or one of the properties of a parent type. For example, itemtype = person and itemprop = author and / or spouse and /or male, etc…).
As shown in the cheatsheet, Itemscope is usually put within <div></div> – because <div> is used to define the beginning and the end of the entity (thus its scope).
You can have a parent itemscope and a “child” itemscope embedded in it (for example, you describe a book and want to make sure “author” entity is placed within your “book” entity). This is what is controlled by <div>.
Note: You can always check if you correctly mapped up your schema scope hierarchy using Google’s Rich snippets tool where this relation / structure is usually reflected with references:
Itemprop may be put within any of the existing HTML tags (e.g. <h1>, <a>) or you can create new tags to put it in (e.g. <meta>, <span>, <time>, <link>)
Google officially supports these schema types:
- Review (Rich snippet shows: reviewer, average rating). Tool: Review Rich Snippets Schema Generator
- Products (Rich snippet shows: price range, availability). Tool: Product Rich Snippet Schema Generator
- Events (Rich snippet shows: date, time and place). Tool: Event Rich Snippet Schema Generator
- People (Rich snippet shows: organization, location, position/title). Tool: People Rich Snippets Schema Generator
- Recipes (Rich snippet shows: cooking time, calories, ingredients)
- Video (Rich snippet shows: Video thumbnail image, time)
- Organization (only used for indepth articles. Another way to set up organization for indepth articles is to use rel=”publisher”). Tool: Brand (Organization) Rich Snippet Schema Generator
Bing supports the same types plus breadcrumbs but Bing doesn’t show Rich Snippets as often as Google and mostly limits them to larger sites they have learned to understand (Linkedin, IMBD, etc)
- Google instructs having most elements of your schema.org markup visible to the human being (which I assume means, apart from other things, use <meta> tag only when you absolutely have to)
- (Related to the above) The contents of the page should reflect the schema.org markup (for example, if you show average rating in the markup, there should be actual rating ability on-page).
- Google will NOT generate rich snippets for time-sensitive pages
Officially, Google supports ALL types types of structured data markup HOWEVER you better stick to one and use it properly:
This makes sense (the cleaner and more consistent the code is, the better); I haven’t seen Google being confused by protocol mix-up yet (I often use RDFa as that’s a default of many WordPress themes and Schema in the mix and Google seems to pick Rich data up quite fine). Probably they will get smarter and stricter in the future though.
Schema.org versus social graph protocols
Don’t forget that we have two other types of rich data markup that was created by social giants:
- Facebook: Open Graph (based on RDFa where most markup goes into <meta> tags in the header and thus remains invisible to the human being’s eye)
- Twitter: Twitter card
There’s no official statement from Facebook or Twitter about their support of Schema.org, so if you want to please Facebook and Twitter, you have no other choice but use their own social graph protocols (which means you’ll have to kind of break Google’s recommendation).
So far people successfully use Schema.org and social graph protocols together on one page.
Schema.org versus rel=”author”
1. With /videoObject Schema (in most cases): your “by” authorship-powered credit will be moved to to the bottom of the snippet
[Sean Murray shared an example where Video rich data overtook Google Authorship while still preserving “By” and the circle numbers.
2. With /Review Schema: Authorship info appears above the snippet as “Review by”
Finally, if you are planning to implement Schema.org on your site, make sure to read through examples in the official tutorial.