While preparing your feed, please check that you've met every requirement on this list. This will ensure that we won't have to go back and forth fixing potential issues that should have been fixed earlier in the feed generation process.
- Check that all the URLs you've provided in the
urlproperty for your entities are canonical URLs. This also means that each of your pages is also has the link rel canonicals appropriately applied. Some things to keep in mind:
- Every page should have a link rel canonical tag, especially if you have a multiple dynamic addresses to the same content.
- The http version of a page is considered distinct from the https version of the page. Make sure that you mark only one of those as the canonical.
- Do not put a link rel canonical between different 'types' of pages. For example, if you have a TVSeries landing page and you always show the latest episode on that page, do not have a link rel canonical from that page to the page that actually represents that episode since the TVSeries is a distinct entity from the TVEpisode.
- Make sure that you are not blocking Googlebot from crawling your content, and that your content renders appropriately. You can check how Googlebot renders your content using this tool. In particular, check for the following:
- Your robots.txt should not have a Disallow with a path that includes your content.
- You should disable any interstitials, such as paywalls, for Googlebot.
- Check that the markup for the various types in your catalog match our requirements using our markup validation tool. Although this tool will not validate very large feeds, you can validate a small sample feed, and validate the structure of your top level types.
- Check that the
urlproperties are unique per entity. We recommend using the same value for both if the URL for an entity is unique across your catalog. As a reminder, check the guidelines for the
- Does not ever change
- Unique per content type and across content types. For example, you may not use the same
@idfor a TVSeries and a TVEpisode
- The same
@idshould be used throughout your structured data wherever the entity is referenced, for example the
partOfSeries.@idfor a TVEpisode should match the
@idused for the main TVSeries definition
- Must be in the form of a URI (does not need to be a working URL).
- Verify the location of your feed for your domain. You can do this either through Search Console or by listing the feed in your robots.txt.
- Check that all action links you've provided are autoplay links. A user should not have to take any extra actions to initiate the content, they should be taken directly to the content with playback starting automatically.
- Where possible, provide a universal link across all your platforms, ie provide a single link that works across all platforms. Specifically, be aware of the following limitations:
- For iOS and Chromecast, we will only accept a http/https style universal link.
- For Android, you may provide a link in the android-app://package-name/scheme/path format, but not in custom scheme format, ie no links in the form scheme://path. We highly recommend that you implement universal links on your Android apps.
- The AndroidTV tag should only be used to indicate whether your Android link also works on your AndroidTV app. It should not be used to provide an additional link different to your Android link.
- To ensure that we serve content in a timely manner, we highly recommend that you add content to your feed ahead of time with an availabilityStarts date set for when the content is available to users.
- Generally, consolidate to as few WatchAction/ListenAction blocks as possible for each entity, for example - if all properties are the same across platforms (other than the deeplink), ie same category, availability, regions etc, you should use a single action block. You may provide multiple WatchAction/ListenAction blocks where warranted, for example you have different Offers for different platforms.
- If you have TV content, we expect you to provide both episode level deeplinks and the following virtual links for every TV Show:
- A TVSeries action that acts as a resume point link - When a user initiates a TVSeries action, they're taken to the point they left off in the episode they were last watching. If they've never watched the show before, the action should initiate the earliest available episode accessible by that user.
- A TVSeason action that acts as a resume point link - When a user initiates a TVSeason action, they're taken to the point they left off in the episode they were last watching from that Season. If they've never watched the show before, the action should initiate the earliest available episode from that Season accessible by that user.
Icons for search results
For search results, you will need to provide icons for your service in PNG format in sizes 16x16, 20x20, 40x40 and 44x44. The 44px * 44px file should be smaller than 1kb. The background of these icons can be transparent, or white.