What is Structured Data?

Structured data has been around the SEO world for a while now. It’s been an especially hot topic since Google, Bing, Yahoo!, and Yandex created Schema.org to standardize a list of attributes.

However, structured data still generates more questions than it answers for many in SEO.

Questions such as:

  • What is structured data?
  • How does structured data work in the context of Google?
  • Can I use structured data?
  • How do I find and fix errors in my structured data?
  • What does structured data have to do with AI SEO?

There's so much confusion surrounding structured data that only 67% of websites reviewed by WooRank use metadata or structured data. (Food for thought: websites that use metadata have an average WooRank score of 71.3, compared to an overall average of 67.1.)

What is Structured Data?

An easy way to understand structured data is a phone message left behind for someone. For instance, "Clark called at 2 p.m. to inquire about invoice payment." This normal sentence is considered unstructured because the data in it is not categorized. Machines would not be able to understand this sentence.

Robot trying to read unstructured data

If this data was structured, we would have different categories like time, caller and message.

Caller name Call time Call reason
Clark 2 p.m. Invoice payment

When data is structured like this using fields that are widely recognized, machines can start to understand what the content is talking about.

Robot reads structured data

It is simply easier to trace data that is structured than that which isn’t. In our example here, if we had 1000 messages like this and they were unstructured, how easy would it be to even access them?

It’s the same on the web. It is easier to access data which is organized or structured.

Structured data and Google

In the Google developer guide, structured data is defined as a format to provide information about a web page and to classify its content. And, quite frankly, Google loves structured data.

Structured data gives Google the ability to understand what a page is talking about. Take an ecommerce site’s product page, for example. This page will include information for the product such as

  • Name
  • Description
  • Price
  • Features
  • Reviews

With unstructured data, Google doesn’t know which is which. Adding markup fixes that. And understanding the content on a page allows Google to add extra information in its search results.

Google SERP features

When you do a search on Google, you get a lot more than the "10 blue links" and paid ads. Search results are full of different things:

These different types of results are known as SERP features (SERP stands for "search engine results page").

Here’s a rich snippet for a hotel in Amsterdam:

Hotel rich snippet

Here is WooRank appearing with sitelinks in a search for "woorank":

WooRank sitelinks in SERP

Here’s a comparison of 2 results, one with the breadcrumb feature and one without:

Breadcrumb snippet

And here’s a Knowledge Graph panel with information included in a site’s structured data:

iRobot Google knowledge graph

Rich snippets are a good way to make your content stand out as they take up more space in search results or otherwise draw the user’s eye. SERP features often have a higher CTR and a higher ranking in search results and, therefore, help drive more traffic to your website.

How does Google read structured data?

As we mentioned, structured data works by using standardized and recognized methods of defining information to label web pages. To go back to your simple example of recording callers, these methods would be akin to different ways of naming the columns in the table.

So there could be one standard that uses "caller name", “call time” and “call reason”:

Caller name Call time Call reason
Clark 2 p.m. Invoice payment

Another standard could use different terms to structure its data:

Inquirer Hour Purpose
Clark 2 p.m. Invoice payment

On the web, there are 2 sets of vocabularies used by search engines to extract context and meaning from web pages:

  1. Schema.org: Schema.org was created by Google, Bing and Yahoo in 2011 to create a standard structure for structured data. They were later joined by Yandex (Russia’s biggest search engine). Apple also recommends that developers use Schema.org

  2. Microformats: Microformats use existing HTML or XHTML tags to markup web content with additional context in a way that is designed to be easily readable by humans.

These vocabularies — both Schema.org and microformats — need to be encoded or embedded on a page. This is done by what is called a format or syntax. There are 3 formats used to add structured data to a page:

  • JSON-LD: Short for "JavaScript Object Notation for Linked Data", JSON-LD is JavaScript embedded in a <script> tag in the page. This markup is added in the page head or body, not around the actual text on the page. What’s great about JSON-LD (and the reason Google recommends you use it), is that it can be added to the page dynamically using JavaScript, Google Tag Manager or a CMS widget/plugin.

  • Microdata: An HTML specification, microdata uses tag attributes to specify properties of the data you want to structure. Microdata can be added in a page’s head or can be used around a page’s content to mark up the actual text.

  • RDFa: Short of "Resource Description Framework in Attributes", RDFa is an HTML5 extension to support linked data. Like with microdata, RDFa can be added to a page’s head or used to annotate the page’s content. Its primary use is to highlight the user-visible content you want to describe to the search engine.

