Hvad er Video Schema?
VideoObject schema hjælper Google med at forstå video content på din side. Det kan give video thumbnails, play buttons og metadata i søgeresultater.
Fordele:
- • Video rich snippets i søgeresultater
- • Google Video carousel eligibility
- • YouTube-lignende thumbnails i SERP
- • Duration og upload date synlig
- • Højere CTR for video content
Required Properties
name
Video titel
description
Video beskrivelse
thumbnailUrl
URL til thumbnail (min 160x90px)
uploadDate
ISO 8601 format dato
Basic Example
Minimal Video Schema
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Guide til SEO Optimering",
"description": "Lær de vigtigste SEO teknikker i denne 15 minutters guide",
"thumbnailUrl": "https://example.com/thumbnail.jpg",
"uploadDate": "2024-01-15T08:00:00+00:00"
}
Complete Example
Fuldt VideoObject Schema
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Guide til SEO Optimering 2024",
"description": "En komplet guide til moderne SEO teknikker. Lær om redirects, canonical URLs, schema markup og meget mere.",
"thumbnailUrl": [
"https://example.com/thumbnail-1200x675.jpg",
"https://example.com/thumbnail-1280x720.jpg"
],
"uploadDate": "2024-01-15T08:00:00+00:00",
"duration": "PT15M30S",
"contentUrl": "https://example.com/video.mp4",
"embedUrl": "https://example.com/embed/video",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 5647
},
"publisher": {
"@type": "Organization",
"name": "SEO Eksperterne",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"author": {
"@type": "Person",
"name": "Anders Andersen"
},
"inLanguage": "da-DK",
"isFamilyFriendly": true,
"regionsAllowed": "DK,SE,NO"
}
Duration Format (ISO 8601)
Brug ISO 8601 duration format: PT[hours]H[minutes]M[seconds]S
PT1M30S
= 1 minut 30 sekunderPT5M
= 5 minutterPT1H15M30S
= 1 time 15 minutter 30 sekunderPT2H
= 2 timerVideo on Page vs Embedded
Self-Hosted Video
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"contentUrl": "https://example.com/video.mp4",
"embedUrl": "https://example.com/embed/video-id"
}
YouTube Embedded
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"embedUrl": "https://www.youtube.com/embed/VIDEO_ID",
"thumbnailUrl": "https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg"
}
Vimeo Embedded
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"embedUrl": "https://player.vimeo.com/video/VIDEO_ID",
"thumbnailUrl": "https://i.vimeocdn.com/video/VIDEO_ID_640x360.jpg"
}
Video Clips (Seek to Time)
Tilføj Clip markup for key moments / chapters i video:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "SEO Guide 2024",
"hasPart": [
{
"@type": "Clip",
"name": "Intro til SEO",
"startOffset": 0,
"endOffset": 120,
"url": "https://example.com/video?t=0"
},
{
"@type": "Clip",
"name": "Redirects forklaret",
"startOffset": 120,
"endOffset": 300,
"url": "https://example.com/video?t=120"
},
{
"@type": "Clip",
"name": "Schema Markup",
"startOffset": 300,
"endOffset": 480,
"url": "https://example.com/video?t=300"
}
]
}
Next.js Implementation
// app/videos/[slug]/page.tsx
export default function VideoPage({ params }) {
const video = getVideo(params.slug);
const videoSchema = {
"@context": "https://schema.org",
"@type": "VideoObject",
"name": video.title,
"description": video.description,
"thumbnailUrl": video.thumbnail,
"uploadDate": video.publishedAt,
"duration": `PT${video.durationMinutes}M${video.durationSeconds}S`,
"contentUrl": video.videoUrl,
"embedUrl": video.embedUrl,
"author": {
"@type": "Person",
"name": video.author.name
},
"publisher": {
"@type": "Organization",
"name": "Dit Site Navn",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(videoSchema)
}}
/>
<div className="video-container">
{/* Video player */}
</div>
</>
);
}
Thumbnail Requirements
Google's Thumbnail Guidelines:
- • Minimum størrelse: 160x90 pixels
- • Anbefalet: 1280x720 pixels (16:9)
- • Format: JPG, PNG, eller WebP
- • Max størrelse: Under 5MB
- • Accessible: Ikke blocked i robots.txt
- • Representative: Skal vise video content
Video Sitemap
Alternativt kan du bruge video sitemap i stedet for schema markup:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://example.com/videos/seo-guide</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbnail.jpg</video:thumbnail_loc>
<video:title>Guide til SEO</video:title>
<video:description>Lær SEO teknikker...</video:description>
<video:content_loc>https://example.com/video.mp4</video:content_loc>
<video:duration>930</video:duration>
<video:publication_date>2024-01-15T08:00:00+00:00</video:publication_date>
</video:video>
</url>
</urlset>
Best Practices
✓ Gør dette
- • Brug high-quality thumbnails (1280x720)
- • Inkluder nøjagtig duration
- • Skriv beskrivende video titler
- • Tilføj video transcript på siden
- • Brug unique thumbnails per video
- • Test med Rich Results Tool
✗ Undgå dette
- • For små thumbnails (<160x90)
- • Thumbnails blocked i robots.txt
- • Misleading video beskrivelser
- • Manglende required properties
- • Video bag paywall uden markup
- • Duplicate schema for samme video