At the most fundamental level, structured data is used to provide additional information about your content. This additional metadata gives search engines a better understanding of your information and what it’s all about.

Search engines are continually updating, providing more relevant and detailed results to users. Where before search engines such as Google, Yahoo and Bing used to use keywords and basic information to estimate the content; These providers are now looking for specific indicators to give them more context about what is being displayed.

A History of things, where did Microdata come from?

In the early days, when search engines were still expanding, they’d scan through your page and pick out useful information that might be relevant, such as your page title, main body copy, and associated links. Google and other search engines also used to search specific places like your keywords meta tag to understand what it is your page offers. While this worked, it was also abused by developers and SEO manipulators alike, stuffing keywords into a page with hopes of getting it “ranked on the first page of Google.”

Since the introduction of HTM way back in 2008, developers have been given better tags to help provide more semantic meaning to their content. For example, developers can now use specific tags to tell the browser that this is a navigation with the <nav> tag or that this is a header with the <header> tag.

Microdata is an extension of the ongoing task to give search engines more context. The big search engine providers Google, Bing, Yahoo and Yandex got together and worked on a specification that gave developers and content creators more ways to define their content implicitly. So instead of writing your content and hoping the search engines can understand what it is, you’re able to tell these search providers that your content is an Article , Service, Product etc.

Structured Data / Microdata: What does it all mean?

Structured Data is the overarching term used to describe the technique of assigning extra data, in the hopes of making it more easily understandable.

Microdata is a type of structured data that easily integrates into HTML. Microdata is added as a series of key-value pairs of attributes on elements to provide extra info about the object. One of the most popular types of microdata is the Schema.org data set, which outlines hundreds of common data types.

Why bother with Structured Data?

That’s the question that most people will ask when hearing about new tech, how will this help? Or, what are the benefits to me? There’s several great reasons as to why now is the perfect time to become familiar with structured data:

  • All of the major search engines are using structured data to improve the reliability and usability of the SERPs (Search Engine Results Pages). Helping these search engines by providing data will improve your chances of being displayed correctly (for example displaying your article if the user searches for keywords / phrases).
  • Some search engines, such as Google, show your search results differently based on what type of content is being displayed. For example, if your page is about a product then Google pulls in additional info such as pricing, reviews, and inventory stock. This visually sets you apart from others and can lead to better click-through rates.
  • Aligning your content to one of the multiple Schema types helps search engines find the exact data it requires. For example, when displaying your business information on a contact card, you can outline your trading hours. Search engines such as Google will look at your Google Plus business listing, plus scan through your site to find this information. If it can’t find either reliably, it will be excluded. By specifying it as metadata you can help the search engine pull the correct info.
  • Google and other search engines are continually building new functionality based on structured data. For example, Google will be expanding into actions that users can take directly from their search results page, such as making a booking, renting a movie or downloading content.

How to implement microdata

If you’re a developer, you can easily introduce microdata into your HTML markup. This markup is basically a series of key-value pairs that you attach onto your elements to outline what type of element is being displayed.

An Example – Event Listing

Imagine that we have an upcoming event on our site. That’s a perfect situation in which we should mark-up our content with schema. Here’s the basic layout of how each event would look:

<div class="event">
<h1>Elevate Dance Party</h1>
<img src="/images/dance_party_image.jpg"/>
<p>An all singing, all dancing awesome party at Elevate</p>
<time datetime="2016-10-01T14:30">01/10/2016 - 1:30pm</time>
<time datetime="2016-10-01T16:30">01/10/2016 - 3:30pm</time>
<div>2/425 Pacific Hwy, Crows Nest NSW 2065</div>
<a class="readmore" href="/elevate-dance-party">View Event</a>

Define the scope of the item

To get started, define the itemscope that your element relates to.

For each of our events, we add the itemscope and itemtype attributes to link it to the appropriate Schema.org type. For us, that is the Event type.

<div class="event" itemscope itemtype="https://schema.org/Event">

Add properties for the item

Now we go through each of our elements and add appropriate metadata via the attribute itemprop. These attributes map your elements against each of the data types that your schema type supports. For us, we can markup the start / end dates for the event, the description and other important pieces of data.

You should end up with something that looks like this:

<div class="event" itemscope itemtype="https://schema.org/Event">
<h1 itemprop="name">Elevate Dance Party</h1>
<img itemprop="image" src="/images/dance_party_image.jpg"/>
<p itemprop="description">An all singing, all dancing awesome party at Elevate</p>
<time datetime="2016-10-01T14:30" itemprop="startDate">01/10/2016 - 1:30pm</time>
<time datetime="2016-10-01T16:30" itemprop="endDate">01/10/2016 - 3:30pm</time>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="name">Elevate360 - </span>
<span itemprop="streetAddress">2/425 Pacific Hwy</span>
<span itemprop="addressLocality">Crows Nest</span>
<span itemprop="addressRegion">NSW</span>
<span itemprop="postalCode">2065</span>
<a itemprop="url" class="readmore" href="/elevate-dance-party">View Event</a>