Google explicitly recommends using JSON-LD in their structured data guidelines. It also has an advantage in the fact that it can be added to pages via Google Tag Manager.

Interestingly, though, microdata is the more popular syntax out in the wild.

Schema.org and JSON-LD in action

It’s at this point that we’ll have to leave our simple caller example behind as neither Schema.org or microformats work that way. So we’ll instead use a business’ contact information. In fact, let’s use WooRank’s.

To see Schema.org and JSON-LD in action, go to the WooRank homepage, right click and then click on View Page Source. Do a search on the page for "ld+json" and you’ll see this code:

<script type="application/ld+json">
    {
"@context": "http://schema.org",
"@type": "Organization",
"name": "WooRank",
"url": "https://www.woorank.com",
"sameAs": [
"https://twitter.com/woorank",
"https://plus.google.com/+woorank",
"https://www.facebook.com/woorank"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "Cours Saint-Michel",
"addressRegion": "Etterbeek",
"postalCode": "1040",
"addressCountry": "BE"
}
}
</script>

You can create your own Schema.org structured data in JSON-LD using WooRank’s metadata tool.

Why Should You Use Structured Data?

Google has been up front with the fact that the presence of structured data on a page isn’t used as a factor when ranking search results:

Adding Schema.org to your website isn’t going to impact your rankings the same as, say, improving page load time or switching to HTTPS.

What structure data does help with, as John points out, is targeting your content to the right people when they are searching for it online.

Google’s search rankings are built on 3 factors:

  1. Quality
  2. Authority
  3. Relevance

Using structured data on your pages helps Google understand part 3. How relevant is your page to a user’s query?

Let’s say you have a recipe site with a page that’s about a lasagna recipe. Google can tell that your page is about "lasagna", but it won’t necessarily know what that means in terms of relevance to a particular search query. Remember our confused robot trying to read before:

Robot looking for relevant data

When you add the recipe Schema.org markup to your content, Google is able to easily see that the page is about a recipe for lasagna and is therefore relevant to people searching with the intent to make lasagna.

Robot finds relevant structured data

Again, this isn’t a guarantee that your page will rank for "lasagna" queries, but it helps.

Our partners at WordLift, a tool that adds structured data to your site for you, have 2 great case studies that display the power that structured data brings to your website:

How to Use Structured Data in Your SEO

So now that we know what structure data is, how it works and why you should use it, how do you go about doing it?

To start adding structured data to your website, you must first choose a format and a vocabulary. While Schema.org and microformats are both valid vocabularies and RDFa, JSON-LD and microdata are all valid formats, it’s recommended you use JSON-LD to add Schema.org markup to your pages.

There are a couple of advantages this choice presents over the other options:

  • Schema.org was created by search engines, so you can be relatively sure it will be Google-friendly (or Bing or Yandex-friendly). Microformats are built off of pre-existing HTML tags, which Google can someday stop recognizing.

  • JSON-LD can be added via Google Tag Manager. Using GTM doesn’t get you any sort of "in" with Google, but it can reduce to overall amount of code on a page, which can make it lighter and faster. Both of these are good for SEO and users.

Looking at this markup possibilities, especially for the first time, may feel daunting. But it doesn’t have to be frightening.

With a thought-out and well-planned approach, you can incorporate structured data for your website in a relatively simple and straightforward way.

Here are the key steps:

1. Prioritize your pages

Consider which pages on your website will have a significant business impact, in both the long and short term. A hint: start with structured data for your products, reviews, and your brand details.

Obviously, the place to start is your homepage and the your "money pages" — the pages that drive revenue for your business. These could be

  • Product pages with an "add to shopping cart" button

  • Leadgen pages with a contact form

  • High-value content pages that drive a high number of ad impressions

