Video content is exploding, and Google is giving videos more prominence in search results than ever. Video schema markup is essential for getting your videos discovered, whether they’re hosted on YouTube, Vimeo, or your own server.
This guide shows you how to implement Video schema for maximum visibility.
What is Video Schema?
Video schema (VideoObject) is structured data that describes video content on your page. It tells search engines:
- Video title and description
- Thumbnail image
- Duration
- Upload date
- Content URL or embed URL
- Transcript (optional)
With proper markup, your videos can appear in Google’s video carousel, regular search results with video thumbnails, and Google Discover.
Where Video Rich Results Appear
Video Carousel
A horizontal scrollable carousel of videos that appears for video-intent queries.
Standard Search Results
Video thumbnails next to regular search listings.
Google Discover
Video content featured in users’ Discover feeds.
Google Images
Videos appearing in image search results.
Video Tab
Dedicated video search results.
Required Properties
Google requires:
- name - Video title
- thumbnailUrl - Video thumbnail image
- uploadDate - When the video was first published
Recommended Properties
For best results, include:
- description - Video description
- duration - Video length (ISO 8601)
- contentUrl - URL of the actual video file
- embedUrl - URL for embedding the player
- interactionStatistic - View count
- expires - When the video is no longer available
- hasPart - Key moments/chapters
- publication - Broadcast information
Complete Video Schema Example
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Set Up a Home Office in 10 Minutes",
"description": "Quick guide to setting up a productive home office space. Learn the essentials for comfortable remote work.",
"thumbnailUrl": [
"https://example.com/photos/video-thumb-1x1.jpg",
"https://example.com/photos/video-thumb-4x3.jpg",
"https://example.com/photos/video-thumb-16x9.jpg"
],
"uploadDate": "2025-01-15T08:00:00+00:00",
"duration": "PT10M35S",
"contentUrl": "https://example.com/videos/home-office-setup.mp4",
"embedUrl": "https://example.com/embed/home-office-setup",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 52847
},
"regionsAllowed": "US,CA,GB,AU",
"author": {
"@type": "Person",
"name": "John Productivity"
},
"publisher": {
"@type": "Organization",
"name": "Productivity Tips",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
Duration Format
Use ISO 8601 duration format:
- PT1M30S = 1 minute 30 seconds
- PT5M = 5 minutes
- PT1H = 1 hour
- PT1H25M30S = 1 hour 25 minutes 30 seconds
Thumbnail Requirements
Size
- Minimum: 160x90 pixels
- Recommended: 1920x1080 (16:9 aspect ratio)
Quality
- Clear, high-resolution images
- Representative of video content
- No misleading thumbnails
Multiple Sizes
Provide various sizes:
"thumbnailUrl": [
"https://example.com/thumb-small.jpg",
"https://example.com/thumb-medium.jpg",
"https://example.com/thumb-large.jpg"
]
Key Moments (Chapters)
Help users jump to specific parts of your video:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Complete Photography Tutorial",
"hasPart": [
{
"@type": "Clip",
"name": "Introduction to Camera Settings",
"startOffset": 0,
"endOffset": 180,
"url": "https://example.com/video#t=0"
},
{
"@type": "Clip",
"name": "Understanding Aperture",
"startOffset": 180,
"endOffset": 420,
"url": "https://example.com/video#t=180"
},
{
"@type": "Clip",
"name": "Shutter Speed Basics",
"startOffset": 420,
"endOffset": 660,
"url": "https://example.com/video#t=420"
}
]
}
The startOffset and endOffset are in seconds.
Live Video Markup
For live streaming content:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Live Product Launch Event",
"description": "Watch our new product launch live",
"thumbnailUrl": "https://example.com/live-thumb.jpg",
"uploadDate": "2025-01-20T14:00:00+00:00",
"publication": {
"@type": "BroadcastEvent",
"isLiveBroadcast": true,
"startDate": "2025-01-20T14:00:00+00:00",
"endDate": "2025-01-20T16:00:00+00:00"
}
}
YouTube Videos
For embedded YouTube videos, you can still add schema:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"description": "Video description",
"thumbnailUrl": "https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg",
"uploadDate": "2025-01-15",
"duration": "PT10M30S",
"embedUrl": "https://www.youtube.com/embed/VIDEO_ID",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 10000
}
}
Self-Hosted Videos
For videos on your own server:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Product Demo",
"contentUrl": "https://example.com/videos/demo.mp4",
"thumbnailUrl": "https://example.com/thumbs/demo.jpg",
"uploadDate": "2025-01-15",
"duration": "PT5M"
}
Ensure the video file is accessible to Googlebot.
Adding Transcripts
Transcripts help with accessibility and SEO:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Tutorial Video",
"transcript": "Welcome to this tutorial. Today we'll learn about..."
}
For long transcripts, provide a URL to a separate transcript page.
Video on Product Pages
Combine Video with Product schema:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Running Shoes",
"video": {
"@type": "VideoObject",
"name": "Running Shoes Review",
"thumbnailUrl": "https://example.com/video-thumb.jpg",
"uploadDate": "2025-01-15",
"duration": "PT3M20S",
"embedUrl": "https://example.com/embed/shoes-review"
}
}
Common Mistakes
1. Missing Thumbnails
Always include a thumbnail URL. Videos without thumbnails rarely get rich results.
2. Wrong Duration Format
Use ISO 8601 format (PT5M30S), not “5:30” or “330 seconds”.
3. Inaccessible Content
Ensure your video files and thumbnails are accessible to Googlebot.
4. Missing Upload Date
Include the original upload date, not the page publish date.
5. Embedded Video Without Markup
Just embedding a YouTube video isn’t enough. Add schema markup.
Measuring Video SEO
Track these metrics:
Search Console
- Video appearances in search
- Clicks from video results
- Impressions by query
YouTube Analytics
- Search traffic sources
- External traffic
- Click-through rate
Site Analytics
- Video page traffic
- Video play rate
- Watch time
Generate Your Video Schema
Use our free Video Schema Generator to create valid markup for your video content.
Enter your:
- Video title and description
- Thumbnail URL
- Upload date
- Duration
- Content or embed URL
Get properly formatted JSON-LD ready to add to your video pages.
Conclusion
Video schema is essential for video content creators who want visibility in Google search. With video consumption growing rapidly, the opportunities for video-rich results are expanding.
Focus on quality metadata: accurate durations, compelling thumbnails, and detailed descriptions. Combined with proper schema markup, your videos will have the best chance of appearing prominently in search results.
Start with your most important videos, implement schema, and track your video search performance over time.
Need help with video SEO strategy? I can help you optimize your video content for search and implement proper schema markup. Get in touch for a consultation.