DEV Community

nicolay Armando
nicolay Armando

Posted on

VideoObject Schema in 10 Minutes (Copy-Paste Included)

video production
You've embedded a video on your website. It plays correctly, looks good on mobile, and explains exactly what visitors need to know.

But can search engines understand what that video contains?

That's where VideoObject schema comes in.

VideoObject is a structured data type from Schema.org that helps search engines understand information about a video, including its title, description, thumbnail, upload date, and content location.

In this tutorial, we'll add VideoObject structured data to a webpage using JSON-LD, explain what each property does, and show you how to validate the implementation.

No complicated setup. Just practical code you can adapt to your own website.

What Is VideoObject Schema?

VideoObject is a Schema.org type used to describe video content in a machine-readable format.

Instead of relying entirely on the surrounding page text to understand a video, search engines can use structured data to identify important details about it.

Common properties include:

  • name: The video's title.
  • description: A summary of the video.
  • thumbnailUrl: The URL of a representative thumbnail image.
  • uploadDate: When the video was first published.
  • duration: How long the video runs.
  • contentUrl: A direct URL to the video file.
  • embedUrl: A URL for the video player.

Adding this markup doesn't guarantee rich search results or higher rankings. It provides clearer information about your content and may help eligible videos qualify for enhanced search appearances.

Step 1: Choose the Right Video Information

Before writing the schema, collect the details you want to describe.

For this example, imagine we're publishing a tutorial called "How to Prepare a Video for the Web."

We'll use placeholder URLs so you can replace them with your actual information.

Property Example
Video title How to Prepare a Video for the Web
Description A practical guide to preparing video content for online publishing.
Thumbnail https://example.com/images/video-thumbnail.jpg
Upload date 2026-10-10
Duration PT2M30S

The duration uses ISO 8601 notation. PT2M30S means two minutes and thirty seconds.

Important: Use real, publicly accessible URLs and accurate metadata on your own website. Don't publish example values unchanged.

Step 2: Copy and Adapt This JSON-LD

JSON-LD is generally the most convenient format for implementing structured data because it can be added to a page without mixing the markup into the visible HTML content.

Here's a basic VideoObject example:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Prepare a Video for the Web",
  "description": "A practical guide to preparing video content for online publishing.",
  "thumbnailUrl": [
    "https://example.com/images/video-thumbnail.jpg"
  ],
  "uploadDate": "2026-10-10",
  "duration": "PT2M30S",
  "contentUrl": "https://example.com/videos/video-guide.mp4"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Place this script in the HTML of the page containing the video. The <head> is a common location, although JSON-LD can also appear in the <body>.

Replace the example title, description, thumbnail, date, duration, and video URL with the actual details of your video.

The contentUrl should point to the actual video file, not merely to the webpage where the video appears.

If your video is embedded from another platform and you don't control its file URL, you can use embedUrl where appropriate instead.

Step 3: Understand the Properties

Let's look at the fields that matter most.

@context

"@context": "https://schema.org"
Enter fullscreen mode Exit fullscreen mode

This tells parsers which vocabulary defines the properties in your markup.

@type

"@type": "VideoObject"
Enter fullscreen mode Exit fullscreen mode

This identifies the entity you're describing as a video.

name

"name": "How to Prepare a Video for the Web"
Enter fullscreen mode Exit fullscreen mode

Use the actual title of the video. Ideally, it should match the title visible to visitors.

description

"description": "A practical guide to preparing video content for online publishing."
Enter fullscreen mode Exit fullscreen mode

Write a concise, accurate description. Avoid keyword stuffing or claims that the video doesn't support.

thumbnailUrl

"thumbnailUrl": [
  "https://example.com/images/video-thumbnail.jpg"
]
Enter fullscreen mode Exit fullscreen mode

Provide a crawlable thumbnail URL that represents the video.

The image should be accessible to search engines and should not be blocked by access restrictions.

uploadDate

"uploadDate": "2026-10-10"
Enter fullscreen mode Exit fullscreen mode