What form these pages take will depend entirely on your business model.

Marking up your product pages can give prospects extra information regarding your products in the search results page, leading to more qualified traffic. Here’s structured data at work for a page selling robot vacuums:

Product structured data in rich snippet

If you click through to that site, you’ll see the page marked up with the following Schema.org markup:

Product structured data code

2. Define the specific properties for the type of schema.org that you are implementing

As discussed, each type of entity has unique properties that distinguish it from the rest. So, before coding, you need to define these unique attributes.

For instance, a recipe can include the author of the recipe, step-by-step instructions, preparation time, ingredients, a rating of the dish and some nutritional information.

It is worth noting that not all properties are used by web crawlers, yet. Google’s guide to marking up your content items defines the content types that can appear as rich results. Let’s delve into two broad content types:

  • Informational: Content produced for the purpose of listening, reading or viewing. For instance, recipes, videos, and news articles that fall under a schema.org type definition referred to as CreativeWork.

  • Commercial: Content intended to drive sales purposes. This content can be a local business listing as well as a product listing.

The guide further describes the rich results features that every content type is eligible for. For instance, articles can appear as top stories carousels and as rich results. Top stories carousels have another prerequisite: that the content is published in AMP.

It’s helpful to have a spreadsheet handing that includes a row for every URL and columns for each data item you’ll want to structure on the page. So, for a product page, for example, you’ll want a spreadsheet that has the relevant product attributes:

  • Name
  • Price
  • Aggregate rating
  • Number of reviews
  • Color
  • Image URL
  • Model number.

For an article you’d want to list the relevant attributes for the article schema:

  • Author
  • Subject or topic of the content
  • Thumbnail image URL
  • Any video or images for the page
  • Section headers

This will help keep you organized when generating your code and make the next step in adding structured data much easier.

3. Create your structured data

Obviously, you can manually write the code required to add structured data to your pages and add them to each page by hand. If you don’t really want to write a bunch of code and aren’t particularly inclined to spend your time copying and pasting it to your pages, there are plenty of great tools out there to create, add and manage structured data on your site.

How to use the Structured Data Markup Helper

If you don’t have the budget for one of the paid structured data tools, Google has a handy free one that can create markup for your pages. It’s relatively quick and very easy to use. It even lets you use a point and click interface to select data to structure.

Structured Data Markup Helper highlighter

To use Google’s Structured Data Markup Helper:

  • Go to Google’s Structured Data Markup Helper

  • Choose "website"

  • Select a data type and paste the URI of the page you want to markup. You can also paste the HTML source.

  • Click "start tagging"

  • To tag your data, highlight as instructed by the tool. Click on the items you want to define, ie: product name, price, image and aggregate rating.

  • As you add the tags, you will see the mark up in the right pane of the tool. You will see your content in the left pane.

Note that you can only mark up one page at a time. If you are marking up an article, for instance, you can only mark up one article at a time.

  • After marking up your content type, go to "create HTML"

  • You will see your structured data as JSON-LD code. You have the option to change to microdata by clicking on the "JSON-LD button above the generated code.

  • Either copy the code into a plain text file or download it from the tool.

  • Click "finish".

Then you will add the JSON-LD or microdata to your page. How you do this will depend entirely on your website and CMS setup.

For a WordPress site, you can do this by editing your page template and header.php file, but we don’t recommend that method. There is a plugin available that will allow you to edit the header section of individual pages.

Once you’ve added your JSON-LD or microdata to your page, you need to validate that the code works.

Google structured data testing tool

The results will show the raw page code on the left and the different items they’ve detected on the page:

Structured Data Testing Tool Results

As you can see, while structured data may at first seem overly complicated and daunting to implement, it’s actually very doable for anyone. All you need is the right plan and tools and using structured data for your website can be quick and intuitive.

How to identify and fix structured data errors

Even the best-laid plans can go awry, resulting in frustrating invalid markup on your pages. Which is why it’s important to use the Structured Data Test Tool on your pages.

