Getting a Schema.org implementation right on a website was – until today – enormously painful. There was not enough documentation and no good tools to help you to make it truly simple. The best implementations so far really are, sadly, still just a fragmented mess. Today, we’ve fixed that.
The best Schema.org implementations we see ‘in the wild’ often look something like this, when seen by Google’s Structured Data Testing Tool:
There are seven Schema pieces on that page, but they’re just that: seven pieces without context. It is not clear what their relation to each other is. To a search engine, this page is still a puzzle which needs solving.
In our implementation, which we’re releasing today, all of the pieces “stitch together”: we form them into a nested structure. Without this nesting, a search engine doesn’t know how all these pieces relate to each other, and what the most important piece on a page is. Our implementation also clearly and explicitly defines the “main thing” on that page. This removes all of the guesswork and adds a lot of context for search engines.
Let’s look at an example: a post here on Yoast.com. This post is an
Article. The article is the main “thing” of a
WebPage, which is part of a
Article is published by an
Organization and written by an
Author. Both the
Author and the
Organization have social profiles attached to them. These separate blocks are now all woven together: it’s simply a nested structure.
The @id is the glue
The secret of our delicious graph is one simple “thing”: using
@id to connect graph pieces to each other. We output separate pieces but by using those
@id references, we connect them to each other.
Because we can nest them like that, it doesn’t have to stop at that simple structure: the
WebPage has a position within the site, outlined by its
Organization and the
Article have images. Etc. etc. etc. All of that data is combined.
Why did we develop this?
We didn’t just start implementing this for the fun of it. We are solving a real-world problem: as more and more people implement Schema.org markup, the situation shown in the screenshot at the top of this article is no longer unique. Lots of pages, with lots of separate Schema blocks, are a problem. In a call with Pinterest recently one of their engineers complained: all the Schema that WooCommerce put out was nice, but when there are related products on a page, they often can’t find the main product. Our implementation solves that and many other problems.
On every page, we output the entire graph for that page, and we clearly mark the
mainEntity, so Google, Pinterest, and others are no longer left guessing. Every relationship is made explicit.
What do these changes mean for you?
This change has short-term implications: you have a higher chance of getting:
- Correct info in Google Knowledge Panels and full support for Rich Article Pins on Pinterest, due to better Schema output from Yoast SEO.
- Showing up in a News listing or carousel if you use our News SEO plugin, due to the new
- Higher chance of product snippets in Google Search results if you use our WooCommerce SEO plugin and full support for Rich Product pins on Pinterest, due to better
Productsupport in it.
- Higher chance of good local listing snippets, due to better
LocalBusinessschema in our Local SEO plugin.
Long term implications for the web
These changes also have long term implications: we weave a web of data. This type of machine-readable data makes it possible for platforms to build much cooler things. And we wouldn’t be Yoast if we didn’t do this all out in the open. We have a full set of developer documentation on how to do this, and how to interact with our Schema API. Everyone can integrate with this, everyone can build upon it; in fact, we encourage you to do that!
We’ve also documented all our output, so you can learn from it, copy it, play with it. The specification document explains it all more in-depth and explains all the fantastic research that Jono has been doing in this.
I’m deeply excited about this change and think it’s the start of something really big. Now, go upgrade to Yoast SEO 11.0 and check it out!