All glossary terms
Glossary Spec

video:video

A sitemap extension declaring videos on a page, helping Google Video and Google Search surface video results. Supports up to 1,000 videos per URL.

Also known as: video extension

A video sitemap uses the video: namespace to declare video content embedded on each page. It helps Google Video and Google Search index your videos for video-result carousels and rich snippets.

When you need one

  • Self-hosted videos (not YouTube/Vimeo). Google can discover YouTube videos via YouTube's own infrastructure; for self-hosted players, an explicit video sitemap is the most reliable signal.
  • JavaScript-rendered video players. If your player initialises after page load, Google's video crawler may miss the underlying file.
  • Paywalled or gated videos. Combine with the Access schema to indicate availability.
  • Sites with hundreds of unique videos. Course platforms, tutorial sites, documentary archives.

For sites with the occasional embedded YouTube video and not much else, a video sitemap is overkill.

Required fields

FieldRequired?Purpose
video:thumbnail_locYesURL to a representative thumbnail image
video:titleYesVideo title (max 100 chars)
video:descriptionYesDescription (max 2,048 chars)
video:content_loc OR video:player_locOne requiredDirect video file URL OR embeddable player URL

If the video is on YouTube and you want to declare it from your own sitemap, use <video:player_loc> pointing at the YouTube embed URL.

Useful optional fields

  • video:duration (seconds, 1–28,800)
  • video:expiration_date (when the video should be removed from index)
  • video:rating (0.0–5.0)
  • video:view_count
  • video:publication_date
  • video:family_friendly (yes/no)
  • video:tag (1–32 per video)

Anatomy

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://example.com/courses/intro-react</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbs/intro-react.jpg</video:thumbnail_loc>
      <video:title>Intro to React — chapter 1</video:title>
      <video:description>Setup and first component.</video:description>
      <video:content_loc>https://cdn.example.com/videos/intro-react-1.mp4</video:content_loc>
      <video:duration>720</video:duration>
      <video:publication_date>2026-05-18T08:00:00Z</video:publication_date>
    </video:video>
  </url>
</urlset>

Limits

  • 1,000 videos per <url> entry.
  • Thumbnail must be at least 160 × 90 pixels and a standard format (JPG, PNG, GIF).
  • <video:content_loc> must point at a directly-playable file, not a landing page.

Common mistakes

  • Putting a webpage URL in video:content_loc. It must be a media file (.mp4, .webm, etc.). Use video:player_loc for HTML players.
  • Allowing Googlebot-Video to be blocked in robots.txt. Check your robots.txt explicitly.
  • No thumbnail. Required. Without it, the entry is invalid.
  • Mismatched canonical and video URL. The page hosting the video should canonicalise to itself, not to a different page.

What SitemapHost does

The SitemapHost API accepts a video object per URL with all the standard video: fields. We validate required fields at submission time, ensuring Google's video sitemap rules are met before XML generation.

Need help managing your sitemaps?

SitemapHost hosts your XML sitemap at your own domain with auto-SSL, IndexNow, and GSC integration.

Get Started Free