While seeing a tool report errors on your site can be frustrating, it’s better to catch the errors as soon as possible. And if you take your time and work carefully, you can fix your errors relatively easily.

Finding structured data errors

The easiest tool to use to check for structured data errors is probably Google’s Structured Data Markup Helper. However, it is advisable to use Search Console too. The structured data page on the Search Console will show you the structured data that the search engine detected on your site, and any errors in your markup that may make your content ineligible for rich results on SERPs.

It is important to note that the structured data items listed on Search Console only include top-level entities on your web pages. For instance, a schema.org/Event which includes a schema.org/Place will only show the event as it is the "higher level" entity that includes location/venue (place), time, and other entities like day or date.

Using Search Console

The Structured Data Testing Tool is the best and easiest tool to use to validate your markup, but you can use the Search Console, too.

  • Log in to your Search Console account

  • Go to the Enhancements report (it’s at the bottom of the page)

This report will show you when your pages show up in rich results for job postings, recipes and events. Unfortunately, these are the only 3 types of structured data currently included in the new Search Console. Luckily you can access the Structured Data report in the old Search Console interface.

This report will list all of the structured data types detected across your website along with any errors detected with your code:

Structured data report in Search Console

Why your structured data may not get rich results

Google displays rich results for search queries based on what it thinks will best serve the user’s search intent and that decision happens in a black box. Structured data helps Google find information to put in rich results but it’s no guarantee. If Google thinks a traditional search result is best, it will show the old blue link, URL and description.

Look out for these common structured data errors reported in Search Console:

  1. Namespace errors: errors in this group occur when you enter incorrect URLs in your structured data code. Common errors are using ‘www’, missing slashes and using incorrect capitalization.

  2. Undefined properties and objects: these include wrong capitalization, spelling errors, made up properties like postId, which doesn’t exist in Schema.org vocabularies.

  3. Skipping important items like author and title

Other issues with your structured data that could prevent your pages from appearing as rich results"

  1. Invalid JSON-LD or microdata code. Issues of this nature should be detected by the Structured Data Testing Tool so you can find exactly what went wrong.

  2. Google can’t access the structured data on the page because it’s disallowed by the robots.txt file or is has a noindex tag.

  3. The structured data is misleading because it doesn’t accurately represent what the main content of the page is about. An example of this could be adding product aggregate rating markup to a page that isn’t a product page.

Violating Google’s quality guidelines

There are other issues with structured data that run afoul of Google’s "quality guidelines". This means that the data is implemented correctly from a technical standpoint, but have relevance issues or quality.

  • Out of date information. This is relevant for pages that contain timely content, like news and current event-type websites. If the information on the page is old, Google won’t show it as a rich result.

  • Markup up information not visible to users on the page. If your JSON-LD markup includes an item about a person or product, that person or product should be described in the content.

  • Using irrelevant or misleading vocabularies. Product reviews must be real, written by real people and unpaid. Don’t markup a guide to changing your oil with a recipe vocabulary.

  • Incomplete markup. The more information you provide about a page, the higher the quality Google considers it. Job pages, for example, that include full salary information are better for users that those that don’t. Make sure you’re including all the required information for Google’s rich results.

  • Images marked up must be related to the content on the page. So don’t markup images on the headers, footers or sidebars of a page if they aren’t relevant to the main content.

  • You can markup multiple items on a page (like for a list of resources or a page containing a video and text). However, if you do, you have to markup all the relevant items. So if you have a list of items, you have to markup all items in the list, not just the one you want to highlight.

Fixing structured data errors

When fixing your structured data errors, fix the easy errors first — missing elements should be the easiest errors to fix. Fixing this error should be as simple as going back through the Structured Data Markup Tool, or going back through the other structured data tool you’re using.

Do It Yourself

If you haven’t taken the time to understand structured data and the role it plays in your website and search engine optimization, it can initially seem like a complicated mess. With lots of different terms that can sound like jargon. However, when you sit down and get to it, using and understanding structured data really is something you can do yourself.

All it takes is a bit of research, time and planning and you can make your website more relevant to your audience when they’re searching on Google and help claim rich snippets and other SERP features for yourself.

Recent guides