Video pages without schema-org VideoObject schema are excluded from Google's video Rich Results and video tab indexing. Google's video carousel requires name, description, thumbnailUrl, uploadDate, and duration to surface your video alongside search results — without them, your video is treated as an opaque embed. For tutorial, product demo, or educational content sites, video Rich Results represent a distinct SERP surface that competitors with schema markup access freely. The gap is almost always an omission, not intentional.
Low because VideoObject schema absence forfeits video Rich Results eligibility without breaking video playback or core site functionality.
Add VideoObject schema to each video page component in app/videos/[slug]/page.tsx, sourced from your video metadata store:
const schema = {
'@context': 'https://schema.org',
'@type': 'VideoObject',
name: video.title,
description: video.description,
thumbnailUrl: video.thumbnailUrl,
uploadDate: video.publishedAt, // ISO 8601: '2024-01-15T10:00:00Z'
duration: video.duration, // ISO 8601: 'PT5M30S'
contentUrl: video.url,
}
At minimum, all five required properties — name, description, thumbnailUrl, uploadDate, duration — must be present and non-empty. duration must be ISO 8601 format (e.g., PT5M30S for 5 minutes 30 seconds). Validate with the Google Rich Results Test.
ID: seo-advanced.structured-data.video-schema
Severity: low
What to look for: Count all pages containing <video> tags, <iframe> embeds to YouTube/Vimeo, or other embedded video players. For each page with video content, check for VideoObject schema and enumerate these 5 required properties: name, description, thumbnailUrl, uploadDate, and duration (ISO 8601 format).
Pass criteria: At least 90% of pages with embedded videos include VideoObject schema with at least 4 of 5 required properties (name, description, thumbnailUrl, uploadDate, duration) present and non-empty. Report: "X of Y video pages have VideoObject schema."
Fail criteria: Fewer than 90% of video pages have VideoObject schema, or schema has fewer than 4 required properties.
Skip (N/A) when: The project has no embedded videos on any page.
Detail on fail: "2 of 4 video pages lack VideoObject schema" or "Schema present but missing 'thumbnailUrl' and 'duration' on 3 pages".
Remediation: VideoObject schema enables video Rich Results and video sitemaps. Add to video page components or in app/videos/[slug]/page.tsx:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"description": "Brief description of the video",
"thumbnailUrl": "https://yoursite.com/video-thumb.jpg",
"uploadDate": "2024-01-15T10:00:00Z",
"duration": "PT5M30S",
"contentUrl": "https://yoursite.com/video.mp4"
}