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
Accessschema 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
| Field | Required? | Purpose |
|---|---|---|
video:thumbnail_loc | Yes | URL to a representative thumbnail image |
video:title | Yes | Video title (max 100 chars) |
video:description | Yes | Description (max 2,048 chars) |
video:content_loc OR video:player_loc | One required | Direct 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_countvideo:publication_datevideo: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.). Usevideo:player_locfor HTML players. - Allowing
Googlebot-Videoto 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.
Related terms
Need help managing your sitemaps?
SitemapHost hosts your XML sitemap at your own domain with auto-SSL, IndexNow, and GSC integration.
Get Started Free