Introduction to Structured Data

Google Search works hard to understand the content of a page. However, you can provide explicit clues about the meaning of a page to Google by including structured data on the page. Structured data is a standardized format for providing information about a page and classifying the page content; for example, if is it a recipe page, what are the ingredients, the cooking time and temperature, the calories, and so on.

Google uses structured data that it finds on the web to understand the content of the page, as well as to gather information about the web and the world in general. For example, here is a JSON-LD structured data snippet that might appear on the contact page of the Unlimited Ball Bearings corporation, describing their contact information:

<script type="application/ld+json">
  "@context": "",
  "@type": "Organization",
  "url": "",
  "name": "Unlimited Ball Bearings Corp.",
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-401-555-1212",
    "contactType": "Customer service"

Google Search also uses structured data to enable special search result features and enhancements. For example, a recipe page with valid structured data is eligible to appear in a graphical search result, as shown here:

Search result feature Equivalent structured data (trimmed for brevity)
Apple pie recipe rich result. 
<script type="application/ld+json">
  "@context": "",
  "@type": "Recipe",
  "name": "Grandma's Holiday Apple Pie",
  "author": "Elaine Smith",
  "image": "",
  "description": "A classic apple pie.",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4",
    "reviewCount": "276",
    "bestRating": "5",
    "worstRating": "1"
  "prepTime": "PT30M",
  "totalTime": "PT1H",
  "recipeYield": "8",
  "nutrition": {
    "@type": "NutritionInformation",
    "servingSize": "1 medium slice",
    "calories": "230 calories",
    "fatContent": "1 g",
    "carbohydrateContent": "43 g",
  "recipeIngredient": [
    "1 box refrigerated pie crusts, softened as directed on box",
    "6 cups thinly sliced, peeled apples (6 medium)",
  "recipeInstructions": [

Because the structured data labels each individual element of the recipe, users can search for your recipe by ingredient, calorie count, cook time, and so on.

Structured data is coded using in-page markup on the page that the information applies to. The structured data on the page should describe the content of that page. You should not create blank or empty pages just to hold structured data; nor should you add structured data about information that is not visible to the user, even if the information is accurate. More technical and quality guidelines are described later in the guidelines section.

Structured data format

This documentation describes which fields are required, recommended, or optional for structured data with special meaning to Google Search. Most Search structured data uses syntax, but you should rely on the documention on as definitive for Google Search behavior, rather than the documentation. Attributes or objects not described here are not required or used by Google Search, even if marked as required by

Be sure to test your structured data using the Structured Data Testing tool during development, and the Search Console Structured Data report after deployment, to monitor the health of your pages, which might break after deployment due to templating or serving issues.

You must include all the required properties for an object to be eligible for appearance in Google Search with enhanced display. In general, defining more recommended features can make it more likely that your information can appear in Search results with enhanced display. However, it is more important to supply fewer but complete and accurate recommended properties rather than trying to provide every possible recommended property with less complete, badly-formed, or inaccurate data.

In addition to the properties and objects documented here, Google can make general use of the sameAs property and other structured data. Some of these elements may be used to enable future Search features, if they are deemed useful.

Google Search supports structured data in the following formats, unless documented otherwise:

Format Description and Placement
JSON-LD* (Recommended) JavaScript notation embedded in a <script> tag in the page head or body. The markup is not interleaved with the user-visible text, which makes nested data items easier to express, such as the Country of a PostalAddress of a MusicVenue of an Event. Also, Google can read JSON-LD data when it is dynamically injected into the page's contents, such as by JavaScript code or embedded widgets in your content management system.
Microdata An open-community HTML specification used to nest structured data within HTML content. Like RDFa, it uses HTML tag attributes to name the properties you want to expose as structured data. It is typically used in the page body, but can be used in the head.
RDFa An HTML5 extension that supports linked data by introducing HTML tag attributes that correspond to the user-visible content that you want to describe for search engines. RDFa is commonly used in both the head and body sections of the HTML page.

Structured data guidelines

The following guidelines describe general policies on creating high-quality structured data.

Technical guidelines

  • Unless specified otherwise by the documentation, structured data should be posted on the page that it describes. For example, Book structured data would live in the code of the page that describes the book, Recipe structured data lives in the code of the page for that recipe, and so on. Some structured data might live elsewhere, but that will be documented as such: for example, a list of multiple items can be defined on one page (the list page), but each element in the list can be defined on its own page (a leaf page).
  • If you have duplicate pages for the same content, you should put the same structured data in all page duplicates, not just the canonical page. (Technically you only need the structured data on the canonical page, but because you cannot guarantee which page Googlebot considers canonical, it is safest to put your structured data in all copies of the same page.)
  • Use the most specific applicable type and property names defined by for your markup. The data may be embedded in your webpage using any of the supported formats: JSON-LD (recommended), RDFa, or microdata.
  • Do not block your structured data pages to Googlebot using robots.txt, noindex, or any access control methods.
  • Read the documentation for your structured data to learn additional usage guidelines.
  • When marking up an image URL as a property of a type, make sure that the image actually belongs to the instance of that type. For example, if you mark up the property of, the marked-up image must directly belong to that news article.
  • All image URLs should be crawlable and indexable. Otherwise, we will not be able to display them on the search results page.
  • You can include multiple structured data objects on a page, as long as the information is appropriate to that page, and applies to the user-visible content of the page. When you have multiple entities on a page, we recommend that you mark up all entities on that page to help Google algorithms better understand and index your content. For example:
    • A recipe page might have text describing the recipe along with an accompanying video. Each of these types should be marked separately with and respectively.
    • A category page listing several different products (or recipes, videos, or any other type). Each entity should be marked up using the relevant type, such as for product category pages. Marking up just one category entity from all listed on the page is against our guidelines.
    • A video play page might have related videos embedded in a separate section on the page. In this case, mark up the main video as well as the related videos.

Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the Structured Data Testing Tool. Here are some reasons why:

  • The structured data is not representative of the main content of the page or potentially misleading.
  • The structured data is incorrect in a way that the testing tool was not able to catch.
  • The marked-up content is hidden from the user.
  • The page does not meet the technical or quality guidelines for structured data described here, or the general webmaster guidelines.

Quality guidelines

At Google, our first priority is to help our users find relevant, engaging answers for their search queries. High-quality structured data must not create a misleading or deceptive experience for search users. It should be an up-to-date and accurate reflection of the topic and content already found on the page, such as text, images, and videos. For example:

  • A page about a dinner recipe may use recipe structured data to list the ingredients and describe the cooking steps.
  • Markup should not be used to hide content not visible to users in any form, since it might create a misleading or deceptive search experience. For example, if the JSON-LD markup describes a performer, the HTML body should describe that same performer.
  • Content must not promote pedophilia, bestiality, sexual violence, violent or cruel acts, or targeted hatred.

We perform algorithmic and manual quality checks to ensure that structured data meets relevancy standards. In cases where we see structured data that does not comply with these standards, we reserve the right to disable rich snippets for a site in order to maintain a high-quality search experience for our users. Read our webmaster guidelines for more details.

Building, testing, and releasing your structured data

See our recommended process for creating new structured data pages.

Send feedback about...