schema.org markup for videos

Google supports and recommends using the schema.org on-page markup for videos. The schema.org vocabulary is supported by Google, Bing, and Yahoo! Using schema.org to describe your videos will allow Google to index and show your videos in search.

  • Use the schema.org/VideoObject type to describe videos. (Find the full specification at schema.org.)
  • Make sure that your video and schema.org markup are visible without executing any JavaScript or Flash. To see how your site will appear to Google, you should view your play pages in a text-only browser such as Lynx, or a more conventional browser where you've confirmed that Flash and JavaScript are disabled.
  • You can and should also submit a Video Sitemap that helps Google discover your videos and provides additional information about your video content.
Testing video markup

Adding VideoObject to a video page

Add schema.org markup directly to the HTML of your video page. When Google crawls your page, we'll use this information to index your video. While only a few properties are required, providing additional information helps Google understand your video and enhance its appearance in search results.

Once you’ve added markup to your page, use the structured data testing tool to make sure that Google can correctly extract your marked-up content from your pages.

Here's an example of marked-up HTML content for a video:

<div itemprop="video" itemscope itemtype="http://schema.org/VideoObject">
  <h2>Video: <span itemprop="name">Title</span></h2>
  <meta itemprop="duration" content="T1M33S" />
  <meta itemprop="thumbnailUrl" content="thumbnail.jpg" />
  <meta itemprop="contentURL" content="http://www.example.com/video123.flv" />
  <meta itemprop="embedURL" content="http://www.example.com/videoplayer.swf?video=123" />
  <meta itemprop="uploadDate" content="2011-07-05T08:00:00+08:00" />
  <meta itemprop="expires" content="2012-01-30T19:00:00+08:00" />
  <object ...>
    <param ...>
    <embed type="application/x-shockwave-flash" ...>
  </object>
  <span itemprop="description">Video description</span>
</div>

schema.org VideoObject properties

Google recommends marking up your video content with the following tags. See the full list of VideoObject properties at schema.org.

Property Required? Description
name Required The title of the video
description Required The description of the video
thumbnailUrl Required A URL pointing to the video thumbnail image file. Images must be at least 160 x 90 pixels and at most 1920x1080 pixels. We recommend images in .jpg, .png, or. gif formats.
duration Recommended The duration of the video in ISO 8601 format.
contentURL Recommended A URL pointing to the actual video media file. This file should be in .mpg, .mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other video file format. All files must be accessible via HTTP. Metafiles that require a download of the source via streaming protocols, such as RTMP, are not supported.

Providing this file allows Google to generate video thumbnails and video previews and can help Google verify your video.

Best practice: Ensure that only Googlebot accesses your content by using a reverse DNS lookup.

embedURL Recommended A URL pointing to a player for the specific video. Usually this is the information in the src element of an <embed> tag. Example:

Dailymotion: http://www.dailymotion.com/swf/x1o2g

Best practice: Ensure that only Googlebot accesses your content by using a reverse DNS lookup.

uploadDate Recommended The date the video was first published, in ISO 8601 format.
expires Recommended if applicable The date after which the video will no longer be available, in ISO 8601 format. Don't supply this information if your video does not expire.