VideoObject schema
VideoObject is a Schema.org markup type for video content. It allows Google to understand video content and display it as rich results: carousels, previews, and enhanced snippets in search results.
VideoObject schema is a Schema.org markup type in JSON-LD format embedded on a page with video. It describes the video in a machine-readable way: name, description, thumbnail, duration, upload date.
What is VideoObject schema
VideoObject is a Schema.org markup type designed to describe video content on a page. It is embedded in HTML as JSON-LD and helps Google understand the video's content without having to play it.
Without VideoObject schema, Google can still discover and index videos, but with markup the chances of appearing in rich results (video carousels, enhanced snippets) are significantly higher.
Required VideoObject fields
- name
- The video title. Should match the heading visible on the page and in the video player.
- description
- Text description of the video content. Minimum 1 sentence; 2–5 is recommended.
- thumbnailUrl
- URL of the thumbnail image. Minimum 160×90 px. Must be accessible to Googlebot.
- uploadDate
- Publication date in ISO 8601 format (e.g., 2026-05-26T10:00:00+03:00).
Recommended VideoObject fields
- contentUrl
- Direct URL of the video file. Required for videos hosted on your server. For YouTube, use embedUrl.
- embedUrl
- URL of the embedded player (iframe src). For YouTube: https://www.youtube.com/embed/VIDEO_ID.
- duration
- Duration in ISO 8601 format: PT4M30S = 4 minutes 30 seconds. Displayed in the snippet.
- expires
- Date when the video content expires. After this date, Google will not show the video in rich results.
- hasPart
- Clips within the video with timestamps (Clip schema) — enables Key Moments in search results.
- interactionStatistic
- View count. Interaction type: UserInteraction: WatchAction.
VideoObject markup example
Rich results available with VideoObject
- Video carousel: a group of video results in the SERP for a topical query
- Enhanced snippet: thumbnail + duration in a standard result
- Key Moments: timestamps with navigation through video sections (requires Clip schema in hasPart)
- Live Badge: LIVE label for live streams (BroadcastEvent field)
Common questions
Discuss your project?
Share your goals and website context — I will suggest a practical next step.