When you use structured data to mark up content, you help Google better understand its context for display in Search, and you achieve better distribution of your content to users from Search. You do this by marking up content properties and enabling actions where relevant. This makes it eligible for inclusion in Rich Cards and Rich Snippets. For some content types, it allows users to engage directly with your content right from Search.
This markup is also the first step to making some content eligible for lists and host-specific list previews. See Mark Up Your Lists for more details.
Qualifying content types
A variety of content types qualify to appear in rich results. CreativeWork is a schema.org type definition that applies to qualifying content produced for reading, viewing, listening or other consumption, such as news articles, recipes, and videos. Other content types, such as products and local business listings, belong to the commerce category, which is a custom category we use to describe schema.org types generally intended for retail purposes.
The table below lists the supported features for each content type.
|Content Type||Available Features||Notes|
|Articles||Top stories carousel (AMP-only) Rich cards||The top stories carousel requires that your content be published in AMP.|
|Local Businesses||Place actions||Requires explicit opt-in. Express interest.|
|Music||Music actions||Requires explicit opt-in. Express interest.|
|Reviews||Critic review cards||Requires explicit opt-in. Express interest.|
|TV & Movies||Watch actions||Requires explicit opt-in. Express interest.|
This remainder of this document describes ways to implement markup to enable features for these types. For the actual markup specification, see the Creative Works (starting with Articles) and Commerce section (starting with Local Businesses) in the reference for each type.
Mark up your content properties
- Identify the data type from the table above that represents your content, and
navigate to the markup reference for that type to find the required and
recommended properties for that type.
You can add markup for multiple content types into a single HTML or AMP HTML content page (see AMP HTML below). For example, your news article might also contain a video, so you would add markup for both types to make your content page eligible for both the top stories carousel or rich results for video.
- Create a block of markup containing, at minimum, the required structured data
properties for the visual presentation you want to enable in Search.
We recommend you also mark up all available properties for the best enhanced presentation of your content in Search. The data-type reference contains many examples of markup you can customize.
Example Recipe Markup
- Insert this markup into each content page you wish to make eligible for a
If a feature requires AMP HTML, this means that the markup must be placed into the content page.
- Test your markup using the Structured Data Testing Tool.
This helps you verify that your markup is valid for the features you wish to enable for your content.
When users search Google for a movie or TV show, they might be interested in actually taking action on that content—for example, watching the movie clip on their mobile device, or booking a reservation at your restaurant. If your site or app can handle such actions, then structured data markup can tell Google which actions you handle and for what items. Google can then send such users along to your site or app.
How does it work?
Structured data markup for content that enables actions consists of two broad categories of markup:
- Content markup—describes the content itself, starting with
high-level properties and then properties for the sub-type. For example, all
TV & Movies content uses common properties such as
startDate. Beyond that, other properties provide further refinements, such as whether the TV content is part of an episode, a series, or a season.
- Action markup—defines action properties, starting with required
action properties for most content, such as the type of action the content supports, like
OrderAction. Other required action properties include elements from the
targetcontainer, like the platform on which the link to the content will function, such as an Android or iOS app. From there, you can provide further action refinements, such as availability conditions for when the action will work.
The data type reference for each eligible type lists the properties for these categories of content and their actions.
Create action markup
The best way to create action markup is to design a specification for your content, and create a markup template or framework from that specification. Then, for each instance of that content, supply values to your template and insert the resulting markup into the HTML page. For example, you’d embed markup in your landing page for an available movie, such as http://www.example.com/movies/forrest_gump. The following steps show a basic process you can follow for designing and implementing action markup.
- Determine the relevant content properties for your content.
First, start with your basic data type, such as TV & Movies, or Local Business. Then, determine further refinements for your offering, such as whether you are making TV content available only per episode, or whether you are offering a subscription to a season. Assemble the relevant fields for your spec.
- Determine the markup for the action itself.
All action types have required properties, so you’ll want to define those. You can find the list of required actions in the table for each action (such as
WatchActions). In addition to required action properties, you might also supply sub-category properties, like
OrderActionproperties for businesses.
- Specify the target correctly.
A target is a child of
potentialActionthat specifies all the elements and values necessary to support the connection between the user’s intent and your content’s response. When supplying the link to the content via the
urlTemplate, use a fully-qualified URL to a specific piece of content on a website or an Android or iOS native app. You should also explicitly specify the platforms that support each URL using the
potentialAction.target.actionPlatformproperty. For details on supplying links to your app content and providing URL associations between your app and your site, see the Firebase documentation on App Indexing.
- Design a template.
Use any of the examples available from the reference documentation for your content type. These examples load directly into the structured data testing tool for easy modification and verfication.
- Insert the markup into your page.
- Test your markup using the Structured Data Test Tool.
Do this during development by pasting the markup itself into the tool. After you publish your page, you can supply the URL to your page to verify your markup a second time.