Generate valid VideoObject JSON-LD structured data for your videos. Fill in your details and copy the markup. Free, no sign-up required.
The title of the video. This is required for valid VideoObject markup.
A direct link to the raw video file. Google can use this to fetch and index your video.
The URL of the player that hosts the video, such as a YouTube embed URL.
The date the video was first published, in ISO format (YYYY-MM-DD).
Enter your video name above and your JSON-LD will build here automatically.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject"
}
</script><head> section of the page the video lives on.Structured data tells search engines what your video is. These free widgets make the page better for viewers.
Show off video stills and related visuals in a swipeable carousel so the page feels rich around your embedded video.
Compare before-and-after frames or highlight key moments in a clean slider that keeps viewers on the page longer.
Offer an audio version of your video content so people can listen when they cannot watch. More ways to consume, more reach.
Pull your latest videos into an auto-updating feed so every new upload shows up on the page without manual edits.
Other free tools to help you optimize and grow.
Generate Organization, WebSite, and LocalBusiness JSON-LD structured data for your whole site.
Use Tool →Generate Article, BlogPosting, and NewsArticle JSON-LD structured data for your posts.
Use Tool →Generate valid FAQ Page JSON-LD structured data to earn FAQ rich results.
Use Tool →Generate title, description, and social meta tags for any page in seconds.
Use Tool →Create Open Graph and Twitter Card tags so your links look great when shared.
Use Tool →How It Works
No account needed, no sign-up, completely free. Fill in your video details, and valid JSON-LD structured data builds live, ready to copy into your page.
Add the video name, description, and a high-resolution thumbnail. Point to the video file with a content URL, the player with an embed URL, or both.
Set the date the video was published and its running time in minutes and seconds. Add a publisher if you want. Everything you type builds the markup live, with no empty fields left in.
Copy the generated JSON-LD, paste it into the head of the page your video lives on, and confirm it with the Google Rich Results Test. No sign-up, completely free.
The Basics
Search engines cannot watch your video, but structured data tells them exactly what it is: the name, the thumbnail, when it was uploaded, and how long it runs.
The idea
Your video details → schema.org VideoObject → JSON-LD in your <head>
Result: search engines understand your video as data, not just a player
Video schema is structured data that describes a single video using the shared schema.org vocabulary, under the type VideoObject. Instead of hoping Google works out the title, thumbnail, and length from your page, you state them explicitly in a format built for machines to read.
The recommended format is JSON-LD: a small block of JSON placed in the head of the page. It lives separately from your visible content, so it is easy to add without touching your player or your design. The video itself still needs to be present and playable on the page you mark up.
Structured data does not guarantee rankings or rich results, but it makes your video unambiguous to search engines and to the AI assistants that increasingly summarize the web. Clear data means your work is easier to represent, and cite, correctly.
The Fields
The core VideoObject properties. Here is what each one does and when it matters.
| Field | What it does | When to use | Role |
|---|---|---|---|
| name | The title of the video. Required for valid VideoObject markup. | Every video you mark up. | Required |
| thumbnailUrl | One or more thumbnail image URLs that represent the video. | Strongly recommended for any video. | Key |
| uploadDate | The date the video was first published, in ISO format. | Strongly recommended for any video. | Key |
| duration | How long the video runs, in ISO 8601 duration format such as PT3M30S. | Recommended for richer results. | Recommended |
| contentUrl | A direct link to the raw video file so search engines can fetch it. | Provide this or an embed URL. | Recommended |
| embedUrl | The URL of the player that hosts the video, such as a YouTube embed URL. | Provide this or a content URL. | Recommended |
Based on the schema.org VideoObject properties supported by Google Search, 2026.
What It Can Unlock
Structured data makes your videos eligible for search features and helps machines understand your content. Eligibility is never guaranteed, but the groundwork matters.
Valid VideoObject markup makes your page eligible for the enhanced video listing in search, with a thumbnail, duration, and upload date on show.
A high-resolution thumbnail in your markup gives Google a clear image to show next to your result, which draws the eye and the click.
When you mark up timed segments, Google can show clickable key moments that jump viewers straight to the part of the video they want.
Clear video data helps your page qualify for the dedicated video tab in Google Search, a surface built entirely around video content.
The upload date tells search engines how current your video is, which matters for tutorials, news, and other time-sensitive topics.
Structured video data makes your content easier for AI answer engines to understand, attribute, and cite accurately.
Avoid These
Structured data helps only when it is accurate and valid. Steer clear of these common errors.
The thumbnailUrl must be a real frame or image that genuinely represents the video. A misleading thumbnail breaks Google guidelines and hurts trust.
Use a real, matching thumbnailDo not invent an uploadDate to look fresher. It must reflect when the video actually went live and match what is on the page.
Keep the upload date honestGoogle needs a way to access the video. Provide a contentUrl to the file, an embedUrl to the player, or both, so the video can be fetched.
Provide contentUrl or embedUrlOnly add VideoObject markup for a video that is actually present and playable on the page. Marking up a missing video violates the guidelines.
Mark up on-page video onlyAlways run your markup through the Rich Results Test and Schema.org Validator. A single syntax slip can invalidate the whole block.
Validate before you shipDuration uses ISO 8601, so three minutes thirty seconds is PT3M30S, not "3:30". This generator formats it for you from minutes and seconds.
Use the ISO 8601 formatGet More From It
Practical ways to make your schema work harder. All CommonNinja widgets mentioned are free to start.
VideoObject schema belongs in the head of the page where the video actually plays, not your homepage. Add it wherever the video is embedded.
VideoObject describes one video. Your Organization and WebSite schema describes the whole brand. Use both. Our free Website Schema Generator builds the site-wide part.
Try the Website Schema Generator →Google recommends a minimum of 60x30px, but larger is better. A crisp thumbnail is what viewers see in search, so make it count.
Schema describes your video; make the page around it just as useful. A carousel of stills or related visuals keeps viewers engaged after they watch.
Try the Image Carousel widget →When you can, give both the raw file URL and the player URL. It gives search engines the most flexibility to fetch and display your video.
Re-run the Rich Results Test whenever you edit your markup or move the video. It catches errors before Google does.
Glossary
A quick reference for the properties behind VideoObject markup.
| Field | Definition | Example | When It Matters |
|---|---|---|---|
| name | The title of the video. Required for VideoObject markup and best matched to the visible title on the page. | Your video title | Every video you mark up |
| thumbnailUrl | One or more image URLs that represent the video. Use the highest resolution you have, at least 60x30px. | cover.jpg | Video results and thumbnails |
| uploadDate | The date the video first went live, in ISO 8601 format. Helps search engines judge how current the video is. | 2026-07-15 | Time-sensitive video content |
| duration | The running time in ISO 8601 duration format. Three minutes thirty seconds becomes PT3M30S. | PT3M30S | Richer video results |
| contentUrl | A direct link to the raw video file, such as an .mp4, so search engines can fetch and index the video. | clip.mp4 | Self-hosted video files |
| embedUrl | The URL of the player that hosts the video, such as a YouTube or Vimeo embed URL. | /embed/abc123 | Embedded or third-party players |
From the Blog
Go deeper on video marketing and making your content easier for search engines to understand.
In this article, we are going to discuss SEO, explain why it’s important to the success of a website, and suggest ways t...
Read article →In this article, we will look at some important SEO factors to consider when building a website, for the purpose of incr...
Read article →In this article, we are going to explain how to use videos on your website to boost engagement....
Read article →In this article, we are going to discuss the top ten Video Gallery widgets for your website....
Read article →In this article, we discuss the importance of readability in SEO, highlighting its impact on search engine rankings, use...
Read article →In this article, we are going to discuss the top Video Carousel widgets for your website. We’ll present a list of widget...
Read article →