Video schema example
Google requires name, thumbnailUrl and uploadDate for VideoObject, and recommends description, contentUrl or embedUrl, duration and expires. Clip or SeekToAction markup can add key moments. Google must be able to fetch the video file or the player for the page to be treated as a video page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Re-waxing a canvas pack in 6 minutes",
"description": "How to clean and re-wax a waxed-canvas backpack at home.",
"thumbnailUrl": [
"https://example.com/video/rewax-16x9.jpg"
],
"uploadDate": "2026-02-11T09:00:00+00:00",
"duration": "PT6M12S",
"contentUrl": "https://example.com/video/rewax.mp4",
"embedUrl": "https://example.com/embed/rewax",
"hasPart": [
{
"@type": "Clip",
"name": "Cleaning",
"startOffset": 20,
"endOffset": 95,
"url": "https://example.com/video/rewax?t=20"
},
{
"@type": "Clip",
"name": "Applying wax",
"startOffset": 95,
"endOffset": 280,
"url": "https://example.com/video/rewax?t=95"
}
]
}
</script>What Google checks
Video docs
Required: namethumbnailUrluploadDate
Recommended: descriptioncontentUrlembedUrldurationexpiresinteractionStatisticregionsAllowed
Taken from Google Search Central's documentation for this type. Meeting the requirements makes a page eligible; Google decides whether to show a rich result.
Mistakes the validator catches on VideoObject
- "duration": "6:12"
- ISO 8601 only: PT6M12S.
- uploadDate without a time zone
- Google recommends a full date-time with an offset.
- Thumbnail blocked by robots.txt
- Google must be able to crawl the thumbnail and the video or player URL.
Paste your own version into the schema markup validator or test a live URL.
Questions
What is required for VideoObject?
name, thumbnailUrl and uploadDate.
contentUrl or embedUrl?
Provide contentUrl (the media file) when you can; embedUrl (the player) is the alternative. Both is fine.
How do I get key moments?
Add Clip objects with start and end offsets, or a SeekToAction telling Google how your URLs encode timestamps.
Other examples
ArticleProductFAQPageRecipeEventLocalBusinessOrganizationBreadcrumbListJobPostingReview