Skip to content

Video Schema Generator

Create VideoObject JSON-LD structured data for video rich results

Getting Your Videos into Google Rich Results

Video content drives massive engagement, but without structured data, Google cannot fully understand your video's metadata. Our video schema generator creates valid VideoObject JSON-LD markup that enables rich results with thumbnails, duration badges, and upload dates directly in Google Search, the Video tab, and Google Discover.

Why Video Schema Matters for SEO

Pages with video structured data can appear in Google's video carousel, receive enhanced thumbnails in standard results, and gain visibility in the dedicated Video tab. This translates to higher click-through rates — search results with video thumbnails stand out visually and signal rich multimedia content. Without VideoObject markup, Google relies solely on automated video detection, which may miss key details.

Thumbnail and Duration Best Practices

The thumbnail is the most visually impactful element of a video rich result. Use high-quality images at least 120×120 pixels (Google recommends 1280×720). The duration badge appears as an overlay on the thumbnail, so include accurate duration in ISO 8601 format. Misleading durations or low-quality thumbnails can result in Google ignoring your video markup.

Content URL vs Embed URL

Google needs to verify your video exists and is accessible. The contentUrl should point to the actual video file (MP4, WebM) if you self-host. The embedUrl should point to an embeddable player URL — for YouTube videos, use the embed format. Including at least one allows Google to index and display your video schema markup as a rich result.

Interaction Statistics and Freshness

Adding interactionStatistic with the view count signals video popularity to search engines and users. The uploadDate establishes content freshness, and expires helps Google know when a video is no longer relevant. Keeping these values accurate and updated ensures your video JSON-LD continues to qualify for rich results over time.

Placing Video Schema on Your Page

Add the generated JSON-LD script tag in the head or body of the page that contains the video. The video must be visible and playable on the page — Google may demote or ignore video markup if the video is behind a paywall, requires login, or is not the primary content of the page. Test your markup with Google's Rich Results Test after implementation.

$ faq

What is VideoObject schema markup?
VideoObject schema markup is structured data that describes a video on your page. It includes the video name, description, thumbnail, duration, upload date, and content URL. Google uses this data to display video rich results with thumbnails, duration badges, and key moments directly in search results and the Video tab.
What fields are required for video rich results?
Google requires name, description, thumbnailUrl, and uploadDate for video rich results. The contentUrl or embedUrl is strongly recommended so Google can verify the video exists. Adding duration in ISO 8601 format enables the duration badge on thumbnails in search results.
How should I format video duration?
Video duration uses ISO 8601 format. For example, PT1H30M means 1 hour 30 minutes, PT5M20S means 5 minutes 20 seconds, and PT45S means 45 seconds. Our generator converts hours, minutes, and seconds into the correct ISO 8601 duration string automatically.
What is the difference between contentUrl and embedUrl?
contentUrl points to the actual video file (like an .mp4 URL), while embedUrl points to an embeddable player page (like a YouTube embed URL). You should include at least one. If you host the video yourself, use contentUrl. If using YouTube or Vimeo, the embed URL is typically more appropriate.
Can video schema help with YouTube SEO?
Video schema on your website helps Google associate embedded YouTube videos with your page content and display video rich results for your site. It does not directly affect YouTube search rankings, which depend on YouTube-specific signals like watch time, engagement, and metadata within YouTube itself.
Does video schema support live streams?
Yes. You can set the publication property to BroadcastEvent with isLiveBroadcast set to true, and provide startDate and endDate. Google can then display a live badge on video rich results during the broadcast. After the stream ends, the schema serves as a standard video record.