General structured data guidelines

These are the general guidelines that apply to all structured data. These guidelines must be followed to enable structured data to be eligible for inclusion in Google Search results. Pages or sites that violate these content guidelines may receive less favorable ranking or be marked as ineligible for rich results in Google Search in order to maintain a high-quality search experience for our users. If we find that your page contains spammy structured data or content, we will apply a manual action to your page. To check if you have a manual action, open the Manual Actions report in Search Console.

Technical guidelines

You can test compliance with technical guidelines using the Rich Results Test and the URL Inspection tool, which catches most technical errors.

Format

In order to be eligible for rich results, you should mark up your site’s pages using one of three supported formats:

  • JSON-LD (recommended)
  • Microdata
  • RDFa

Access

Do not block your structured data pages to Googlebot using robots.txt, noindex, or any other access control methods.

Quality guidelines

These guidelines are not easily testable using an automated tool. Violating a quality guideline can prevent syntactically correct structured data from being displayed as a rich result in Google Search, or possibly cause it to be marked as spam.

Content

  • Follow the Google webmasters quality guidelines.
  • Provide up-to-date information. We won’t show a rich result for time-sensitive content that is no longer relevant.
  • Provide original content that you or your users have generated.
  • Don't mark up content that is not visible to readers of the page. For example, if the JSON-LD markup describes a performer, the HTML body should describe that same performer.
  • Don't mark up irrelevant or misleading content, such as fake reviews or content unrelated to the focus of a page.
  • Don't use structured data to deceive or mislead users. Don't impersonate any person or organization, or misrepresent your ownership, affiliation, or primary purpose.
  • Content must not promote pedophilia, bestiality, sexual violence, violent or cruel acts, targeted hatred, or dangerous activities.
  • Don't mark up content that engages in illegal activities or promotes goods, services, or information that facilitates serious and immediate harm to others. Marking up content that provides information about such content for educational purposes is permitted.
  • Content in job posting structured data must also follow the additional job posting content policies.

Relevance

Your structured data should be a true representation of the page content. Here are some examples of irrelevant data:

  • A sports live streaming site labeling broadcasts as local events.
  • A woodworking site labeling instructions as recipes.

Completeness

  • Specify all required properties for your rich result type. Items that are missing required properties are not eligible for rich results.
  • The more recommended properties that you provide, the higher quality the result is to users. For example: users prefer job postings with explicitly stated salaries than those without; users prefer recipes with actual user reviews and genuine star ratings (note that reviews or ratings not by actual users are considered spammy). Rich result ranking takes extra information into consideration.

Location

  • Put the structured data on the page that it describes, unless specified otherwise by the documentation.
  • If you have duplicate pages for the same content, we recommend placing the same structured data on all page duplicates, not just on the canonical page.

Specificity

Images

  • When specifying an image as a structured data property, make sure that the image actually belongs to the instance of that type. For example, if you define the image property of schema.org/NewsArticle.image, the marked-up image must directly belong to that news article.
  • All image URLs must be crawlable and indexable. Otherwise, Google Search can't find and display them on the search results page.

Multiple items on a page

Multiple items on a page means that there is more than one kind of thing on a page. For example, a page could contain a recipe, a video that shows how to make that recipe, and breadcrumb information for how people can discover that recipe. All of this user-visible information can also be marked up with structured data, which makes it easier for search engines like Google Search to understand the information on a page. When you add more items that apply to a page, Google Search has a fuller picture of what the page is about and can display that page in different search features.

A recipe rich result that shows both a video and reviews

Google Search understands multiple items on a page, whether you nest the items or specify each item individually:

  • Nesting: When there is one main item, and additional items are grouped under the main item. This is particularly helpful when grouping related items (for example, a recipe with a video and reviews).
  • Individual items: When each item is a separate block on the same page.

Nesting

Here's an example of nested structured data, where Recipe is the main item, and aggregateRating and video are nested in the Recipe.

<html>
  <head>
    <title>How To Make Banana Bread</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "name": "Banana Bread Recipe",
      "description": "The best banana bread recipe you'll ever find! Learn how to use up all those extra bananas.",
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.7",
        "ratingCount": "123"
      },
      "video": {
        "@type": "VideoObject",
        "name": "How To Make Banana Bread",
        "description": "This is how you make banana bread, in 5 easy steps.",
        "contentUrl": "http://www.example.com/video123.mp4"
       }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Individual items

Here's an example of individual items of structured data. There are two, distinct items: Recipe and BreadcrumbList.

<html>
  <head>
    <title>How To Make Banana Bread</title>
    <script type="application/ld+json">
    [{
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "name": "Banana Bread Recipe",
      "description": "The best banana bread recipe you'll ever find! Learn how to use up all those extra bananas."
    },
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [{
        "@type": "ListItem",
        "position": 1,
        "name": "Recipes",
        "item": "https://example.com/recipes"
      },{
        "@type": "ListItem",
        "position": 2,
        "name": "Bread recipes",
        "item": "https://example.com/recipes/bread-recipes"
      },{
        "@type": "ListItem",
        "position": 3,
        "name": "How To Make Banana Bread"
      }]
    }]
    </script>
  </head>
  <body>
  </body>
</html>

Additional tips

  • To make sure that Google Search understands what the main purpose of the page is, include the main type of structured data that reflects the main focus of the page. For example, if a page is mainly about a recipe, make sure to include Recipe structured data in addition to Video and Review structured data. This is an opportunity for that page to be eligible for multiple search appearances (recipe rich results, video search, and review snippets). If the page only contained Video structured data, Google Search wouldn't know enough about the page to also dispaly it as a recipe rich result.
  • To ensure that the page fully represents the content that's visible to users, make sure all structured data items are complete. For example, if you include multiple reviews, make sure that you include all of the reviews that are visible to people on the page. If a page didn't mark up all of the reviews on a page, this would be misleading for people who expect to see all of those reviews, based on the appearance of the page in Search results.