Search engines like Google want to understand what your web pages are about. You can help them by providing more information about your pages in a language that they can understand. That language is structured data. This ultimate beginners guide to structured data will introduce you to ideas and implementation of structured data on your site.
Let's start at the very beginning.
The Semantic Web
Lexical semantics (relating to words or vocabulary of a language) is all about understanding the meanings of the words and the relationships between them. That is something that is easily accomplished by humans, but far from simple for computers. But computers have been tasked with understanding the World Wide Web, and that is where the Semantic Web comes in.
The Semantic Web is an extension of the World Wide Web that attempts to standardize the understanding and sharing of information between humans and computers.
Tim Berners-Lee, the inventor of the World Wide Web, explains it this way:
What Sir Berners-Lee dreamt of was a WWW that acted as a single resource of information rather than a bunch of disconnected web pages. For that to happen, computers needed to better understand the data on the WWW. So the Semantic Web is an initiative to standardize the storage of data in a format that makes sense to both humans and computers.
The Solution is Structured Data
For a Semantic Web to work, data needs to be structured in a way that both humans and computers can understand it. Therefore, we need rules and syntax.
For website owners or developers, Structured Data is the answer.
The term Structured Data simply refers to information (data) that is presented in an organized (structured) way. In terms of web pages, structured data is the extra information that we include in our web pages, to help the search engines fully understand what our web page is about, and what features they might like to highlight in the search listings.
Structured data is the system of pairing properties with values for a “thing”. Those properties and values describe and define the thing.
A thing can be just about anything on the web e.g. an article, an image, a local business, a review, a video, a person, a restaurant, a booking or reservation, and so on. Each of these things will have their own related properties. This will all become clearer, I promise.
To complicate matters, there is more than one way to implement structured data on your web site. However, as you'll see later, the choice of which system to use has been largely taken for us, by Google.
How Google Uses Structured Data
When a web page includes structured data, Google can read and understand that data and use it in creative ways to markup the listing in the search engine results pages (SERPs). Do any search in Google and you'll see where Google has turned structured data into “Rich Snippets”.
Firstly, here is a normal snippet:
Normal listings in the SERPs consist of a blue title, green URL and black description. This type of listing is constructed by Google in the absense of any structured data it can or wants to use.
Here is a rich snippet in the same results page:
Anything that is not a standard title, URL, or description, is a “rich” addition made by Google because it found useful structured data included in the page.
These rich snippets can help our pages stand out from the crowd. Here is a little more of that results page. Which listing is your eye drawn to?
There are many different types of “thing” you can markup. If your web page contains a video or an image, you can include structured data for that. Google can make good use of it if they think it helps the search visitor:
Think of Structured Data as Rich Snippets. One leads to the other.
Google & Structured Data
There is no doubt that Google sees structured data as the present and future of search. They are pushing webmasters to embrace the technology and include it in their websites. Structured data means Google are less reliant on crawling and indexing the vast amount of content on the web. Structured data means Google can work more efficiently and focus more on a block of code embedded in the page that is written specifically for (and with the blessings of) the search engine, rather than simply using thousands of words of content written for the visitor.
Who benefits from Structured Data?
And is it important for SEO?
Let me get one thing straight from the beginning. Adding structured data to your web pages won't make them rank higher just because you have included structured data.
If Google decides to create a rich snippet for your page (and they don't have to), your page will stand out from the other listings. Because it stands out, you are likely to get a higher click-through rate. That is the percentage of people that see your listing and then click on it to visit the page. Higher click-through rates DO increase your rankings as Google knows if a listing has a higher click-through rate, then search visitors are finding that listing interesting.
So Structured Data is a benefit to anyone that relies on organic search listings to bring traffic.
If your pages include anything you want highlighted in your listing, like a job listing, local business, an event, a product, a course, etc., then structured data is a tool you need.
Also remember that structured data provides the search engines with more information about your content. Therefore they better understand your content, which can help your content rank for relevant terms that might not have been possible without structured data (because the search engines didn't fully understand your page and realise it was relevant).
Structured data takes away the ambiguity of your content and force feeds the relevant stuff directly to the search engines.
Structured data formats
To add structured data to a page, we need two things:
- We need to know what needs to be included.
- We need to know how to include it.
The “what” comes from something we call a taxonomy. This is simply a classification system (database) for organising a huge amount of data. The taxonomy defines the vocabulary we need use to communicate the information to computers (like Google).
The “how” is decided by the syntax, or programming code we need to use.
Structured data has been around for a while and is constantly evolving. As with anything that has evolved over time, there has been competition. This competition has seen several competing technologies spring up, each wanting to be the definitive method of implementing structured data.
So there is a choice.
There are different taxonomies and different syntaxes.
The good news is that Google recommends you use Schema.org as your taxonomy, and JSON-LD for your syntax.
Schema.org + JSON-LD
You may have wondered why I used the word “thing” to describe something that you can create structured data for. That screenshot above should clarify that. The screenshot is from schema.org, and as you can see “thing” is the technical term!
In fact, everything you can markup is a “thing”. And schema.org shows you a complete collection of things, all organized in a hierarchical manner.
In that screenshot you can see the very top of the hierarchy. An “Action” is a thing, and an “AchieveAction” is an action which is a thing. The “TieAction” is an “AchieveAction” which is an “Action” which is a “Thing”. Phew.. Don't worry what any of those words mean.
So why does Google recommend Schema.org?
Simply because Google co-founded it, with Microsoft, Yahoo, and Yandex.
Schema.org is a “collaborative project that is designed to create, maintain and promote structured data on the internet”.
The schema.org website will tell you all of the properties for every “thing” that can appear on the WWW.
For example, if you look up a recipe on schema.org, you'll find properties for cooking time, ingredients, nutritional information, etc.
If you are trying to markup a recipe on your site, you can refer to the available properties of schema.org and learn the language you need to use to convey the recipe information in structured data.
So what about JSON-LD?
Well no. Relax!
There are plenty of tools you can use to generate the JSON-LD for you. I'll cover those in a minute. But first, let me just emphasize something important.
Structured data guidelines
Schema.org is our taxonomy. That is where you'll find all of the acceptable properties you can use to define a “thing” on your website. You'll also be able to grab example JSON-LD code which you can modify and make it your own.
But Google also have their own guidelines for the implementation of structured data. Please see Structured data General Guidelines.
It is important to realise that although Schema.org is a complete reference for valid schema markup, Google may not use or like some of it. It is therefore important to check Google's guidelines (if there are any), for the schema you want to use.
In most cases, Google's guidelines are about preventing spammy abuse of the Schema. In other words, using the Schema properly, the way it was intended, for the right type of “thing”.
Building Structured Data
Let's look at a simple example of building structured data for a web page. In this case, I will use my Web Content Studio homepage to create some Software Application Schema.
Head on over to the Google Structured Markup Helper.
On the opening screen, you need to do two things:
- Select the type of markup you want to create.
- Add a URL of the page you want to create it for.
In the screenshot below, I have selected Software Application and added my URL:
Once you have done this, click the Start Tagging button.
The tool will open as a split screen. On the left you can see a preview window displaying your web page.
On the right you can see the potential structured data you can markup.
To create your markup, simply highlight parts of your preview, e.g. the name of the product, and a menu pops up asking you to select what the thing is you've just highlighted:
This will set the name in the structured data to whatever you have highlighted.
Repeat the process for an image that represents your application, publisher, category, etc. As you continue, you'll find the right hand side of the split screen populate with your data, but also keep an eye on Google's requirements for your chosen schema type:
When you have completed your markup, click the Create HTML button. It's located above the structured data window on the right. On clicking, the right hand window changes to the markup viewer. Make sure you have JSON-LD selected from the drop down box:
You can now grab the JSON-LD from the preview window and test to see if it validates.
Testing Structured Data
We can test the structured data using the Google Structured Data Testing Tool.
Head on over there and you'll be presented with a dialogue box asking if you want to test the schema on a URL (Fetch URL), or a Code Snippet. Select Code Snippet and paste in your JSON-LD. Now click the Run Test button:
This tool will test the validity of your structured data and give you errors and warnings. Errors need to be fixed. If you don't fix them now, they will pop up in your Google Search Console eventually when Google finds the structured data.
The warnings you get are fine. The code isn't broken if you only have warnings. You can add the markup to cover the warnings if you want, but otherwise it is fine.
Adding Structured Data to your pages
Now that you have created your validated structured data, you can add it to your web page. There are a couple of ways you can do this:
- Paste it directly into the HTML of your web page.
- Use Google's Tag Manager to create tags containing your JSON-LD that are triggered on page view.
There are also plugins that can create, manage & update your structured data for you. That is what I personally use as it is far less work if you can find a plugin you trust. I'll mention the one I use in a moment.
Troubleshooting with Google Console
Google Search Console has a section that can help you with your structured data. The search console is undergoing an update at the moment, but I am still using the old interface.
You'll find the structured data tools under the Search Appearance menu.
The structured data screen will highlight any problems with the structured data on your site.
Clicking on the lines that contains errors will open up a more detaled view. You'll get to see the URLs with structured data errors, as well as the errors themselves.
If you click the URL, a dialogue box opens with more details as well as a button to test the structured data on the live page:
You may find that when you test your live page the schema validates fine. That's because it has been fixed since Google last saw it. It will remain in the error list until Google re-spider the page and find the valid schema in place.
I hope this article has given you the confidence to implement structured data on your own site.
If you need more help, I do have a course on the subject that takes you from A-B including manual implementation using Google Tag Manager, as well as using the Schema Pro plugin as an easier alternative.
To finish off, let me just supply you with a list of free resources to help you create, test and implement structured data on your site.
I'd love to get your feedback on this article. Have you implemented structured data on your own site? If so, how? Any problems or difficulties?
Your Schema Resources
The following resources will help you as you implement structured data across your websites.
Schema.org – Home of Structured Data
Structured Data General Guidelines | Google
Structured Data Markup Helper
This tool is Google's own markup helper, which helps you create valid JSON-LD in a point and click interface.
Structured Data Testing Tool
This is Google's tool for testing the validity of the structured data you have created. You can test the JSON-LD directly, or enter in one of your URLs to test it live on a web page.
TechnicalSeo Structured Data Generator
This is my preferred tool for creating structured data. It is more comprehensive than Google's tool.