Blog
Video Schema Markup: How to Get Video Rich Results in Google

Key Takeaways
- Video schema markup uses the VideoObject type in JSON-LD to tell Google about your video content.
- Required properties include name, description, thumbnailUrl, uploadDate, and contentUrl or embedUrl.
- Google’s Rich Results Test is the fastest way to validate your markup before publishing.
- Common mistakes like missing thumbnailUrl or low-quality transcript data will disqualify your page from video rich results.
- Video sitemaps and schema markup serve different purposes — you should use both.
Get a FREE Audit
We'll perform a comprehensive SEO, AEO, GEO & CRO audit of your website — completely free — and show you exactly how to outrank your competitors.
Don't have a site yet? Get in touch →
What Is Video Schema Markup?
Video schema markup is structured data you add to a web page to describe an embedded or hosted video. It uses the Schema.org VideoObject vocabulary, and tells search engines the video’s title, description, duration, thumbnail, upload date, and more. When Google’s crawler finds valid VideoObject markup, it can generate video rich results — those enhanced search listings with a thumbnail image, duration badge, and sometimes the publish date right in the SERP. According to Google’s own documentation, pages with valid structured data are eligible for enhanced display in Search, which can significantly improve click-through rates. Studies consistently show that rich results earn higher CTRs than standard blue links. For video-specific results, the visual thumbnail alone can increase clicks by 30% or more compared to text-only listings.VideoObject Schema: Required vs. Recommended Properties
Not all VideoObject properties carry the same weight. Google divides them into required (must have to be eligible for rich results) and recommended (improve your chances and display quality).Required Properties
These are non-negotiable. Miss any of them, and Google will not consider your page for video rich results:| Property | What It Does | Example |
| name | The video title | “How to Audit Your Website Schema” |
| description | A text description of the video | “In this tutorial, we walk through…” |
| thumbnailUrl | URL to the video’s thumbnail image | “https://example.com/thumb.jpg” |
| uploadDate | The date the video was published (ISO 8601) | “2025-09-15T08:00:00Z” |
| contentUrl or embedUrl | Direct URL to the video file OR the embed player URL | At least one is required |
Recommended Properties
These are not strictly required, but including them gives Google more confidence in your content and unlocks richer display features:- duration — Video length in ISO 8601 format (e.g., PT5M30S for 5 minutes 30 seconds). Displays the duration badge in search results.
- interactionStatistic — View count data. Helps Google gauge video popularity.
- expires (if applicable) — When the video will no longer be available.
- hasPart (Clip markup) — Define key moments so Google can link to specific timestamps.
- transcript — A full text transcript of the video’s audio content.
- author — The creator of the video content.
- embedUrl — Even if you provide contentUrl, include embedUrl for the player.
How to Implement Video Schema Markup with JSON-LD
Google recommends JSON-LD as the preferred format for structured data. It is cleaner than Microdata, easier to maintain, and can be placed in the <head> or <body> of your HTML without touching your page template structure. Here is a complete, production-ready example: <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "VideoObject", "name": "How to Implement Video Schema Markup", "description": "Step-by-step tutorial on adding VideoObject structured data to your website for video rich results in Google.", "thumbnailUrl": "https://example.com/images/video-schema-thumb.jpg", "uploadDate": "2025-09-15T08:00:00-07:00", "duration": "PT8M42S", "contentUrl": "https://example.com/videos/video-schema-tutorial.mp4", "embedUrl": "https://www.youtube.com/embed/abc123", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": { "@type": "WatchAction" }, "userInteractionCount": 4250 }, "transcript": "Welcome to this tutorial on video schema markup. Today we will cover the required properties..." } </script>Implementation Steps
- Identify every page with embedded video. Audit your site to find all pages that include video content — product pages, blog posts, landing pages, and tutorials.
- Gather the required data. For each video, collect the title, description, thumbnail URL, upload date, and content or embed URL.
- Generate the JSON-LD. Use the template above, filling in your specific values. Make sure dates follow ISO 8601 format.
- Place the script in your page. Add the JSON-LD block to the page’s <head> section or just before the closing </body>
- Test before publishing. Use Google’s Rich Results Test (more on that below).
- Monitor in Search Console. After deployment, check the “Video” enhancement report for errors and valid pages.
Testing Your Video Schema Markup
Before you publish, validate your markup. Google provides two primary tools:Google’s Rich Results Test
The Rich Results Test is the fastest way to check whether your VideoObject markup qualifies for rich results. Paste a URL or code snippet, and it shows:- Whether your markup is valid
- Which rich result types are detected
- Any errors or warnings
Schema Markup Validator
The Schema Markup Validator checks your structured data against the full Schema.org specification. It catches issues the Rich Results Test might not flag, such as deprecated properties or incorrect data types.Google Search Console
After deployment, the Enhancements > Video report in Search Console tracks how Google processes your video markup over time. It surfaces errors, warnings, and the count of valid pages — making it your ongoing monitoring dashboard.Common Video Schema Markup Mistakes
We know these mistakes well because we have made them ourselves. When we ran a schema audit on our own eSEOspace site, our VideoObject markup had issues that were silently preventing rich results. Here are the most common problems we see — and the ones we fixed on our own site:1. Missing or Broken thumbnailUrl
This is the single most common disqualifier. Google requires a valid, crawlable thumbnail URL. If your thumbnailUrl points to a 404, is blocked by robots.txt, or is simply missing, your page will not earn video rich results — no matter how perfect everything else is. Fix: Use a direct URL to a high-quality image (minimum 160×90 pixels, recommended 1920×1080). Verify the URL loads in an incognito browser window.2. Garbage or Auto-Generated Transcripts
Including a transcript property is great for accessibility and SEO. But pasting in raw auto-generated captions full of errors, missing punctuation, and nonsensical phrases does more harm than good. Google can evaluate transcript quality, and a garbage transcript signals low-quality content. Fix: If you include a transcript, clean it up. Fix spelling errors, add punctuation, and make sure it reads like coherent text. If you cannot invest the time, it is better to omit the transcript property entirely than to include a poor one.3. Wrong Date Format for uploadDate
The uploadDate property must follow ISO 8601 format. Common mistakes include using MM/DD/YYYY, omitting the time component, or using a format your CMS generates that does not comply. Fix: Use the format YYYY-MM-DDTHH:MM:SS+00:00 or YYYY-MM-DD. Always double-check the output from your CMS or template system.4. Providing Neither contentUrl nor embedUrl
You need at least one of these. Some implementations skip both, which immediately invalidates the markup. If you host video on YouTube or Vimeo, use the embedUrl. If you self-host, provide the contentUrl pointing to the actual video file.5. Schema Markup Without an Actual Video on the Page
Google cross-references your structured data with the actual page content. If your VideoObject markup describes a video that is not visually present on the page — or the video is hidden behind a click, lazy-loaded incorrectly, or gated behind a login — Google may ignore the markup or flag it as misleading. Fix: The video described in your schema must be prominently visible on the page and playable without barriers.Video Sitemaps vs. Schema Markup: Do You Need Both?
This is a question we hear often, and the answer is yes — use both, because they serve different purposes.| Video Sitemap | Video Schema Markup | |
| Purpose | Helps Google discover and index video content | Helps Google display video rich results |
| Format | XML file submitted in Search Console | JSON-LD on individual pages |
| Scope | Site-wide video inventory | Per-page video details |
| Rich results | Does not directly trigger rich results | Directly enables rich results |
| Best for | Large sites with many videos | Every page with embedded video |
Step-by-Step: Adding Video Schema to an Existing Page
Already have video content on your site? Here is how to retrofit VideoObject markup:- Audit your current state. Run your page through the Rich Results Test to see if any video markup already exists.
- Screenshot the video details. Note the title, description, and exact embed or file URL from the page source.
- Find or create a thumbnail. If you are using YouTube embeds, the thumbnail URL follows the pattern https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg.
- Build the JSON-LD block. Use the template from the implementation section above.
- Add to the page. Place the JSON-LD in the <head> section via your CMS, theme editor, or tag manager.
- Run the Rich Results Test again to confirm the markup is valid and the VideoObject is detected.
- Request indexing. In Google Search Console, use the URL Inspection tool to request re-indexing of the updated page.
Frequently Asked Questions
How long does it take for video rich results to appear after adding schema markup?
Can I use video schema markup for YouTube embeds on my site?
What is the difference between contentUrl and embedUrl in VideoObject schema?
Do video rich results show up on mobile and desktop?
Put this into action with eSEOspace
We help businesses grow with website development that actually performs. Explore the services behind this guide:
Get a FREE GEO/AEO/SEO Audit
We'll analyze your site's SEO, GEO, AEO & CRO — completely free — and show you exactly how to get found across Google and AI answers.
Don't have a site yet? Get in touch →
Great — your audit is on the way!
We'll send your free SEO/GEO/AEO/CRO audit within the next few hours. Where should we send it?
You're all set! ✓
Your free audit is being prepared — check your inbox in the next few hours. Talk soon!
On this page
- Key Takeaways
- What Is Video Schema Markup?
- VideoObject Schema: Required vs. Recommended Properties
- How to Implement Video Schema Markup with JSON-LD
- Testing Your Video Schema Markup
- Common Video Schema Markup Mistakes
- Video Sitemaps vs. Schema Markup: Do You Need Both?
- Step-by-Step: Adding Video Schema to an Existing Page
- Frequently Asked Questions






