const video = await generate(topic)const voice = await tts(script)await render({ scenes, voice })
All articles
🎥Marketing

Video Schema Markup for Google Rich Results

Google displays video content in rich results -- thumbnails, duration badges, carousels, and key moments -- but only when your pages include the right structured data. Video schema markup using the schema.org VideoObject type tells search engines exactly what your video contains, making it eligible for enhanced placement that standard pages never receive. This guide walks through the complete implementation: what VideoObject schema is and why it drives measurable traffic increases, how video rich results appear in Google Search, a step-by-step JSON-LD implementation with code examples, video sitemaps that ensure Google discovers every video on your site, real data on whether schema markup improves rankings, and the testing tools that validate your markup before and after deployment.

10 min readNovember 2, 2022

Video schema markup gets your videos into Google's rich results

JSON-LD implementation, video sitemaps, and the structured data that earns video thumbnails in search

What Is Video Schema Markup and Why It Matters

Video schema markup is structured data you add to your web pages that tells search engines exactly what your video content contains. It uses the schema.org VideoObject vocabulary to describe properties like the video title, description, thumbnail, duration, and upload date in a machine-readable format. Without this markup, Google and other search engines have to guess what your video is about by crawling the surrounding page content -- and they frequently guess wrong or miss the video entirely. Adding video structured data removes that guesswork and makes your videos eligible for rich results: enhanced search listings that display a video thumbnail, duration badge, and upload date directly in the search results page.

The visibility difference between a standard text result and a video rich result is dramatic. A plain blue link competes with nine other plain blue links on the page. A video rich result includes a large thumbnail image that breaks the visual monotony, a duration overlay that tells searchers exactly how long the video is, and metadata like the upload date that signals freshness. Eye-tracking studies consistently show that rich results capture significantly more visual attention than standard listings, and click-through rate data confirms the practical impact: pages with video rich results earn 30 to 50 percent more clicks than equivalent text-only listings for the same queries.

For businesses that produce video content -- product demos, tutorials, explainers, testimonials, webinars -- video schema markup is one of the highest-ROI technical SEO investments available. The markup itself takes minutes to implement per page, requires no changes to your actual content, and the potential upside is substantial. Your videos are already on your pages. Schema markup simply makes them visible to Google in a way that earns enhanced placement in search results. Without it, you are leaving organic traffic on the table every day your videos sit on pages that Google cannot fully understand.

ℹ️ The Rich Results Advantage

Pages with video schema markup are 2.7x more likely to appear in Google's video carousels. Video rich results show a thumbnail, duration, and upload date directly in search -- increasing click-through rate by 30-50% compared to standard text results

Implementing VideoObject Schema: Step by Step

The VideoObject schema type from schema.org is the structured data vocabulary Google uses to understand video content on your pages. Google strongly recommends implementing it in JSON-LD format -- a JavaScript notation embedded in a script tag in your page's head or body. JSON-LD is preferred over microdata and RDFa because it is decoupled from your HTML structure, making it easier to add, maintain, and debug without modifying your page templates. The JSON-LD block contains all the properties that describe your video, and Google reads it during crawling to determine whether your page qualifies for video rich results.

A complete VideoObject implementation starts with the required properties and adds recommended properties for maximum rich result eligibility. Here is a full JSON-LD example that covers both required and recommended fields: ```json <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "VideoObject", "name": "How to Create Marketing Videos with AI", "description": "Step-by-step tutorial showing how to use AI Video Genie to create professional marketing videos in minutes without filming equipment or editing skills.", "thumbnailUrl": "https://aividgenie.com/thumbnails/ai-marketing-video-tutorial.jpg", "uploadDate": "2024-03-15T08:00:00Z", "duration": "PT8M32S", "contentUrl": "https://aividgenie.com/videos/ai-marketing-video-tutorial.mp4", "embedUrl": "https://aividgenie.com/embed/ai-marketing-video-tutorial", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WatchAction", "userInteractionCount": 14500 }, "expires": "2099-12-31T23:59:59Z" } </script> ``` The name property is your video title as it should appear in search results. The description should be a concise summary of the video content -- Google may display this in the rich result snippet. The thumbnailUrl must point to an actual, crawlable image file that accurately represents the video content. The uploadDate uses ISO 8601 format and tells Google when the video was first published.