Use the original publication date, including a time zone when supplying a timestamp. Don't change the date simply to make an older video appear new.

duration

"duration": "PT2M30S"
Enter fullscreen mode Exit fullscreen mode

This is optional in the basic example, but useful when you know the video's actual runtime.

contentUrl and embedUrl

These properties serve different purposes.

contentUrl identifies the actual video media file.

embedUrl identifies a player URL through which the video can be embedded.

Use whichever property accurately describes your implementation. Don't invent a media URL or use the webpage URL as if it were the video file.

Step 4: Add the Markup to a Real Page

Suppose you publish a video explaining a product, demonstrating a service, or walking viewers through a process.

Your page might contain:

  • A visible heading
  • A short introduction
  • An embedded video player
  • A transcript
  • Supporting information

The structured data should describe the video that's actually available on that page.

For example, if you're publishing professional production work, the video page could describe the featured film while the surrounding page explains its purpose and context. You can explore examples of how video projects are presented in Title Productions' work portfolio.

The important principle is consistency: your schema, visible page content, thumbnail, and video should all refer to the same item.

Don't add VideoObject markup to an unrelated page simply because it contains a link to a video elsewhere.

Step 5: Validate Before Publishing

Valid JSON isn't automatically valid structured data, and valid structured data doesn't automatically qualify for a Google rich result.

Use these tools before considering the implementation complete.

1. Schema.org Validator

Check whether the markup uses recognised Schema.org types and properties.

2. Google Rich Results Test

Check whether Google recognises the page's markup for supported rich-result features and identify relevant errors.

3. Google Search Console

After publishing, monitor your site's indexing and any relevant video indexing reports available in Search Console.

Each tool answers a different question. Passing one test doesn't guarantee that the page will be indexed or displayed with enhanced search features.

Common Mistakes to Avoid

1. Using a thumbnail that cannot be crawled

If search engines cannot access the thumbnail, they may not be able to use it as intended.

Check the image URL, permissions, and any relevant robots restrictions.

2. Marking up a video that isn't available on the page

Your structured data should accurately represent the page's content. Don't describe a video that visitors cannot find or access.

3. Using inaccurate metadata

A misleading title, incorrect publication date, or invented duration can undermine the usefulness of your markup.

Keep the information accurate and consistent.

4. Expecting schema to guarantee rankings

Structured data helps search engines interpret information. It is not a shortcut to the top of search results.

Video visibility also depends on factors such as crawlability, indexing, page quality, video accessibility, and the search engine's eligibility requirements.

5. Forgetting the user experience

Schema doesn't replace a useful webpage.

Make sure the video loads properly, has a meaningful title, works on relevant devices, and provides captions or a transcript when appropriate.

If you're building a broader publishing workflow, these details should be part of the content process rather than last-minute SEO fixes. For more practical perspectives on professional video and content production, see Title Productions' Insights.

Quick Copy-and-Paste Checklist

Before publishing, confirm that:

  • [ ] The page contains the video being described.
  • [ ] The title matches the actual video.
  • [ ] The description accurately summarises the content.
  • [ ] The thumbnail URL is correct and crawlable.
  • [ ] The upload date is accurate.
  • [ ] The duration matches the video's actual runtime, if supplied.
  • [ ] Any contentUrl points to the video file.
  • [ ] Any embedUrl points to the appropriate player.
  • [ ] The JSON-LD parses correctly.
  • [ ] The markup has been validated.
  • [ ] The page is accessible to search engines.

Final Thoughts

VideoObject schema is a small implementation that can make your video content easier for machines to interpret.

The process is straightforward:

  1. Identify the video.
  2. Collect accurate metadata.
  3. Add JSON-LD.
  4. Validate the implementation.
  5. Monitor the page after publishing.

Start with one video page, test it carefully, and then apply the same process to other relevant pages.

One final reminder: structured data describes the content you actually publish. It works best when the video, webpage, thumbnail, and metadata all tell the same story.

Have you implemented VideoObject schema on a production website? Share what worked, what failed, or any validation issues you encountered in the comments.

Top comments (0)