VideoObject Schema

No Comments
Videoobject schema

Element Code: RI-014

TL;DR: VideoObject schema is the structured data block that tells Google what a video on your page actually is: its title, thumbnail, duration, upload date, and where the file lives. Without it, your videos rarely qualify for video rich results, and Google is left guessing at metadata it will happily get wrong.
Check type
Rich results / schema
Affects
Video rich results, video indexing
Difficulty
Low to medium
Detection
Rich Results Test, Screaming Frog, GSC
Format
JSON-LD preferred

What VideoObject schema actually does

When Googlebot hits a page with an embedded video, it sees a player iframe or a video tag and not much else. It has to work out the title, the thumbnail, how long the video runs, and whether the video is the point of the page or just a garnish. VideoObject schema removes the guesswork. It is a schema.org type, usually delivered as a JSON-LD block in the head or body, that hands Google that metadata directly.

I treat it as non-negotiable on any page where video carries real weight: product demos, tutorials, webinars, video-first blog posts. Google states in its video structured data documentation that VideoObject markup makes videos eligible for the video badge in mobile results, key moments, and inclusion in dedicated video surfaces like the Videos tab. No markup means Google may still index the video, but you are betting on its extraction instead of stating the facts yourself.

Why this matters for rankings and visibility

Three concrete reasons, in the order I care about them.

1. Eligibility for video results. Video thumbnails and video-tab visibility drive clicks that plain blue links do not. Since a 2023 change Google documented, video thumbnails in main search results only show when the video is the primary content of the page, which makes accurate markup on your genuinely video-led pages even more valuable: those are now the only pages that get the treatment.

2. Cleaner video indexing. Search Console has a dedicated video indexing report. Pages that embed video without machine-readable metadata are where I most often see "Google could not determine the prominent video" style problems. Markup with a proper contentUrl or embedUrl gives Google a direct line to the file.

3. Key moments. With Clip markup or SeekToAction inside your VideoObject, Google can deep-link into timestamps. For long tutorials this is a genuine CTR lever, and almost nobody in mid-sized niches bothers, which is exactly why you should.

Required and recommended properties

Google splits properties into required and recommended. Miss a required one and the whole block is ineligible.

PropertyStatusNotes from the field
nameRequiredThe video title. Do not just copy the page title if the video covers a subset of it.
thumbnailUrlRequiredMust be crawlable and indexable. A blocked thumbnail is the single most common silent failure I find.
uploadDateRequiredISO 8601 date, ideally with timezone. Do not fake freshness by bumping it.
descriptionRecommendedWrite it like a meta description for the video itself.
durationRecommendedISO 8601 format, e.g. PT7M32S. Wrong format here fails validation constantly.
contentUrl / embedUrlRecommendedGive at least one. contentUrl points to the actual file, embedUrl to the player. For YouTube embeds, use the embed URL.
hasPart (Clip)OptionalManual key moments with start offsets and labels. Worth it on anything over five minutes.

How the pieces fit together

Page with embedded video player iframe or video tag VideoObject JSON-LD name, thumbnail, date, URLs Googlebot merges page + markup With valid markup video results, key moments, clean video indexing Without markup guessed metadata, missed rich results, indexing errors

How to implement it

Use JSON-LD. Google accepts microdata, but JSON-LD stays out of your template markup and survives redesigns. A minimal working block looks like this:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Fix Redirect Chains in 15 Minutes",
  "description": "A walkthrough of finding and flattening redirect chains.",
  "thumbnailUrl": "https://example.com/thumbs/redirect-chains.jpg",
  "uploadDate": "2026-05-14T08:00:00+00:00",
  "duration": "PT7M32S",
  "embedUrl": "https://www.youtube.com/embed/VIDEO_ID"
}

Placement rules that save you pain: one VideoObject per video, on the page where the video actually appears, and the marked-up video must be visible to users on that page. Marking up a video that is not on the page violates Google's structured data guidelines and can earn a manual action for spammy structured markup. If you run WordPress, most SEO plugins (Yoast Video, Rank Math) generate this for recognized embeds, but verify their output instead of trusting it. I have seen plugins emit uploadDate as the post date years after the video went live.

How to detect missing or broken VideoObject markup

  1. Rich Results Test on your key video pages. It flags missing required properties and warns on recommended ones.
  2. Screaming Frog with structured data extraction enabled (Config, Spider, Extraction, tick JSON-LD plus Schema.org validation). Crawl the site, filter the Structured Data tab for pages containing video embeds but no VideoObject. A custom search for "youtube.com/embed" cross-referenced against the schema report finds the gap pages fast.
  3. Search Console: the Video indexing report shows which video pages Google found and where it failed, and the Videos enhancement report lists invalid VideoObject items with the exact property errors.
  4. Schema Markup Validator at validator.schema.org for pure syntax checking when Google's tool is being flaky.

DO vs DON'T

DO

  • Mark up every page where video is the main or a major content element
  • Serve a crawlable, high-resolution thumbnailUrl
  • Use ISO 8601 for uploadDate and duration
  • Add Clip markup for key moments on long videos
  • Re-validate after theme or plugin updates
DON'T

  • Mark up videos that are not visible on the page
  • Bump uploadDate to fake freshness
  • Block your thumbnail or video files in robots.txt
  • Stack duplicate VideoObject blocks from plugin plus theme plus manual code
  • Expect rich results as a guarantee; markup grants eligibility, not entitlement

FAQ

Do I need VideoObject schema for YouTube embeds?
Yes, if you want YOUR page to be the one earning video treatment. YouTube marks up its own watch pages, not your embed. Add VideoObject with the embedUrl pointing at the YouTube embed URL so Google associates the video with your page.
The markup validates but I get no video rich result. Why?
Valid markup only makes you eligible. Since Google's 2023 policy change, thumbnails in main results are reserved for pages where the video is the primary content. If your video sits below 2,000 words of text, Google will usually treat the page as an article, not a video page.
Should uploadDate change when I update the video?
Only if you actually replaced the video file with a new version. For a re-edit published at a new URL, use the new date. For the same file, leave it alone; inconsistent dates across your markup and sitemap erode trust in all your metadata.
Is a video sitemap still worth it if I have VideoObject markup?
On large sites, yes. Markup describes videos on pages Google already crawls; the sitemap actively surfaces video URLs and metadata at scale. They complement each other, and Google supports both. Small sites can usually skip the sitemap.
Can VideoObject markup hurt me?
Only when it lies. Marking up nonexistent or hidden videos, or wildly wrong durations, falls under spammy structured markup and can draw a manual action. Honest markup with a missing recommended field just gets a warning, which is harmless.
Want your whole schema stack audited, not just video?

I check VideoObject alongside every other structured data type, indexing signal, and rendering quirk in a full technical review.

Get the Advanced SEO Audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog