Live · CSR-certificeret
Tilbage til Schema
🎥

Video Schema

Optimer video content med VideoObject structured data

Foto: Jakub Żerdzicki / Unsplash

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 sekunder
PT5M = 5 minutter
PT1H15M30S = 1 time 15 minutter 30 sekunder
PT2H = 2 timer

Video 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

Video: Hvordan laver du video-SEO på YouTube?

Læs videre

Relaterede opslag