The contentUrl and embedUrl properties serve different purposes and you need at least one of them. The contentUrl points directly to the video file (an MP4 or other video format URL), while the embedUrl points to a player page where the video can be embedded. If your video is self-hosted, provide the contentUrl. If it is hosted on a platform like YouTube or Vimeo and embedded on your page via an iframe, provide the embedUrl. Including both gives Google the most flexibility in how it indexes and displays your video. The duration property uses ISO 8601 duration format (PT8M32S means 8 minutes and 32 seconds) and is recommended because Google uses it for the duration badge in rich results.

💡 Required vs Recommended Properties

The minimum required VideoObject properties: name, description, thumbnailUrl, uploadDate, and either contentUrl or embedUrl. Add duration and interactionStatistic for bonus rich result eligibility. Use JSON-LD format -- Google strongly prefers it over microdata

Video Sitemaps: The Other Half of Video SEO

Video schema markup on your pages tells Google about individual videos when it crawls those pages. A video sitemap does something complementary: it proactively tells Google where all your video content lives across your entire site, ensuring that no video pages are missed during crawling. Think of schema markup as the detailed product label and the video sitemap as the store directory. Both serve Google, but they work at different levels. A video sitemap is especially important for large sites with hundreds or thousands of video pages, sites where videos are loaded dynamically via JavaScript (which Google may not always execute during crawling), and new sites where Google has not yet discovered all pages.

A video sitemap is an XML file that extends the standard sitemap protocol with video-specific tags. You can either create a dedicated video sitemap file or add video entries to your existing sitemap.xml. Here is the structure of a video sitemap entry: ```xml <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"> <url> <loc>https://aividgenie.com/tutorials/ai-marketing-videos</loc> <video:video> <video:thumbnail_loc>https://aividgenie.com/thumbnails/ai-marketing-video.jpg</video:thumbnail_loc> <video:title>How to Create Marketing Videos with AI</video:title> <video:description>Step-by-step tutorial for creating professional marketing videos using AI Video Genie.</video:description> <video:content_loc>https://aividgenie.com/videos/ai-marketing-video.mp4</video:content_loc> <video:duration>512</video:duration> <video:publication_date>2024-03-15T08:00:00Z</video:publication_date> </video:video> </url> </urlset> ``` Note that the video sitemap duration is in seconds (512 seconds = 8 minutes 32 seconds), unlike the ISO 8601 format used in JSON-LD schema markup. The thumbnail_loc, title, and description are required fields. The content_loc points to the actual video file URL and is strongly recommended.

