Structured Data (Schema) Markup: Best Practices

Cara Bowles    By under SEO.

Structured data (schema) is used by Google and other search engines to better understand the content on your site by labeling it with tags. This information can be used to modify your snippets in the search results so that they include images, prices, and other rich results that stand out and draw attention.

These recommendations come from Google and apply to all structured data types. Google explicitly states that structured data isn't eligible for inclusion in search results if it doesn't meet these guidelines. Failing to meet them can hurt ratings or render your site ineligible for rich results. Pages and sites can be manually penalized if they use structured data in spammy or manipulative ways.

Technical Requirements

technical drawing

Google provides a  Rich Results Test and a URL Inspection tool to verify that these technical requirements have been met.

Rich results need to be formatted in JSON-LD, Microdata, or RDFa. They recommend using JSON-LD.

Obviously, pages hosting structured data can't block Googlebot using robots.txt, noindex, or any other methods, since these prevent Google from crawling and indexing the data.

Quality Specifications

These aren't technical guidelines that can be tested with tools, but they can impact your rankings, eligibility, and the possibility of being penalized, so make sure you have a process in place to keep up the quality of your content and markup.

Content Quality


Pages hosting structured data need to meet Google's webmaster quality guidelines:

  • Make pages for users first and search engines second
  • Do not deceive users
  • Don't use "tricks" to improve search engine rankings. In other words, if it only (potentially) improves search engine rankings but doesn't make sense from any other business perspective, it's leaning in the direction of violating Google's guidelines.
  • Make your website stand out from competitors and serve a unique purpose for users

See the in depth guidelines here.

Quality schema content also needs to:

  • Be up to date for anything time sensitive.
  • Use original content
  • Schema markup should only be used on content that users can see. Schema markup isn't simply metadata. It is a way of marking up visible content.
  • Don't use markup in a misleading way, such as marking up your own content as if it were a user review. Also, avoid marking up irrelevant content that isn't the main content of the page, such as navigational content.
  • Never use markup to deceive, such as by pretending to be a different organization or person than you are, or otherwise implying ownership or affiliation that doesn't exist.
  • Never use markup to promote dangerous, violent, hateful, or illegal actions.

Schema Relevance

missed dart

For schema content to be high quality, it also needs to be relevant. That means it should represent the content accurately. This means, for example, global broadcasts shouldn't be marked up as local events, and how-to instructions for home improvement projects shouldn't be marked up as recipes.

Complete Structured Data

finish line

Schema also need to be complete:

  • Most schema have optional properties, but all of them have required properties. If the schema doesn't meet the required properties, it isn't eligible for use in rich results.
  • Most schema also have recommended properties. These aren't strictly necessary, but can be used to enhance rich results further or help search engines understand your content better. Generally speaking, the more complete, the better.

Completeness doesn't only mean that all of the required and relevant properties are filled out, however. It also means that every content that should be marked up is. For example, the markup is incomplete if one review has schema markup and the rest of the user reviews haven't been marked up. Failing to complete markup in this way can be very misleading to users.

Where To Put Schema


Unless Google explicitly states otherwise, use schema markup on the page it is describing, not elsewhere. While you shouldn't have duplicate content on your site, if you do, the markup should also be used the same way on both pages.



Remember that there are many different structured data types and properties, and that some of them are more generic than others. You should use the types and properties that are most specific to the content that you are marking up. For example, while a how-to post can technically be considered an article, it's more specific to use HowTo than it is to use Article for a post that features step by step instructions.

Images Schema

taking a picture at night

Several structured data types use images as a property. This shouldn't be abused. For example, using the image property of, you must use an image that is actually a part of the article. Do not use unrelated or generic images that don't fit that data type. Additionally, all images must be accessible to Googlebot in order for the schema to be eligible.

Using Multiple Structured Data Types

assorted spices

A single page may contain content that would best be marked up using multiple types of structured data. Google encourages using multiple structured data types for different kinds of content on the same page as long as it is relevant.

In some cases, one type of content can be contained within another type of content, in which case the markup should be nested.

In other cases, different types of content might be separate components of the same page, with neither being contained within the other. These should be marked up as individual items that aren't nested.

You can also link multiple items together using @id. For example, if your page is a recipe, and there is a video showing how to make it, you can use @id in both the recipe and video items to make it clear that the video is about the recipe on the page. Without linking them together, Google may not be able to understand that the two items are connected and may not combine them in a rich result.

Always Include The Main Structured Data Type

If you are only going to use one structured data type, it should be the one that most accurately reflects the main purpose of the page. Needless to say, this also applies if you are going to use multiple structured data types. If the most relevant type isn't in use, Google will have more difficulty understanding the page and the likelihood of being included in a rich result is much lower.


Use structured data to help search engines understand you pages and to help your search results stand out from your competitors. Follow these best practices to give yourself the best chance at success.