You recorded a product demo, edited it, uploaded it to YouTube, and embedded it on your product page. The YouTube version gets views from YouTube's recommendation engine. The version on your site gets nothing from Google. No video carousel placement. No video rich result. No thumbnail in the SERPs. The page ranks for its text content (if it ranks at all), and the video might as well not exist as far as search is concerned.
The gap is VideoObject schema markup. Google cannot reliably detect that a page contains a video just from the <iframe> embed. Even when it does detect the video, it doesn't know the title, description, duration, upload date, or thumbnail URL unless you provide that information in structured data. Without it, your video page is ineligible for the video carousel, video rich results, and Google Video search.
What VideoObject schema actually does
VideoObject is a Schema.org type that describes a video resource. At minimum, Google requires four properties to consider a video for rich results: name, description, thumbnailUrl, and uploadDate. Additionally, either contentUrl (direct URL to the video file) or embedUrl (URL of the embeddable player) must be present.
Optional but high-value properties include duration (ISO 8601 format, e.g., "PT5M30S" for 5 minutes 30 seconds), interactionStatistic (view count), expires (if the video has a limited availability window), and hasPart (for marking key moments/chapters within the video).
The key moments markup (hasPart with Clip items) is particularly valuable. When present, Google can show timestamped links in the video rich result that take users directly to specific sections. This is the same feature YouTube surfaces natively through chapters, but for videos hosted on your own domain, you need to provide the data through schema markup.
A complete VideoObject block also tells Google whether a transcript is available. The transcript property (or linking to a separate page containing the transcript via associatedArticle) lets Google index the spoken content of your video, which means your video page can rank for queries that match the dialogue, not just the title and description.
The transcript gap
Most video pages on the web have no crawlable transcript. The video plays in an iframe, the words exist only as audio, and Google can't hear audio. YouTube auto-generates transcripts, but that transcript lives on YouTube's domain, not yours. It helps YouTube rank for the content. It does nothing for your site.
Adding a transcript to your page has three benefits. First, Google can index the full text content of the video, dramatically expanding the query space the page can rank for. Second, the transcript provides an accessible alternative for deaf and hard-of-hearing users (WCAG 1.2.1, Level A). Third, the transcript gives visitors who prefer reading over watching a way to consume the content, which increases time on page and reduces bounce rate for the subset of users who won't click play.
The transcript doesn't need to be a word-for-word closed-caption file. A lightly edited version that reads well as text is fine. Some publishers structure it as an article that stands on its own, with the video as supplementary. This approach maximizes both search visibility and user experience.
What the Video Schema Audit checks
The Video Schema + Transcript Audit scans your page for video embeds and validates three things.
First, it checks whether VideoObject JSON-LD markup exists and whether all required properties are present. Missing thumbnailUrl is the most common gap: publishers fill in name and description but forget the thumbnail, which makes the rich result ineligible.
Second, it validates the format of each property. Duration must be ISO 8601 ("PT5M30S", not "5:30"). Upload date must be ISO 8601 date format. Thumbnail URL must be a valid, reachable image URL (not a relative path that resolves to a 404). These formatting errors are invisible in testing but cause Google to silently ignore the markup.
Third, it checks for a crawlable transcript. If the page has no <transcript> element, no text block associated with the video, and the schema lacks a transcript property, the audit flags it. A video page without a transcript is leaving search visibility on the table.
The audit generates a complete JSON-LD block you can paste into your page's <head>, pre-filled with the video's detected metadata and placeholder values for anything it couldn't extract automatically.
How to add VideoObject schema
For a YouTube embed on your product page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Product Demo: Widget Pro Setup",
"description": "Step-by-step setup of Widget Pro in under 5 minutes.",
"thumbnailUrl": "https://example.com/images/widget-pro-thumb.jpg",
"uploadDate": "2026-03-15",
"duration": "PT4M45S",
"embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "https://schema.org/WatchAction",
"userInteractionCount": 10423
}
}
</script>
For self-hosted videos, replace embedUrl with contentUrl pointing to the actual video file. If your video has chapters, add a hasPart array with Clip items, each specifying name, startOffset, and endOffset in seconds.
If you're building a content-driven site, The $97 Launch covers structured data patterns for common page types, so schema markup is part of the build process rather than an afterthought.
Fact-check notes and sources
- Google VideoObject documentation: Google Search Central, Video structured data. Required properties: name, description, thumbnailUrl, uploadDate, plus contentUrl or embedUrl.
- Key Moments (Clip) markup: Google Search Central, Clip structured data.
- WCAG 1.2.1 Audio-only and Video-only (Prerecorded): W3C WCAG 2.1, Level A.
- ISO 8601 duration format: "PT#H#M#S" per ISO 8601:2004, Section 4.4.3.2.
Related reading
- Structured data validation — validating all schema types beyond video
- FAQ schema markup — another rich-result-eligible schema type
- JSON-LD nesting and graph patterns — avoiding nested schema errors
- How-To schema for tutorials — step-based markup that pairs with video
- Image alt text auditing — accessible media beyond video
This post is informational, not SEO-consulting advice. Mentions of Google, YouTube, and Schema.org are nominative fair use. No affiliation is implied.