Structured data

Reading time:  13 min

What is “structured data” in SEO?

Structured data is a standardized format to mark up the information about the web page. It serves to search engines like Google, Bing and others to better understand what the web page is about.

Example of structured data markup

Example of structured data markup

When search engine understands the content of the web page, then it may serve it for appropriate search queries. Structured data may be used by search engines in the so-called rich snippets, to visually improve the user experience.

rich snippet preview

Example of rich snippet

Structured data formats

There are multiple ways to mark up the structured data on your page.

  • JSON-LD: JSON script used in the page header. Recommended.
  • RDFa: highlights items and values on a page within typeof and property HTML attributes.
  • Microdata: highlights items and values on a page within itemtype and itemprop HTML attributes.

The following types of markup are not commonly used but Google can parse it:

  • Microformats: HTML tags which structure data on a page within class attribute. Complete vocabulary is on microformats.org
  • Page Date: Google can parse date directly from page text. For best results, use ISO 8601 date formats with a fully specified year.

Structured data markup examples

Here are the examples of four most common ways to markup the structured data.

  • JSON-LD
  • Microdata
  • RDFa
  • Microformats
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "LocalBusiness",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "streetAddress": "902 Corner street 10"
  },
  "description": "Tasty pizza located in the heart of San Francisco.",
  "name": "Pizza Example",
  "telephone": "123-456-1111"
}
</script>
<div itemscope itemtype="http://schema.org/LocalBusiness">
  <h1><span itemprop="name">Pizza Example</span></h1>
  <span itemprop="description"> Tasty pizza located in the heart of San Francisco.</span>
  <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
    <span itemprop="streetAddress">902 Corner street 10</span>
    <span itemprop="addressLocality">San Francisco</span>,
    <span itemprop="addressRegion">CA</span>
  </div>
  Phone: <span itemprop="telephone">123-456-1111</span>
</div>
<div vocab="http://schema.org/" typeof="LocalBusiness">
  <h1><span property="name">Pizza Example</span></h1>
  <span property="description"> Tasty pizza located in the heart of San Francisco.</span>
  <div property="address" typeof="PostalAddress">
    <span property="streetAddress">902 Corner street 10</span>
    <span property="addressLocality">San Francisco</span>,
    <span property="addressRegion">CA</span>
  </div>
  Phone: <span property="telephone">123-456-1111</span>
</div>
<div class="vcard">
  <h1class="fn org">Pizza Example</h1>
  <p><span class="adr">
    <span class="street-address">902 Corner street 10</span>
    <span class="locality">San Francisco</span>, <span class="region">CA</span>
    <span class="postcode">94114</span>
    </span>
  </p>
  <p><span class="tel">123-456-1111</p>
</div>

The most common and recommended way for structured data markup is the JSON-LD. It keeps the code clean and nicely structured. This is handy when the markup is edited manually and it is easy to generate such a markup for generators.

What items may be marked up in structured data

There are plenty of objects and information that can be marked up. The summary of all of them can be found in the shared vocabulary for structured data called Schema.org. It contains a list of all the currently supported schemas for structured data markup.

Currently supported items by Google Search engine are:

  • Article
  • Local business
  • Music
  • Recipe
  • Critic review
  • Video
  • TV & Movie
  • Product
  • Event

All of these items may display with more visual appeal in the SERP (compared to organic search results). These enhanced search result items are called rich snippets.

For detailed descriptions and implementation guides, please refer to our article about 28 rich snippets you should know.

Why the website doesn’t appear as a rich snippet?

Implementation of structured data to your website does not guarantee that the web page will be presented as a rich snippet in search results.

Structured data just describe what is on your page. When a search engine discovers these data, it considers whether it’s good enough to be featured. Google takes into account variables such as trustworthiness and authority of your website search history, location and many others.

Be aware that Google ignores structured data and doesn’t display rich snippets for home pages, even if is implemented properly. It was officially stated by a Google employee here.

Best practices

  • Use JSON-LD format when it’s possible.
  • Don’t markup content that is not visible on a page – it’s a spammy technique!
  • Use the most specific applicable type and property names possible
  • It is useless to markup structured data on your homepage (e.g. mangools.com), Google will ignore it
  • It’s more important to supply fewer but complete and accurate properties rather than trying to provide every possible recommended property with less complete, badly-formed, or inaccurate data.

The impact of structured data on SEO

Boost in rankings

Structured data are not a ranking factor. In other words, implementation of SD does not guarantee the ranking boost. However, structured data may help Google to better understand the page content what may make the page more relevant for search queries.

Higher CTR

Structured data may give a more visual appeal in the SERP, especially for products or reviews (the star ratings). This might boost the click-through rates of a featured website.

More conversions

Higher CTR means more visitors for a website. It’s a simple math.

Authority

Google pays attention to what will be featured in the SERP. It means that an enhanced result in the SERP may make the website look more authoritative and trustworthy in the eyes of a user.

Schema vs. Open Graph

The difference between Schema.org and Open Graph markup is that the Schema.org is aimed at search engines to help them understand the content better, while Open Graph is used on social networks to display the content item in an appropriate way.

“I’m already using Open Graph, do I still need to use Schema?” – this is quite a common question. The answer is simple: Yes, you should implement both.

What is Open Graph?

Open Graph is used mainly by social networks when sharing the content. The Open Graph usually contains basic information about the shared content like title, URL, featured image, author and others. Social networks use it to construct the shared object in their feeds.

What is a schema.org markup?

Schema markup is used by search engines like Google or Bing to better understand the content of a web page. They also use it to construct the rich snippets in the SERP.

How to add Schema structured data to website

As mentioned earlier, the most-commonly used format for marking up the structured data on a website is JSON-LD. You can get some inspiration from schema.org and write your own code. The best practical starting point where to learn how structured works is Googles’ Codelab and its short tutorial with code examples.

Online markup generators

WordPress plugins for structured data

  • Yoast SEO – One of the most installed plugins on WordPress. However, it supports only a small number of schemas.
  • WP SEO Structured data schema – Very flexible plugin.
  • Schema App – The complete plugin for structured data in WordPress. It has also a paid version.

You can also check the list of the best WordPress Schema Plugins, there are many I haven’t mentioned.

Shopify plugins

The following plugins are all-in-one SEO solutions for Shopify which include a structured markup in JSON-LD.

Libraries for DEVs

For more skilled folks there is an NPM library they can use in their projects.

How to validate structured data

After the implementation of structured data, the output should be validated to see if there are any errors. The most convenient tool out there is Structured data testing tool by Google. The input may be the URL of website or just a piece of code.

After submitting, Google’s Structured data testing tool will show whether there is any error in your structured data markup.

Preview of structured data testing tool

Beside the syntax errors in the markup, it also notifies about invalid values in the attributes, such as wrong date or time format. This is handy when you are not sure how to fill in the structured data.

To sum it up:

  1. Enter website to Google Structured data testing tool
  2. Check for any errors
  3. Fix the errors in your markup
  4. Revalidate the markup

Structured data testing tools

  • Google Structured data testing tool – the most convenient tool to validate the piece of code or a URL on the fly.
  • Google Search Console – Search console displays data – successfully implemented items and items with errors – for all the indexed pages of a website.
  • Google Rich snippet test – BETA version of a tool which shows if a page is eligible for rich snippets. Not all rich snippets are included so the results may not be correct in some cases.
  • Yandex Structured data validator – it’s a handy tool because it shows and validates all the structured data on the page. In other words, one can see the results for Open Graph and JSON-LD markup at the same time.
  • JSON-LD playground – creates and validates the JSON-LD markup
Loading Disqus...