WordPress Plugin for Structured Data: an introduction to SNIP.

It’s time for another great blog post. In this one I want to give you an extensive insight into SNIP, my WordPress Plugin for Structured Data. It should give you a great overview in which situations it can help you. Have fun! 😉


My summary is this (tl;dr = too long, didn’t read):

  • Structured Data …
    • is not user-centric but important for search engines.
    • belongs to technical Search Engine Optimization.
    • is metadata. That means: it’s not visible to users but readable by search engines.
    • gives search engines a better understanding what is on your page.
  • JSON+LD is the de-facto standard for marking up Structured Data.
  • Certain Structured Data types produce Rich Snippets in Search Results.
  • schema.org …
    • provides a vocabulary that we can use to markup our content.
    • provides information about properties that are allowed.
  • SNIP …
    • can create Structured Data by point-and-click.
    • requires no programming knowledge.
    • outputs valid JSON+LD syntax on your site.
    • can automate Structured Data Generation.
    • is supported from its developers (no outsourcing company).
    • gets constantly updated since 2011.
    • allows you send feature requests to the developer.

Structured Data and SEO

You’ve probably heard about SEO, Search Engine Optimization, and how it works in general. Of course there are a million things you can consider to rank high in search engines. But – in my view – the number one thing is this one:

Search Engines want to be like human beings.

Florian Simeth

And if you think about this sentence a little bit more you can recognize very quickly what it means in terms of SEO. Just like you, search engines want:

A website should be good looking and user-friendly.
  • to find the best result for a search term;
  • want a good looking, uninterrupted reading experience;
  • want that a site loads fast;
  • and so on.

In summary, we can say: A website must be first-class in every aspect.

Everything above is very user-centric. But Structured Data isn’t really. There is no design involved, nor does it help users to get a great reading experience. Now you would ask: why do we need it? I will answer this question below. At this point, it is important to understand that structured data, since it is not user-oriented, is part of the technical SEO.

What are Structured Data?

First of all, structured data is a great help for search engines because it gives Google and others a better understanding of what is on your website.

I don’t want to go too deep into detail in this post, because it should be about SNIP, my WordPress Plugin for Structured Data. But here is a quick example that should help you, understand why we need Structured Data in general.

By the way: Please feel free to take my free Structured Data Training. The video course is a collection of my knowledge about structured data. It should help you to learn more about it altogether.

Now let’s go to the example:

iPhone screen that shows where a picture was shoot on a map using the GPS coordinates from a picture.

You may know that all smartphones have built-in GPS for navigation purposes. But this functionality cannot only be used for navigation but for cool other stuff as well. For images, for example.

Always when you take a picture, your camera app will retrieve the GPS coordinates and save them into the picture file. This metadata is not visible to you but readable by applications (like the pictures app on the iPhone that shows on a map where the picture was taken).

This is comparable to how structured data works.

In fact, Structured data is nothing more than metadata. You’ll not recognize it because it’s in the sourcecode of a website and therefore not visible to you. However it is readable by search engines.

By the way: you could also read structured data if you take a look into the sourcecode because the format, all major search engines want to see is JSON+LD. And this format is human-readable as well. You will learn more about the formats below.

Why do we need Structured Data?

One of the major problems has always been that Search Engines (and their robots) don’t get the whole picture of a single web page.

Of course for you it’s quite simple to understand that a product page is about a product. We see that very quickly because we as humans have learnt that a product page has a special structure. For example:

  • it has one or more product images,
  • shows a price somewhere and
  • has an add-to-cart button.

But what about search engines? Of course they can render pages and make screenshots of it. However it’s still quite difficult for them to get what the title of the product is, which pictures belong to the product, and so on.

By using a WordPress Plugin for Structured Data you’ll be able to tell search engines all this and even more!

How does Structured Data look like?

There are different formats that I explain in every detail in lesson 2 of my Structured Data Training: Understand how structured data works. But the most important one is the JSON+LD format.

An easy example would look like this: (Can you see that we only have key-value-pairs here? It’s super easy).

  "@context":  "http://schema.org",
  "@type":     "Product",
  "name":      "SNIP - WordPress Plugin for Structured Data",

The above example tells search engines that the current page shows a Product (@type) because the snippet points to schema.org/Product (I’ll will show you below what schema.org is).

Plus: search engines now also get the name of the product (because of the name-property)!

You can see that it is easy to read and understand. This is also true for search engines. I guess everyone can understand that it’s more easy to read data from Structured Data instead of using energy-intensive and complex algorithms to find out if the page is about a product.

