What is Structured Data?

Structured data is a type of markup language that is both functional and meaningful. As computer systems become more evolved, the need for a semantic meaning behind markup will significantly improve machine learning.

With HTML5 we had tags such as <article>, <section>, <nav> and <footer> introduced. These all function the same as <div> tags that previously handled all divisions. The new markup helps search engines and machine learning to identify core parts of a website.

Other types of structured data include Microdata, Javascript Object Notation and Resource Description Frameworks. The addition of these markups can help provide semantic meaning to otherwise meaningless tags such as list elements and span tags.

How can I check my Structured Data?

The easiest way to check structured data is by using Google’s Structured Data Testing Tool. Directly input a URL or copy and paste your code, and it will notify you of any errors, warnings and suggestions.

The most common errors are to do with the formatting of the code. Tools that automatically generated structured data can often include mistakes. An excellent example of this is missing required fields such as the name of a product, or bad formatting of JSON code.

The most frequent warnings include other useful data for the object type. An excellent example is suggestions for GTIN or SKU codes on the product markup.

Breadcrumbs in Structured Data Testing Tool

How to improve my Structured Data?

To improve your structured data, you should first fix all the errors and warnings. Once you’ve done this, review Schema.org for ideas on what can and can’t be marked up for your industry.

Markup that you can frequently use includes your company name, address, and phone number. These will help with your local inquiries. You may also wish to markup your opening hours.

Other forms of structured data can be included straight into your HTML markup. For example, using the “tel:” and “mailto:” prefixes for telephone numbers and email can help users to interact with you, as well as providing semantic data.

Other commonly used markup includes breadcrumbs. These tags help with user flow across your website and provide semantic meaning to the <li> elements. Otherwise, it will not be clear that these are breadcrumbs.

Which Structured Data Should I Use?

There are four main ways to markup structured data in your code. The first is direct into the HTML by using semantic elements such as <article> and <nav>. For non-semantic tags, you can choose between Microdata, Javascript Object Notation and Resource Description Frameworks.

I have covered the main advantages and disadvantages of all three below:


Microdata is easy to implement structured data that encapsulates the HTML code with additional tags. It includes a sensible structure that is easy to follow once you get used to reading it.

If you’re using scripts to generate pages, then microdata is a great way to add structured data around crucial information. For example, you may include price markup around a products price. This technique is used frequently in platforms such as Shopify and Magento.

Microdata Example from Schema.org

Resource Description Frameworks

Resource Description Frameworks (RDFa) is conceptually similar to Microdata. The primary difference is the syntax and how to implement the code. Therefore, some developers might prefer to use either this or Microdata and both work fine.

This code is not interchangeable with the Microdata syntax, so the rule of thumb is to pick one and stick with it. Microdata is the more popular syntax, so I would recommend that you use that instead.

Resource Description Framework Example from Schema.org


Javascript Object Notation is a unique way to implement your structured data. Instead of applying directly to the HTML, it placed inside of the <head> element.

This makes JSON the most accessible markup to both implement and read. If you’ve never done HTML markup before, then JSON is an easy way to learn and begin implementing structured data.

A simple tool to use is the Schema App, which helps you generate the code without any experience of Javascript.

JSON-LD Example from Schema.org