TL;DR: VideoObject schema tells Google about videos on your page. Required for Video Rich Results. Includes name, description, thumbnail, upload date, duration, content URL.
Basic VideoObject
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"description": "Video description",
"thumbnailUrl": "https://example.com/thumb.jpg",
"uploadDate": "2026-04-25T12:00:00+00:00",
"duration": "PT5M30S",
"contentUrl": "https://example.com/video.mp4",
"embedUrl": "https://example.com/embed/video"
}Optional Properties
- publisher. who published.
- interactionStatistic. view count.
- hasPart (Clip schema). chapters.
- transcript.
YouTube Videos
If embedding YouTube, YouTube handles schema. Can add additional in your page for local context.
Self-Hosted Videos
Need full schema on your page. Include actual video URL.
Video Sitemap
Additional to schema. XML sitemap with video metadata:
<video:video>
<video:thumbnail_loc>...</video:thumbnail_loc>
<video:title>...</video:title>
<video:description>...</video:description>
</video:video>