Skip to main content
Technical SEO 15 min read

Video Schema: Get Video Rich Results in Google Search

Transform your video content into eye-catching rich results. Learn to implement VideoObject schema for thumbnails, key moments, and enhanced visibility across Google Search and Discover.

Published: December 13, 2024 Updated: December 13, 2024
Chris Drinkard

Written by

14 years in hospitality management

5 years helping independent hotels grow their online presence. Passionate about AI, search, and digital strategy.

What is Video Schema?

Video schema (VideoObject) is structured data markup that tells search engines about video content on your pages. It provides details like title, description, duration, thumbnail, and upload date— enabling rich results that make your videos stand out in search results.

Why Video Schema Matters

  • ✓ Video thumbnails in search results (massive CTR boost)
  • ✓ Key Moments (chapters) displayed in search
  • ✓ Eligibility for Video tab in Google Search
  • ✓ Appearance in Google Discover with video carousel
  • ✓ Better understanding of video content by Google
  • ✓ Voice search optimization for video queries

Video content is increasingly important for SEO. Google reports that pages with video are 53x more likely to rank on page one of search results. Proper video schema helps you maximize this advantage.

Video Rich Results Types

Video Thumbnail

A video thumbnail appears next to your search result, immediately signaling video content and attracting clicks.

CTR increase: 30-50%

Key Moments

Timestamped sections that let users jump directly to specific parts of your video from search results.

Improves user engagement

Video Carousel

Multiple videos can appear in a carousel for relevant queries, giving you multiple ranking opportunities.

Multiple visibility spots

Video Tab Results

Your video can appear in Google's dedicated Video tab, reaching users specifically searching for video content.

Targeted video searchers

Google Discover

Videos with proper schema are eligible for Google Discover, appearing in users' personalized feeds.

Passive traffic opportunity

LIVE Badge

Live streaming videos can show a red LIVE badge, indicating real-time content and driving immediate engagement.

Real-time engagement

Required & Recommended Properties

Property Status Description
name Required Video title
description Required Video description
thumbnailUrl Required Thumbnail image URL (min 60x30, recommended 1920x1080)
uploadDate Required ISO 8601 date when video was first published
contentUrl Recommended Direct URL to video file
embedUrl Recommended URL for video player embed
duration Recommended ISO 8601 duration format (PT1H30M)
hasPart Optional Key Moments/Clips array
interactionStatistic Optional View count and engagement metrics

Important: You must include either contentUrl or embedUrl (or both). Without at least one, Google can't verify your video exists and schema won't be valid.

Implementation Examples

Basic VideoObject Schema

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Optimize Core Web Vitals in 2025",
  "description": "Learn the latest techniques for improving LCP, CLS, and INP to boost your website performance and search rankings.",
  "thumbnailUrl": "https://example.com/thumbnails/cwv-tutorial.jpg",
  "uploadDate": "2024-12-13T08:00:00+00:00",
  "duration": "PT15M30S",
  "contentUrl": "https://example.com/videos/cwv-tutorial.mp4",
  "embedUrl": "https://example.com/embed/cwv-tutorial",
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": "https://schema.org/WatchAction",
    "userInteractionCount": 15420
  },
  "expires": "2025-12-31T23:59:59+00:00"
}
</script>

Complete VideoObject with All Recommended Properties

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Complete SEO Audit Tutorial for Beginners",
  "description": "Step-by-step guide to auditing your website for technical SEO issues. Learn to identify and fix common problems that hurt your search rankings.",
  "thumbnailUrl": [
    "https://example.com/thumbnails/seo-audit-1x1.jpg",
    "https://example.com/thumbnails/seo-audit-4x3.jpg",
    "https://example.com/thumbnails/seo-audit-16x9.jpg"
  ],
  "uploadDate": "2024-12-13",
  "duration": "PT45M00S",
  "contentUrl": "https://cdn.example.com/videos/seo-audit-tutorial.mp4",
  "embedUrl": "https://example.com/embed/seo-audit-tutorial",
  "author": {
    "@type": "Person",
    "name": "Jane Smith",
    "url": "https://example.com/authors/jane-smith"
  },
  "publisher": {
    "@type": "Organization",
    "name": "SEO Academy",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": "https://schema.org/WatchAction",
    "userInteractionCount": 52840
  },
  "regionsAllowed": ["US", "CA", "GB", "AU"],
  "inLanguage": "en"
}
</script>

Adding Key Moments (Clips)

Key Moments allow users to jump directly to specific sections of your video from search results. This is especially valuable for longer tutorials and educational content.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Complete WordPress SEO Guide",
  "description": "Master WordPress SEO with this comprehensive tutorial covering everything from basics to advanced techniques.",
  "thumbnailUrl": "https://example.com/thumbnails/wp-seo.jpg",
  "uploadDate": "2024-12-13",
  "duration": "PT1H15M",
  "contentUrl": "https://example.com/videos/wp-seo-guide.mp4",
  "hasPart": [
    {
      "@type": "Clip",
      "name": "Introduction to WordPress SEO",
      "startOffset": 0,
      "endOffset": 180,
      "url": "https://example.com/videos/wp-seo-guide?t=0"
    },
    {
      "@type": "Clip",
      "name": "Installing an SEO Plugin",
      "startOffset": 180,
      "endOffset": 600,
      "url": "https://example.com/videos/wp-seo-guide?t=180"
    },
    {
      "@type": "Clip",
      "name": "Optimizing Title Tags and Meta Descriptions",
      "startOffset": 600,
      "endOffset": 1200,
      "url": "https://example.com/videos/wp-seo-guide?t=600"
    },
    {
      "@type": "Clip",
      "name": "Setting Up XML Sitemaps",
      "startOffset": 1200,
      "endOffset": 1800,
      "url": "https://example.com/videos/wp-seo-guide?t=1200"
    },
    {
      "@type": "Clip",
      "name": "Image Optimization Best Practices",
      "startOffset": 1800,
      "endOffset": 2400,
      "url": "https://example.com/videos/wp-seo-guide?t=1800"
    }
  ]
}
</script>