When mapping your existing content against what the schema expects, you need to ensure your data matches what the specification is expecting. For example, some properties expect a URL, others expect text, while others expect a nested object of elements.

Inception – data inside other data
Some elements such as the location property can have nested child properties. In our case, we have the itemprop="location" attribute to tell search engines that this is the location field, but exactly after that, we also include the itemscope: itemtype="http://schema.org/PostalAddress" attributes to tell them that this property is also an itemscope and that we will be adding child elements.

Adding extra non-visible data
The content between your tags is what’s pulled into your markup. But this might not always be what you want. For example, in our situation, you might want to implicitly state the duration of the event but not display it on the front end. To do this, you can specify a meta tag inside your element (don’t worry, using these outside of the head tag is OK in HTML5).

Here’s how you’d specify that the duration is 2 hours or that the event is a free event:

<meta itemprop="duration" content="PT2H"/>
<meta itemprop="isAccessibleForFree" content="true"

When and where should I implement microdata?

Microdata overall is great; it provides more context to search engines, and that’s always a good thing. The Schema.org listing is huge, with hundreds of entries, there’s bound to be several which are applicable to your site.

With all this talk on microdata, you’d probably think about adding it everywhere. While that’s a good idea, in theory, you should ask yourself is it really necessary?

When you should implement

Knowing when to implement microdata is important. Providing way too much information, additional data, or irrelevant elements can be overkill and a waste of time.

You should consider implementing microdata if you:

  • Have a listing of Services, Events, Persons, Organizations, Products or any other important and easily distinguishable elements on your site. These are perfect candidates to markup as they are common and can benefit from additional information. Each of these types has an array of values you can set that are customised for each schema type. Events can list their start and end dates, Products can list their price and so on.
  • Are writing or maintaining a site where you write, for example, a blog or news feed. Articles are critically important to search engines and act as a way for these engines to determine the freshness and relevance of your site. Google even has a whole page dedicated to ensuring that your articles are marked up correctly for display in their search results. If you’re writing articles they need to have microdata and while you’re there you should markup and cross-reference it with an author profile.
  • If you’re a Local Business or Organisation and want to expand / improve your web presence. Having the correct microdata / connections is critical for your business. Google and other searching engines provide profiles of your business, displaying information such as the name, logo, address, reviews, telephone number, website URL and trading hours. Google will attempt to pull this information from your Google+ page, while Bing will try and collect it from your Bing Places for Business listing. As search engines evolve, it will become even more important to ensure your business data is up to date and relevant.

When you shouldn’t implement

Microdata is about proving addition useful information for search engines to understand your content. You should always ask yourself “will a search engine find this markup / info useful?”

Here’s several situations in which you shouldn’t be using microdata formats:

  • Marking up irrelevant content: If your webpage is showing a listing of upcoming events, it makes sense to mark these up. However it doesn’t make sense to mark up your secondary page content that isn’t related to anything important, e.g., footer details, navigation menus, call to action sections etc.
  • If you don’t have content to add as microdata, then skip it: The most generic schema that you can use is Thing and it acts as the master class other microdata extends from. You should provide an image, name, description, and URL to the thing being described. If you can’t do that, then this object probably shouldn’t be marked up.

Wrapping it all up

Structured Data is the way forward for search engines. The importance of microdata and other formats will become increasingly important as search engines expand and provide more tailored and optimised search result data.

Now is the perfect time to add structured data to your site. You should ensure all of the important elements on your site are providing as much useful data as possible to search engines. This data will help search engines to find relevant, useful content on your site, and make your site more visible in search results.

Useful Tools & Resources

When working with structured data, Google’s Structured Data Testing Tool lets you verify / validate your markup via either a code snippet or URL. If you’re digging into the world of structured data, this tool will let you know if you’re passing in the right values.

While we’re talking about structured data, Google has a whole sub-section of their site dedicated to structured data. If you’re interested in how it all works and how going forward this metadata will be used by Google, this is a good place to expand your understanding.

While we’ve focused on metadata, there are other types of structured data such as JSON-LD, which is a JavaScript backed methodology of giving content to elements. It’s very popular and instead of adding attributes on elements, it adds them as an object, outputted for search engines to process. This is just another method for controlling your structured data output