28 Feb 2012

Video Optimization for SEO with Schema.org

Video Optimization for SEO with Schema.org

As I’ve written about previously, last year Google, Bing and Yahoo! announced joint support for the schema.org semantic markup standard. The standard provides a way to mark up content with microdata so what each element means is clearly and explicitly stated in the code. The benefit is that an increasing variety of content types – products, local businesses, reviews, events – can be served up in search engine results with rich snippets. These rich snippets make the most of your search results ranking with eye-catching, custom information like thumbnails, ratings, and geo-targeted information.

Now schema.org has released its standard for video, providing a way to optimize the fastest growing segment of online content.

Rich Snippets

As with recipes, products, images and other specialized kinds of content, video search results can be displayed as rich snippets in search engine results pages. These rich snippets often enjoy prime placement, sometimes even appearing above top-ranking page results, as seen here:

Video Rich Snippet in Google

With the newly released VideoObject schema.org standard, content providers can improve the chances that their video content will be displayed as a video rich snippet.

Semantic Markup for Video

While there a large number of attributes you could potentially add in your semantic markup for a video, we’ll focus on the most essential ones. First, let’s take a look at what a typical video code might look like:

<h2>Video: Expert Interview with Astrophysicist Tricia McMillan</h2>

<object ...>
<param ...>
<embed type="application/x-shockwave-flash" ...>

An engaging discussion with the scientist about her spaceship, mice, and the number 42.

The code within the <object></object> tag represents whatever embed coding you use for your video. As you can see, much of the essential information is there, but search engines have to rely on context and proximity to guess if the header and description nearby refer to the video.

Now, let’s see that same information using schema.org semantic markup:

<div itemscope itemtype="http://schema.org/VideoObject">

<h2>Video: <span itemprop="name"> Interview with Astrophysicist Tricia McMillan</span></h2>

<meta itemprop="duration" content="T6M42S" />
<meta itemprop="thumbnail" content="trillian-interview-thumb.jpg" />
<meta itemprop="embedURL" content="http://www.example.com/videoplayer.swf?video=123" />
<object ...>
<param ...>
<embed type="application/x-shockwave-flash" ...>

<span itemprop="description"> An engaging discussion with the scientist about her spaceship, mice, and the number 42.</span>


Instead of a series of possibly related pieces, the video is now presented as a single element with its attributes clearly spelled out. Here’s a breakdown of the main attributes used:

  • itemtype=”http://schema.org/VideoObject”: declares that the content nested within this <div> tag relates to a video
  • itemprop=”name”: the name of the video
  • itemprop=”duration”: states the length of the video in ISO 8601 format)
  • itemprop=”thumbnail”: the URL of the video thumbnail image that will be displayed in the rich snippets
  • itemprop=”embedURL”: A URL pointing to a player for a specific video. In general, this is the information in the “src” element of an embed tag
  • itemprop=”description”: a description of the video

As you can see, the schema.org markup affords you the opportunity to include keyword-rich tag attributes to your video in a way that’s standards-compliant and semantic. As with other schema, it’s not clear at this point how much, if any, the search engines will use the content as a ranking factor. But even if it the answer is none, the benefit comes from being clearly identified as video content with an eye-catching rich snippet and potentially high placement in results pages.

And much like a page’s meta description tag, it is important to craft schema attributes like name and description to be compelling to viewers, not just search engines. As these attributes may display in the snippets on results pages, they should be engaging and invite users to click through to your content.

Sitemaps vs. Schema.org

The schema.org markup for video does not replace a video sitemap. It is recommended that you provide a video sitemap in addition to the semantic markup for your videos, as Henry Zhang from Google’s video search team notes:

While some of the information may be redundant between the two areas, video sitemaps are still the quickest and most consistent way to be sure search engines can find videos as you add them, while semantic markup ensures videos are optimized for display in search results.

Additional Resources

VideoObject – the schema.org markup options for video
Rich Snippets Testing Tool – code validator to ensure your markup is correct
Google Video Sitemap Guide – Learn how to create XML video sitemaps

Will you move forward with semantic markup for your video? Let us know in the comments!


  • David Gould Mar 01, 2012

    Hi Joydeep,

    Meta tags will validate outside of the head tags with the HTML5 standard, which you would need in any case to support microdata attributes like “itemprop” and “itemtype”.


  • Dom Zimmerman Mar 06, 2012

    Nice post – Schema is really making universal mark-up a lot easier, better to implement and hopefully conversions will rise!

  • Josh Deltener Jan 16, 2013

    It should be noted that per Google, we should be using thumbnailUrl NOT thumbnail.


  • David Gould Jan 16, 2013

    It’s not 100% clear, Josh. Per the schema.org specifications and example, the property for the VideoObject is “thumbnail.” However, Google’s directives suggest “thumbnailUrl” which is actually a property of the CreativeWork object (of which the VideoObject is a subset).

    In looking at a given YouTube video, for example, the schema uses both “thumbnail” and “thumbnailUrl,” and I think it’s fine to include both. But if you compare the search rich snippet for that video to the two images, it is actually the the “thumbnail” image that appears in the rich snippet.

    However, to that point, the “thumbnail” property likely should be marked up formally as an ImageObject. One of the great challenges in implementing this markup is the confusing and sometimes contradictory examples and documentation the organizations provide. Thanks for the input!