Key Moments Best Practices

  • ✓ Include 3-10 key moments per video
  • ✓ Make clip names descriptive and action-oriented
  • ✓ Ensure URLs include accurate timestamp parameters
  • ✓ Order clips chronologically by startOffset
  • ✓ Don't overlap endOffset with next startOffset

Schema for Embedded Videos

When embedding videos from YouTube, Vimeo, or other platforms, you can still add VideoObject schema to help your page rank for video searches.

YouTube Embedded Video

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Build a Website in 2025",
  "description": "Complete beginner's guide to building a modern website from scratch.",
  "thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
  "uploadDate": "2024-12-13",
  "duration": "PT25M30S",
  "embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
  "contentUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": "https://schema.org/WatchAction",
    "userInteractionCount": 1500000
  }
}
</script>

Vimeo Embedded Video

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Professional Video Production Tips",
  "description": "Expert tips for creating high-quality video content.",
  "thumbnailUrl": "https://vumbnail.com/123456789.jpg",
  "uploadDate": "2024-12-13",
  "duration": "PT12M00S",
  "embedUrl": "https://player.vimeo.com/video/123456789",
  "contentUrl": "https://vimeo.com/123456789"
}
</script>

Live Streaming Schema

For live video content, use BroadcastEvent nested within VideoObject to enable the LIVE badge in search results.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Live SEO Q&A Session",
  "description": "Join us live to get your SEO questions answered by experts.",
  "thumbnailUrl": "https://example.com/thumbnails/live-qa.jpg",
  "uploadDate": "2024-12-13T14:00:00+00:00",
  "embedUrl": "https://example.com/live/seo-qa",
  "publication": {
    "@type": "BroadcastEvent",
    "isLiveBroadcast": true,
    "startDate": "2024-12-13T14:00:00+00:00",
    "endDate": "2024-12-13T15:00:00+00:00"
  }
}
</script>

Important: Update your schema when the live stream ends. Change isLiveBroadcast to false and add the final duration. Leaving live indicators after a stream ends can cause issues.

Best Practices

1. High-Quality Thumbnails

Use custom thumbnails at least 1280x720 pixels. Thumbnails with faces and text tend to perform better. Ensure they accurately represent your video content.

2. Accurate Duration

Always use ISO 8601 format (PT1H30M15S for 1 hour, 30 minutes, 15 seconds). Inaccurate durations frustrate users and can hurt your credibility.

3. Video Accessibility

Ensure Google can access your video. Don't block video files with robots.txt. Use video sitemaps to help Google discover and index your video content.

4. One Video Per Page (Usually)

For best results, feature one primary video per page with schema. If you have multiple videos, consider whether each deserves its own page.

5. Keep Schema Updated

Update view counts periodically, remove expired videos, and refresh live streaming schema when broadcasts end.

Common Mistakes to Avoid

❌ Missing contentUrl or embedUrl

You must include at least one of these properties. Without them, Google can't verify your video exists and won't show rich results.

❌ Thumbnail Doesn't Match Video

Using misleading or unrelated thumbnails violates Google's guidelines and can result in your rich results being removed.

❌ Wrong Duration Format

Don't use "15:30" or "15 minutes". Use ISO 8601 format: PT15M30S. Invalid formats cause schema validation errors.

❌ Blocking Video from Googlebot

If your video file is blocked by robots.txt or requires authentication, Google can't verify it and won't show rich results.

❌ Stale Live Broadcast Markup

Leaving isLiveBroadcast: true after a stream has ended is misleading. Always update your schema when live events conclude.

Related Schema Guides

Frequently Asked Questions

Does YouTube automatically add video schema?

Yes, YouTube automatically generates VideoObject schema for videos hosted on their platform. However, if you embed YouTube videos on your own website, you should add your own video schema to help Google understand the video's context on your page and potentially show your page (not YouTube) in results.

Can I get video rich results for embedded videos?

Yes! You can add VideoObject schema for embedded videos from YouTube, Vimeo, or other platforms. Include the embedUrl property pointing to the embed URL. Google may show your page in video search results instead of or alongside the original platform.

What's the minimum video duration for schema?

There's no strict minimum, but Google recommends videos be at least 30 seconds for the best chance of appearing in video rich results. Very short videos (under 10 seconds) are unlikely to trigger rich results.

How do I add Key Moments to video schema?

Add the 'hasPart' property with an array of Clip objects, each containing name, startOffset, and url (with timestamp parameter). For YouTube videos, you can also use chapters in the video description, which YouTube automatically converts to Key Moments.

Does video schema help SEO rankings?

Video schema doesn't directly impact rankings, but it significantly improves visibility in search results. Pages with video rich results often see 30-50% higher click-through rates. Videos also appear in Google Video search, Image search, and Discover.

Validate Your Video Schema

Test your VideoObject markup to ensure Google can parse it correctly and display video rich results.