# VideoObject schema on pages with embedded videos

- **Pattern:** `ab-002474` (`seo-advanced.structured-data.video-schema`)
- **Severity:** low
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-002474
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-002474)

## Why it matters

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.

## Severity rationale

Low because VideoObject schema absence forfeits video Rich Results eligibility without breaking video playback or core site functionality.

## Remediation

Add VideoObject schema to each video page component in `app/videos/[slug]/page.tsx`, sourced from your video metadata store:

```tsx
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.

## Detection

- **ID:** `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`:

  ```json
  {
    "@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"
  }
  ```

---

## External references

- schema-org VideoObject

Taxons: findability

HTML version: https://auditbuffet.com/patterns/ab-002474
