Video Schema Markup Guide: How to Get Video Rich Results in Google
Last Updated: February 25, 2026 · 12 min read
If your website embeds videos — whether self-hosted or from YouTube — VideoObject schema is your ticket to appearing in Google's video rich results. These show a video thumbnail directly in regular search results, significantly increasing click-through rates.
💡 Why This Matters
Pages with video rich results earn on average 3× more organic clicks than the same pages without video thumbnails. Google surfaces video results for how-to queries, product demos, tutorials, and reviews — high-intent traffic.
1. Required Fields for VideoObject
| Property | Required? | Notes |
|---|---|---|
| name | ✅ Required | Title of the video |
| description | ✅ Required | Description of the video content |
| thumbnailUrl | ✅ Required | URL of thumbnail image (must be crawlable) |
| uploadDate | ✅ Required | ISO 8601 date when video was published |
| duration | ⭐ Recommended | ISO 8601 duration, e.g. PT7M30S (7 min 30 sec) |
| contentUrl | ⭐ Recommended | Direct URL to video file (enables video indexing) |
| embedUrl | ⭐ Recommended | Embed URL (YouTube embed URL works here) |
| expires | Optional | When the video expires/goes offline |
| interactionStatistic | Optional | View count |
2. Complete VideoObject Schema Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Fix Schema Markup Errors in Google Search Console",
"description": "Step-by-step tutorial showing how to identify and fix the most common structured data errors in Google Search Console. Covers missing required properties, content mismatches, and invalid values.",
"thumbnailUrl": "https://example.com/thumbnails/fix-schema-errors-thumbnail.jpg",
"uploadDate": "2026-02-01T08:00:00+05:30",
"duration": "PT12M45S",
"contentUrl": "https://example.com/videos/fix-schema-errors.mp4",
"embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 28450
},
"publisher": {
"@type": "Organization",
"name": "SchemaValidator.org",
"logo": {
"@type": "ImageObject",
"url": "https://schemavalidator.org/logo.png"
}
}
}
</script>3. VideoObject for YouTube Embedded Videos
If you embed YouTube videos on your website, you need to add VideoObject schema manually — YouTube does not inject schema into your page for you. Here's the pattern:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Your Video Title Here",
"description": "Your video description from YouTube",
"thumbnailUrl": "https://img.youtube.com/vi/YOUR_VIDEO_ID/maxresdefault.jpg",
"uploadDate": "2026-01-10",
"duration": "PT8M22S",
"embedUrl": "https://www.youtube.com/embed/YOUR_VIDEO_ID"
}⚠️ YouTube Thumbnail URLs
Use https://img.youtube.com/vi/YOUR_VIDEO_ID/maxresdefault.jpg for the highest quality thumbnail. If maxresdefault.jpg returns a 404, fall back to hqdefault.jpg.
4. ISO 8601 Duration Format Cheatsheet
The duration field uses ISO 8601 format. Here are the most common patterns:
PT30S30 secondsPT2M2 minutesPT7M30S7 minutes 30 secondsPT1H1 hourPT1H15M1 hour 15 minutesPT2H30M45S2 hours 30 minutes 45 seconds5. Video Schema for How-To and Tutorial Pages
For tutorial videos, you can combine VideoObject with HowTo schema on the same page. This unlocks both video rich results AND step-by-step rich results simultaneously:
[
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Bake Sourdough Bread",
"thumbnailUrl": "...",
"uploadDate": "2026-01-15",
"duration": "PT22M"
},
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Bake Sourdough Bread",
"step": [
{ "@type": "HowToStep", "name": "Mix the starter", "text": "..." },
{ "@type": "HowToStep", "name": "Bulk fermentation", "text": "..." },
{ "@type": "HowToStep", "name": "Shape and bake", "text": "..." }
]
}
]6. Common VideoObject Mistakes
❌ Thumbnail not crawlable by Google
✅ Make sure the thumbnail URL is publicly accessible, not behind auth walls or blocked by robots.txt
❌ uploadDate in wrong format
✅ Use ISO 8601: 2026-02-01 or 2026-02-01T08:00:00Z — never 'February 1, 2026'
❌ Video content not on the page
✅ Google requires the video to actually be embedded/visible on the page the schema is on
❌ Missing both contentUrl and embedUrl
✅ Provide at least one of these — without them, Google cannot index the video itself
7. Frequently Asked Questions
Does VideoObject schema make my page rank higher for video searches?▼
VideoObject schema makes your page eligible for video rich results — a thumbnail next to your search result. It does not directly improve your ranking for video search queries. However, appearing in video results significantly increases click-through rate and routes video search traffic to your site rather than YouTube.
Do I need VideoObject schema for YouTube videos I embed on my site?▼
Yes. When you embed a YouTube video, YouTube's schema does not carry over to your page. You must add VideoObject schema manually to the embedding page, pointing to the YouTube embed URL and thumbnail.
What is the difference between contentUrl and embedUrl?▼
contentUrl points to the actual video file (e.g., .mp4 URL). embedUrl points to the player embed URL (e.g., YouTube embed URL). For self-hosted videos, provide contentUrl. For YouTube, use embedUrl. Google prefers at least one to be present for video indexing.
If I have multiple videos on one page, do I need a VideoObject for each?▼
Add a VideoObject for the primary/featured video on the page. For pages with video galleries or multiple supporting videos, you can add one VideoObject per video, but Google will typically only display one video rich result per page. Focus on the most important video.
Can I add VideoObject schema without a video on the page?▼
No — Google requires the video to actually be embedded and visible on the page where the schema appears. Adding VideoObject schema without an actual playable video on the page is a policy violation and can result in manual action.
How do I add VideoObject schema in WordPress?▼
Use RankMath (has video schema built in) or add a custom script via functions.php for video pages. Alternatively, add it via a custom Code Snippets plugin using a shortcode with video metadata. Yoast Free does not include VideoObject; Yoast Video SEO premium add-on is available but expensive.
Does my video need captions or transcripts for VideoObject schema?▼
Not required by schema spec, but transcript/caption content dramatically improves Google's ability to understand and index your video content. Google can now transcribe some videos automatically, but providing captions via hasPart with a ClipSchema or through WebVTT is best practice for SEO.
How long does it take for video rich results to appear after adding schema?▼
After adding valid VideoObject schema, Googlebot typically recrawls the page within 1–2 weeks. Video thumbnails usually appear in search results within 2–4 weeks of the recrawl. High-authority pages (many backlinks, frequent crawl budget) see results faster than new pages.
Validate Your Video Schema
Check your VideoObject structured data for errors — paste your page URL or raw JSON-LD below.
Validate Video Schema →