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

PropertyRequired?Notes
name✅ RequiredTitle of the video
description✅ RequiredDescription of the video content
thumbnailUrl✅ RequiredURL of thumbnail image (must be crawlable)
uploadDate✅ RequiredISO 8601 date when video was published
duration⭐ RecommendedISO 8601 duration, e.g. PT7M30S (7 min 30 sec)
contentUrl⭐ RecommendedDirect URL to video file (enables video indexing)
embedUrl⭐ RecommendedEmbed URL (YouTube embed URL works here)
expiresOptionalWhen the video expires/goes offline
interactionStatisticOptionalView 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 seconds
PT2M2 minutes
PT7M30S7 minutes 30 seconds
PT1H1 hour
PT1H15M1 hour 15 minutes
PT2H30M45S2 hours 30 minutes 45 seconds

5. 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 →