Video Schema Generator
Video markup tells Google what a video on your page is: title, thumbnail, length, where the file or player lives, and which moments are worth jumping to. Fill in the form; the code updates as you type.
- Free, no sign-up
- Key moments (Clip)
- Live check
- Nothing leaves your browser
Video
A unique thumbnail for this video. Several sizes are fine.
Where the video is
Give the file URL if you host the video yourself; the player URL for YouTube, Vimeo or Wistia embeds.
Key moments (optional)
Segments Google can link to directly. Each needs a label, a start time in seconds and a URL that opens the video at that time.
Creator (optional)
* Required by Google for this rich result.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject"
}
</script>Live check against Google's rules
- Missing required property “name”.
- Missing required property “thumbnailUrl”.
- Missing required property “uploadDate”.
- Missing recommended property “description”.
- Add “contentUrl” (the video file) or at least “embedUrl” (the player) so Google can fetch the video.
- Missing recommended property “duration”.
How to use the video schema generator
- Enter the title, description and thumbnail. Use the thumbnail that belongs to this video, not a generic image.
- Set the upload date and the length. The generator turns hours, minutes and seconds into the ISO 8601 format Google reads.
- Add where the video lives: the file URL if you host it, or the player URL for a YouTube, Vimeo or Wistia embed.
- Mark key moments if the video has steps or chapters people would jump to.
- Copy the code to the page that shows the video, then check it in our schema markup validator.
What Google requires
| Property | Required | Notes |
|---|---|---|
name | Yes | The video's title, unique on your site |
thumbnailUrl | Yes | A thumbnail for this video; several sizes are fine |
uploadDate | Yes | First publication, ISO 8601 with time zone |
description | Recommended | Unique per video |
duration | Recommended | ISO 8601: PT8M42S |
contentUrl | Recommended | The video file itself; preferred when you have it |
embedUrl | Recommended | The player URL; use it when there is no file URL |
hasPart (Clip) | Optional | Key moments: label, start in seconds, URL at that time |
Embedded YouTube videos
On YouTube, YouTube handles the markup. When you embed the video on your own page, such as a service page with a how-to or a project walkthrough, add VideoObject markup to that page with the YouTube embed URL as embedUrl. It tells Google the page carries the video and what it covers.
For a service business, short videos of real jobs and how-tos are among the few things competitors can't copy. Put them on the page they relate to, not only on a video gallery page.
Key moments
Key moments let Google link straight to a part of the video. Each moment is a Clip with:
name: a short label, such as Shut off the gas;startOffset: seconds from the start;url: a link that opens the video at that point, on the same page, such as?t=35.
Mark the moments a viewer would actually look for, not every few seconds.
Common mistakes
- The same thumbnail on every video, often the channel logo.
- Duration written as
8:42. UsePT8M42S. contentUrlpointing to the page instead of the video file. For a page or player, useembedUrl.- Upload date without a time zone, read in Google's own zone.
- Markup for a video the page doesn't show or that loads only after a click on another page.
Video Schema FAQ
Three properties: name, thumbnailUrl and uploadDate. A description, the duration, and either contentUrl (the video file) or embedUrl (the player) are recommended.
On YouTube itself, no: YouTube handles it. On your own page that embeds the video, markup tells Google that this page carries the video and what it is about. Use the YouTube embed URL as embedUrl.
Segments of the video that Google can link to directly from search. Mark each as a Clip with a label, a start time in seconds and a URL that opens the video at that point, such as ?t=120.
In ISO 8601: PT8M42S is 8 minutes 42 seconds, PT1H5M is 1 hour 5 minutes. The generator converts hours, minutes and seconds for you.
Get a free technical SEO audit
Structured data is one line of the audit. We check crawling, indexing, Core Web Vitals and markup across the whole site and send a prioritized list of fixes.