Here is another example:

  "@context":         "http://schema.org",
  "@type":            "Product",
  "name":             "SNIP - WordPress Plugin for Structured Data",
  "offers": {
    "@context":       "http://schema.org",
    "@type":          "Offer",
    "availability":   "http://schema.org/InStock",
    "priceCurrency":  "USD",
    "category":       "WordPress Plugin",
    "price":          "97"

Above you can see a more detailed example of a Product Schema. It also shows the price (which is an offer).

What is schema.org?

The schema.org website contains a basic vocabulary that any of us can use to markup data. On the this page you can find the full hierarchy of schema types that are available.

So let’s say you want to markup a “Teddy Bear” on your site because you wrote about a teddy bear. As you can see on the hierarchy page on schema.og, there is no markup for this. So you need to decide what schema you should use instead.

If your blog post is a review about the teddy bear, you may use schema.org/Review. If you sell a teddy bear, you could use schema.org/Product again.

On the Product page on schema.org you can learn what properties are available. Above we only used name and offers but – of course – there are a lot more. For example the brand, the manufacturer and so on.

Sound’s confusing? Get yourself familiar with this by watching the video: how to find the right schema types from my structured data training.

What are Rich Snippets?

The best thing about certain Structured Data is that they produce so called Rich Snippets in search results. That means, that a normal search result (“snippet”) will be enriched with values from the Structured Data found on your site. Here is an example:

A Rich Snippet in search results showing ratings, the price and the availability of the product.
A enriched search result in a Google search.

Yes, that’s right: you mark the data on your website, which is then displayed in the search results.

However you should note that there is no guarantee that such enriched search results will appear on search engine pages. Learn more about this in my blog post: When do Rich Snippets show up in search results?

Also note: not every schema (that you can find on schema.org) shows such enriched results. You can take a look at Googles Reference to see which ones are showing Rich Snippets and how they look like.

Why do we need a WordPress Plugin for Structured Data?

Because it makes your life so much easier!

I guess most WordPress are just not programmers. They get confused very quickly when they see code. Even if it’s just simple code (like here with the key-value-pairs-syntax).

No programming skills needed

So definitely one of the best arguments is that it’s super easy for non-developers to create Structured Data because you don’t need to code!

SNIP creates valid JSON+LD syntax on the frontend. You don’t need hook into any code.

WYSIWYG: What you see is what you get

The integrated generator in SNIP helps you select a certain schemas and their properties by point-and-click. Super easy.

You can even test the integrated Structured Data Generator online on my website. It’s also free but limited in some functionality.

The generator that is built-in into the WordPress Plugin for Structured Data (SNIP).

Automatically generate Structured Data

Another big plus is that SNIP allows you to create so called Global Snippets. That are Structured Data that you can automatically push out to multiple posts, pages or custom post types.

The only thing you do is to set up rules like you see in the image below:

The position metabox allows to set up  multiple rules for Global Snippets.

Custom Fields support

To get the most out of this feature, SNIP supports custom fields. That means you can map required fields with existing values:

It also has direct support for WooCommerce (for this check out my ultimate guide to Schema for WooCommerce). Therefore you can set up a “Product” Schema as a Global Snippet and push it out to all of your products at once.

Not only does this save you a lot of time (because you don’t have to create every schema page by page), it also makes your life easier by allowing you to assign custom fields. Here is an example:

A good WordPress Plugin for Structured Data allows to map custom fields like here in a generator.
Map a custom field. In this picture, the name of the product is the post title.

At the moment you can use the following built-in values:

  • Direct text input
  • Post meta field (you can also access values inside objects and arrays)
  • Post title
  • Post excerpt
  • Post author name
  • Blog title
  • Blog description
  • Post content
  • Post ID
  • Taxonomies (like Tags and Categories)

If you’re using Yoast SEO can also use:

  • SEO Title
  • SEO Metadescription
  • First image found in a post

Overwrite properies

What if you set up a Global Snippet and automatically push out structured data to all of your posts but now you have the idea to replace a certain property manually on just one product.

There is a solution to this as well. And this feature is called Overwrite Global Properties. It allows you to overwrite certain properties on each page where a Global Snippet was integrated. Even it was automatically filled by a custom field.

Supported Schemas

Good Structured Data WordPress Plugins allow you to generate all sorts of schemas. In SNIP, all schemas that you can find on schema.org are supported. You just select it using the built-in generator.

Here is a full list of supported schemas.

Developer friendly

Of course, not only non-developer should be happy with a Structured Data Plugin for WordPress. Coders should, too!

I knew from the beginning that there are always edge-cases that the plugin cannot handle. So I’ve added a lot of filters and action hooks a third party developer can use.

In the past, customers have successfully integrated ratings from third-party sites like Yotpo using SNIPs integrated API.

Support by real people

Of course I have my little dump “WP-Buddy Bot” that should help me filtering out unnecessary support requests because most of the questions have been answered already. And you can find all of them on the very extensive documentation page. However if the bot cannot help you it directs you through to me, the developer of SNIP.