Once you have created your video sitemap, submit it through Google Search Console. Navigate to Sitemaps in the left sidebar, enter the URL of your video sitemap (for example, https://yourdomain.com/video-sitemap.xml), and click Submit. Google will begin processing the sitemap and report any errors. You should also reference the video sitemap in your robots.txt file with a Sitemap directive. After submission, monitor the coverage report in Search Console to confirm that Google is discovering and indexing your video pages. If you see "Video page with no video" errors, it usually means the video file at your contentUrl or content_loc is not accessible to Googlebot, or your thumbnail URL returns a 404.

  1. Create a video sitemap XML file (video-sitemap.xml) using the Google video sitemap schema with the namespace xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
  2. Add a <url> entry for each page that contains a video, including the page URL in <loc> and video details inside <video:video> tags
  3. Include required fields for each video: thumbnail_loc, title, and description -- add content_loc pointing to the video file URL for best results
  4. Add optional but recommended fields: duration (in seconds), publication_date (ISO 8601), and family_friendly (yes/no)
  5. Reference your video sitemap in robots.txt by adding a line: Sitemap: https://yourdomain.com/video-sitemap.xml
  6. Submit the video sitemap URL in Google Search Console under Sitemaps and monitor the coverage report for errors
  7. Update your video sitemap whenever you add new video pages or change existing video URLs -- keep it current to maintain indexing accuracy

Does Video Schema Actually Improve Your Rankings?

Google has stated repeatedly that structured data is not a direct ranking factor. Adding VideoObject schema to your page will not move it from position ten to position one in the organic results. But this narrow framing misses the larger picture. Video schema markup improves your effective ranking by changing how your result appears and how users interact with it. A page at position five with a video rich result -- featuring a thumbnail, duration badge, and upload date -- can earn more clicks than a plain text result at position two. The practical impact on traffic is what matters, and video schema consistently delivers measurable traffic increases even when raw position does not change.

The indirect ranking benefits are also significant. When your video rich result earns a higher click-through rate, Google receives a signal that users find your result relevant and engaging for that query. While Google has been careful not to confirm click-through rate as a direct ranking signal, the correlation between high CTR and improved rankings is well-documented across large-scale SEO studies. Additionally, video schema markup enables your content to appear in video carousels and the Videos tab -- entirely separate ranking surfaces that you cannot access without structured data. Appearing in these surfaces drives incremental traffic that pure organic ranking improvements cannot replicate.

Case study data supports the practical impact. An e-commerce brand that added VideoObject schema to 200 product pages with embedded demo videos saw a 34 percent increase in organic clicks to those pages within 45 days, with no other SEO changes during that period. A SaaS company that implemented video schema across its tutorial library reported a 41 percent increase in search impressions for video-related queries and a 28 percent increase in clicks. These results are consistent with Google's own documentation, which states that properly implemented structured data makes your pages eligible for enhanced presentation in search results and can improve the way your page appears in SERPs.

Testing and Validating Your Video Schema

Google provides two primary tools for testing structured data, and you should use both. The Rich Results Test (search.google.com/test/rich-results) checks whether your page is eligible for rich results based on its structured data. Enter your page URL or paste your HTML code directly, and the tool will parse your VideoObject markup, highlight any errors or warnings, and show a preview of how your rich result might appear in search. This is the single most important validation step because it tests not just whether your JSON-LD syntax is valid, but whether Google can actually generate a rich result from it. A page can have syntactically correct schema markup that still fails the Rich Results Test because of missing required properties or inaccessible thumbnail URLs.

The Schema Markup Validator (validator.schema.org) is the second tool you should use. It validates your structured data against the full schema.org specification, catching issues that the Rich Results Test might not flag -- like deprecated properties, incorrect data types, or nested objects with missing required fields. Use the Rich Results Test first to confirm Google eligibility, then use the Schema Markup Validator for a deeper technical audit. Together, these two tools catch virtually all implementation errors before they affect your search presence.

Google Search Console provides ongoing monitoring after your schema markup is live. Navigate to Enhancements in the left sidebar and look for the Video section, which shows how many pages Google has detected with video structured data, how many are valid, and how many have errors or warnings. Common errors include "Missing field thumbnailUrl" (you forgot the thumbnail or the URL returns a 404), "Missing field name" (your JSON-LD is missing the video title), and "Invalid URL in field contentUrl" (the video file URL is not accessible to Googlebot). Search Console also shows which specific pages have issues, making it straightforward to diagnose and fix problems at scale.

  • Rich Results Test (search.google.com/test/rich-results): validates your page against Google's requirements for video rich results -- the definitive test for eligibility
  • Schema Markup Validator (validator.schema.org): validates structured data against the full schema.org specification for deeper technical accuracy
  • Google Search Console Enhancements > Video: ongoing monitoring showing valid pages, errors, and warnings across your entire site
  • Common error -- "Missing field thumbnailUrl": your thumbnail URL is missing, returns a 404, or is blocked by robots.txt
  • Common error -- "Invalid URL in field contentUrl": the video file URL is not accessible to Googlebot -- verify it is publicly crawlable
  • Common error -- "Missing field name or description": your JSON-LD is missing required properties that Google needs to generate the rich result
  • Test before deploying: always run the Rich Results Test on staging or with the code snippet before pushing schema markup changes to production

The Markup ROI

Sites that add video schema to their existing video pages typically see a 25-40% increase in organic video traffic within 60 days. The markup doesn't change your content -- it just tells Google what's already there, making it eligible for rich results it was previously invisible to

Video Schema Markup for Google Rich Results