Got videos on your website that aren't showing up in Google Video search? You need a video sitemap.
Here's the reality: Google can discover videos on your pages, but a video sitemap makes it much easier and provides rich metadata that helps with rankings.
This is critical for:
- YouTube creators with embedded videos
- News sites with video content
- E-learning platforms
- Product demo videos
- Video blogs and vlogs
In this guide, I'll show you how to create video sitemaps, what metadata to include, and how to optimize for maximum visibility in Google Video search.
What is a Video Sitemap?
A video sitemap is an extension of your XML sitemap that includes specific information about videos on your pages.
Basic example:
<?xml version="1.0" encoding="UTF-8"?>
<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/video-page</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/video.jpg</video:thumbnail_loc>
<video:title>How to Build a Sitemap (see [guide](/posts/how-to-create-xml-sitemap-2025/))</video:title>
<video:description>Complete tutorial on creating XML sitemaps</video:description>
<video:content_loc>https://example.com/videos/sitemap-tutorial.mp4</video:content_loc>
<video:duration>600</video:duration>
</video:video>
</url>
</urlset>
Key components:
xmlns:videonamespace declaration<video:video>wrapper for each video- Required metadata (thumbnail, title, description)
- Optional metadata (duration, upload date, category, etc.)
Why You Need a Video Sitemap
1. Faster Video Discovery
Without a video sitemap, Google discovers videos by:
- Parsing your HTML for
<video>tags - Detecting YouTube/Vimeo embeds
- Analyzing page content for video signals
With a video sitemap, you explicitly tell Google:
- "This page has a video"
- "Here's the video file location"
- "Here's what the video is about"
Impact: Faster indexing in Google Video search.
2. Rich Video Metadata
Video sitemaps let you provide detailed information:
| Metadata | How It Helps |
|---|---|
| Title | Appears in video search results |
| Description | Helps with ranking for relevant queries |
| Thumbnail | Visual preview in search results |
| Duration | Shows video length to users |
| Upload date | Signals freshness |
| Category | Helps with topical relevance |
| Tags | Additional keyword signals |
3. Better Video Search Rankings
Proper metadata helps Google:
- Understand video content
- Match videos to relevant queries
- Display rich snippets in search results
- Show videos in appropriate contexts
4. YouTube Video Integration
For YouTube videos embedded on your site:
- Video sitemap ensures proper attribution
- Helps Google understand the relationship
- Can drive traffic to both your site and YouTube channel
Video Sitemap Syntax and Elements
Required Elements
Namespace declaration:
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
Thumbnail URL (required):
<video:thumbnail_loc>https://example.com/thumbs/video.jpg</video:thumbnail_loc>
- Must be at least 160x90 pixels
- Recommended: 1280x720 pixels or higher
- Formats: JPG, PNG, GIF
Title (required):
<video:title>Complete Guide to XML Sitemaps</video:title>
- Maximum 100 characters
- Should be descriptive and keyword-rich
Description (required):
<video:description>Learn how to create and optimize XML sitemaps for better SEO. This comprehensive tutorial covers everything from basics to advanced techniques.</video:description>
- Maximum 2,048 characters
- Should be detailed and informative
Video location (required, one of):
<!-- Option 1: Direct video file -->
<video:content_loc>https://example.com/videos/tutorial.mp4</video:content_loc>
<!-- Option 2: Video player URL -->
<video:player_loc>https://example.com/videoplayer.swf?video=123</video:player_loc>
Recommended Optional Elements
Duration (in seconds):
<video:duration>600</video:duration>
- Helps users decide if they have time to watch
- Shows in search results
Upload date:
<video:publication_date>2025-11-26T14:30:00+00:00</video:publication_date>
- ISO 8601 format
- Signals freshness
Expiration date (for time-sensitive content):
<video:expiration_date>2026-01-01T00:00:00+00:00</video:expiration_date>
- Google won't show video after this date
- Useful for event videos, limited-time offers
Rating (0.0 to 5.0):
<video:rating>4.5</video:rating>
- User rating of the video
- Shows in search results
View count:
<video:view_count>15234</video:view_count>
- Social proof
- Can influence click-through rate
Category:
<video:category>Education</video:category>
- Maximum 256 characters
- Helps with topical relevance
Tags:
<video:tag>sitemaps</video:tag>
<video:tag>SEO</video:tag>
<video:tag>tutorial</video:tag>
- Maximum 32 tags
- Additional keyword signals
Family friendly:
<video:family_friendly>yes</video:family_friendly>
- Values:
yesorno - Helps with SafeSearch filtering
Complete Example
<?xml version="1.0" encoding="UTF-8"?>
<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/tutorials/sitemap-guide</loc>
<video:video>
<!-- Required -->
<video:thumbnail_loc>https://cdn.example.com/thumbs/sitemap-guide.jpg</video:thumbnail_loc>
<video:title>Complete XML Sitemap Tutorial for SEO</video:title>
<video:description>Learn everything about XML sitemaps in this comprehensive 10-minute tutorial. Perfect for beginners and advanced users alike.</video:description>
<video:content_loc>https://cdn.example.com/videos/sitemap-tutorial.mp4</video:content_loc>
<!-- Recommended -->
<video:duration>600</video:duration>
<video:publication_date>2025-11-26T14:30:00+00:00</video:publication_date>
<video:rating>4.8</video:rating>
<video:view_count>12500</video:view_count>
<video:category>Education</video:category>
<video:family_friendly>yes</video:family_friendly>
<!-- Tags -->
<video:tag>XML sitemap</video:tag>
<video:tag>SEO tutorial</video:tag>
<video:tag>technical SEO</video:tag>
<!-- Uploader info -->
<video:uploader info="https://example.com/about">Example Company</video:uploader>
</video:video>
</url>
</urlset>
How to Create a Video Sitemap
Method 1: Add to Existing Sitemap
Combine with regular sitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<!-- Page with video -->
<url>
<loc>https://example.com/product-demo</loc>
<lastmod>2025-11-26</lastmod>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/demo.jpg</video:thumbnail_loc>
<video:title>Product Demo Video</video:title>
<video:description>See our product in action</video:description>
<video:content_loc>https://example.com/videos/demo.mp4</video:content_loc>
<video:duration>180</video:duration>
</video:video>
</url>
<!-- Regular page without video -->
<url>
<loc>https://example.com/about</loc>
<lastmod>2025-11-20</lastmod>
</url>
</urlset>
Method 2: Separate Video Sitemap
For video-heavy sites:
sitemap_index.xml
├── sitemap-pages.xml (regular pages)
└── sitemap-videos.xml (video content)
Method 3: WordPress Plugins
- Automatically detects embedded videos
- Creates video sitemap entries
- Supports YouTube, Vimeo, Dailymotion
- Video sitemap support
- Auto-detection of video embeds
- Custom video metadata
To enable:
- Go to SEO → General → Features
- Enable "XML sitemaps"
- Videos are automatically included
Method 4: Custom Development
For custom sites without CMS:
Most platforms (WordPress, Shopify, Wix, YouTube) handle video sitemaps automatically.
If you're building a custom video platform, use established sitemap libraries:
- Python:
python-sitemappackage with video extensions - Node.js:
sitemapnpm package - PHP: XML generation with SimpleXML
These handle the complex video sitemap XML structure automatically. FROM videos WHERE published = 1 ORDER BY published_at DESC ''')
xml = '<?xml version="1.0" encoding="UTF-8"?>\n'
xml += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"\n'
xml += ' xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">\n'
for row in cursor.fetchall():
page_url, thumbnail, title, desc, video_url, duration, pub_date, views, rating = row
xml += ' <url>\n'
xml += f' <loc>{page_url}</loc>\n'
xml += ' <video:video>\n'
xml += f' <video:thumbnail_loc>{thumbnail}</video:thumbnail_loc>\n'
xml += f' <video:title>{title}</video:title>\n'
xml += f' <video:description>{desc}</video:description>\n'
xml += f' <video:content_loc>{video_url}</video:content_loc>\n'
xml += f' <video:duration>{duration}</video:duration>\n'
xml += f' <video:publication_date>{pub_date}</video:publication_date>\n'
if views:
xml += f' <video:view_count>{views}</video:view_count>\n'
if rating:
xml += f' <video:rating>{rating}</video:rating>\n'
xml += ' </video:video>\n'
xml += ' </url>\n'
xml += '</urlset>'
conn.close()
return xml
## YouTube Videos: Special Considerations
### Embedded YouTube Videos
**For YouTube embeds on your site**:
```xml
<video:video>
<video:thumbnail_loc>https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg</video:thumbnail_loc>
<video:title>Video Title</video:title>
<video:description>Video description</video:description>
<video:player_loc>https://www.youtube.com/embed/VIDEO_ID</video:player_loc>
<video:duration>600</video:duration>
</video:video>
Important: Use <video:player_loc> for YouTube embeds, not <video:content_loc>.
YouTube Thumbnail URLs
Standard quality (480x360):
https://img.youtube.com/vi/VIDEO_ID/0.jpg
High quality (1280x720):
https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg
Medium quality (320x180):
https://img.youtube.com/vi/VIDEO_ID/mqdefault.jpg
Best Practices for Video Sitemaps
1. One Video Per Page
Google's recommendation: One video per URL for best results.
If you have multiple videos:
<url>
<loc>https://example.com/tutorial-series</loc>
<video:video>
<video:title>Tutorial Part 1</video:title>
<!-- ... -->
</video:video>
<video:video>
<video:title>Tutorial Part 2</video:title>
<!-- ... -->
</video:video>
</url>
Better approach: Separate pages for each video.
2. High-Quality Thumbnails
Requirements:
- Minimum: 160x90 pixels
- Recommended: 1280x720 pixels
- Formats: JPG, PNG, GIF
- Clear, representative image
Don't use:
- Blurry images
- Generic placeholders
- Misleading thumbnails
3. Accurate Metadata
Title best practices:
- Include target keywords
- Be descriptive
- Under 100 characters
- Match actual video title
Description best practices:
- Detailed summary
- Include keywords naturally
- 200-500 characters ideal
- Match video content
4. Keep Videos Accessible
Ensure:
- Videos aren't blocked by robots.txt (see guide)
- Video files return 200 status code
- No authentication required
- CDN allows Googlebot
Test:
curl -I https://cdn.example.com/video.mp4
Should return 200 OK.
5. Update Metadata Regularly
When to update:
- Video title/description changes
- View count increases significantly
- Rating changes
- Video is replaced
Don't update <video:publication_date> unless video is actually re-uploaded.
Common Mistakes to Avoid
Mistake #1: Missing Required Fields
Wrong:
<video:video>
<video:title>My Video</video:title>
<!-- Missing thumbnail, description, and content_loc! -->
</video:video>
Right: Include all required fields.
Mistake #2: Using Low-Quality Thumbnails
Wrong: 100x75 pixel thumbnail
Right: 1280x720 pixel high-quality thumbnail
Mistake #3: Incorrect Duration Format
Wrong:
<video:duration>10:30</video:duration> <!-- String format -->
Right:
<video:duration>630</video:duration> <!-- Seconds (10 min 30 sec = 630 seconds) -->
Mistake #4: Blocking Video Files
Check robots.txt:
User-agent: Googlebot-Video
Disallow: /videos/ ← Don't do this!
Fix: Allow Googlebot-Video to access videos.
Mistake #5: Outdated View Counts
Don't:
- Set view count to 0 for new videos
- Leave it static forever
Do:
- Update periodically (weekly/monthly)
- Or omit if you can't keep it current
Monitoring Video Sitemap Performance
Google Search Console
- Go to Performance → Search Results
- Click Search Type → Video
- See video search impressions and clicks
Metrics to track:
- Video impressions
- Click-through rate
- Top-performing videos
- Queries driving video traffic
Video Coverage
- Go to Sitemaps
- Click on your sitemap
- Check "Discovered videos" count
What to look for:
- All videos discovered
- No errors or warnings
- Video count matches expectations
Advanced: Schema Markup Integration
Combine video sitemap with VideoObject schema:
In your HTML:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Complete Sitemap Tutorial",
"description": "Learn everything about XML sitemaps",
"thumbnailUrl": "https://example.com/thumbs/video.jpg",
"uploadDate": "2025-11-26T14:30:00+00:00",
"duration": "PT10M",
"contentUrl": "https://example.com/videos/tutorial.mp4"
}
</script>
Benefits:
- Rich snippets in search results
- Video carousel eligibility
- Enhanced video search presence
Next Steps
Now that you understand video sitemaps:
- Audit your video content - Which videos should be in your sitemap?
- Create or update your sitemap - Add video metadata
- Submit to Search Console - Monitor for errors
- Optimize video metadata - Better titles and descriptions
- Track performance - Monitor video search traffic
- Learn about image sitemaps - Read our image sitemap guide
Key Takeaways
- Video sitemaps help Google discover and index your videos faster
- Include all required fields: thumbnail, title, description, content location
- Use high-quality thumbnails (1280x720 recommended)
- Accurate metadata matters - Helps with rankings
- One video per page for best results
- Monitor in Search Console - Track video search performance
Bottom line: If video is important to your content strategy, a video sitemap is essential for maximizing visibility in Google Video search.
Ready to optimize your video sitemap? Visualize your sitemap structure to see which pages have video metadata and identify optimization opportunities.