Panduan VideoObject Schema

cara implement VideoObject schema untuk Google's video rich hasil di seluruh penelusuran, Video tab, Images, dan menemukan — diperlukan vs. recommended properties, dua cara untuk tambahkan key moments (SeekToAction vs. Clip), dan BroadcastEvent Langsung badge.

Pertama kali diterbitkan: 1 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan

VideoObject schema (schema.org/VideoObject) marks up sebuah halaman's video so Google dapat tampilkan video rich hasil — thumbnail, duration, dan key moments — di seluruh four surfaces, tidak satu: main hasil pencarian halaman, Video tab, Google Images, dan Google menemukan. itu multi-surface reach adalah lebih luas daripada sebagian besar orang assume dan membuat ini satu dari dua highest-payoff rich-hasil jenis di cluster (alongside Recipe). hanya three properties adalah diperlukan — name, thumbnailUrl, dan uploadDate — dengan contentUrl, deskripsi, duration, embedUrl, expires, interactionStatistic, dan region eligibility semua recommended. Dua fitur penyebab sebagian besar dari confusion. Key moments ( chapter timestamps) dapat menjadi selesai dua cara: secara otomatis melalui SeekToAction/potentialAction jika Anda video URLs sudah accept sebuah timestamp parameter, atau manually melalui Clip markup (name, startOffset, dan url adalah diperlukan; endOffset adalah recommended) ketika Anda ingin publisher-specified labels dan timestamps alih-alih Google's automatic picks. dan Langsung badge tidak sebuah terpisah schema — ini adalah BroadcastEvent (isLiveBroadcast, startDate, endDate — diperlukan setelah Anda're menambahkan BroadcastEvent di semua) terdokumentasi pada yang sama halaman dan digunakan alongside VideoObject. paling umum miss adalah omitting uploadDate atau writing ini di sebuah inconsistent date format. sebagai selalu, valid markup hanya membuat Anda eligible — Google, dan video menjadi dapat di-crawl, masih decide apakah ini menampilkan.

TL;DR — schema.org/VideoObject markup (biasanya JSON-LD) membuat sebuah video eligible untuk video rich hasil di seluruh four Google surfaces — main penelusuran, Video tab, Google Images, dan Google menemukan. diperlukan: name, thumbnailUrl, uploadDate. Recommended: contentUrl, description, duration, embedUrl, expires, interactionStatistic, dan regionsAllowed/ineligibleRegion. Key moments memiliki dua mechanisms — automatic melalui SeekToAction/potentialAction (jika Anda URLs accept sebuah timestamp parameter Google dapat infer) atau manual melalui Clip (name, startOffset, dan url diperlukan per chapter; endOffset recommended). Langsung badge adalah BroadcastEvent (isLiveBroadcast, startDate, endDate) digunakan alongside VideoObject, terdokumentasi pada yang sama halaman — tidak sebuah terpisah sistem. paling umum miss adalah omitting uploadDate atau menggunakan sebuah inconsistent date format. Valid markup hanya earns eligibility; Google masih decides apakah untuk tampilkan ini, dan video memiliki untuk menjadi dapat di-crawl dan dapat diindeks. ini adalah satu dari dua highest-payoff jenis di cluster alongside Recipe — worth melakukan properly.

Bukti untuk klaim ini Schema.org VideoObject defines vocabulary for a video media object; being valid Schema.org does not by itself guarantee a Google video feature. Cakupan: Schema.org type definition, distinct from Google eligibility. Tingkat keyakinan: tinggi · Diverifikasi: Schema.org: VideoObject Bukti untuk klaim ini Google's VideoObject documentation requires name, thumbnailUrl, and uploadDate for video structured-data eligibility and recommends additional properties. Cakupan: Current Google video structured data requirements; eligibility is not a display guarantee. Tingkat keyakinan: tinggi · Diverifikasi: Google Search Central: Video structured data

Apa VideoObject schema melakukan — satu markup, four surfaces

sebagian besar guides flatten VideoObject ke “mendapatkan a thumbnail di penelusuran.” (terjemahan) “mendapatkan sebuah thumbnail di penelusuran.” reach adalah wider daripada itu, dan ini adalah worth leading dengan karena ini perubahan ROI calculation. Google’s own framing: “Videos dapat muncul di several berbeda places pada Google, including itu main penelusuran hasil halaman, Video mode, Google Images, dan Google Discover.” (terjemahan) “Videos dapat muncul di several berbeda places pada Google, including main hasil pencarian halaman, Video mode, Google Images, dan Google menemukan.” itu’s four distinct surfaces dari satu block dari markup — yang adalah mengapa I peringkat ini, dengan Recipe, sebagai satu dari dua genuinely tinggi-payoff jenis di seluruh structured-data cluster. (ini adalah Tidak coincidence dua overlap: banyak Recipe halaman embed sebuah cooking video melalui recipe’s video property, dan itu video adalah itself sebuah VideoObject.)

vocabulary adalah schema.org/VideoObject, dan Google’s Video guide covers three related jenis pada sebuah single halaman: VideoObject itself, Clip (key moments), dan BroadcastEvent ( Langsung badge). Worth knowing: ada Tidak terpisah “media-clip” (terjemahan) “media-clip” doc halaman — URL Anda mungkin guess di mengembalikan sebuah 404. Clip dan segment markup untuk video adalah folded ke yang sama Video guide sebagai VideoObject, so jangan go hunting untuk sebuah dedicated halaman itu tidak exist.

diperlukan — minimum untuk apa pun video rich hasil:

PropertyApa ini adalah
namevideo’s judul
thumbnailUrlURL untuk sebuah representative thumbnail image
uploadDatedate video adalah pertama published (ISO 8601)

Recommended — tambahkan sebagai banyak sebagai apply; mereka membuat hasil richer dan lebih reliable:

Propertymengapa ini penting
contentUrlDirect URL untuk media file — helps Google fetch video
descriptionvideo’s deskripsi (plain text)
durationISO 8601 duration (e.g. PT4M12S) — powers runtime badge
embedUrlURL untuk player embed
expiresKetika video adalah Tidak lebih lama tersedia (omit jika ini tidak expire)
interactionStatisticView count melalui WatchAction interaction jenis
regionsAllowed / ineligibleRegionDi mana video dapat / dapat tidak menjadi ditampilkan

menyediakan either contentUrl atau embedUrl (keduanya adalah better) so Google memiliki sebuah cara untuk reach sebenarnya video — sebuah thumbnail dengan Tidak reachable video adalah sebuah umum alasan sebuah hasil tidak pernah muncul. three URLs itu come up di sini adalah tidak interchangeable: contentUrl adalah video file’s sebenarnya konten bytes (Google’s own docs panggil ini paling effective cara untuk Google untuk fetch video); embedUrl adalah player, tidak file; dan neither satu adalah watch halaman URL — halaman video adalah embedded pada. sebuah umum mistake adalah pointing contentUrl di watch halaman alih-alih mentah media file.

Bukti untuk klaim ini Google recommends contentUrl when available because it is the actual video bytes and most effective for fetching; embedUrl is the player URL alternative, not the watch page URL. Cakupan: web Tingkat keyakinan: tinggi · Diverifikasi: Video structured data

«## Key moments: SeekToAction vs. Clip » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian tiga puluh satu, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

Key moments adalah chapter-style deep tautan di bawah sebuah video hasil itu jump viewer untuk sebuah spesifik timestamp. ada dua mechanisms, dan confusing them adalah single biggest sumber dari implementation trouble pada ini jenis.

1. Automatic — SeekToAction / potentialAction. Anda tell Google, melalui sebuah potentialAction dari jenis SeekToAction, URL pattern Anda player menggunakan untuk jump untuk sebuah timestamp ( startOffset-input placeholder). jika Anda video URLs sudah accept sebuah timestamp parameter, Google dapat infer key moments itself dari Anda pada-halaman chapter structure. gunakan ini ketika Anda struktur URL mendukung timestamps dan Anda’re happy letting Google pick moments.

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to tie a bowline knot",
  "thumbnailUrl": "https://example.com/thumbs/bowline.jpg",
  "uploadDate": "2026-05-01T08:00:00-05:00",
  "description": "A step-by-step guide to tying a bowline.",
  "duration": "PT4M12S",
  "contentUrl": "https://example.com/video/bowline.mp4",
  "embedUrl": "https://example.com/embed/bowline",
  "potentialAction": {
    "@type": "SeekToAction",
    "target": "https://example.com/watch/bowline?t={seek_to_second_number}",
    "startOffset-input": "required name=seek_to_second_number"
  }
}

2. Manual — Clip markup. Anda define setiap chapter explicitly sebagai sebuah Clip. Google’s Clip table splits ini yang sama cara sebagai VideoObject itself: diperlukan — name, startOffset (di seconds), dan sebuah url itu deep-tautan untuk itu moment; recommended — endOffset (di seconds), so clip memiliki sebuah didefinisikan end serta sebuah mulai. gunakan ini ketika Anda ingin supply Anda own labels dan timestamps rather daripada moments Google’s automatic detection akan jika tidak pick.

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to tie a bowline knot",
  "thumbnailUrl": "https://example.com/thumbs/bowline.jpg",
  "uploadDate": "2026-05-01T08:00:00-05:00",
  "hasPart": [
    {
      "@type": "Clip",
      "name": "Make the loop",
      "startOffset": 30,
      "endOffset": 75,
      "url": "https://example.com/watch/bowline?t=30"
    },
    {
      "@type": "Clip",
      "name": "Thread the tail",
      "startOffset": 75,
      "endOffset": 130,
      "url": "https://example.com/watch/bowline?t=75"
    }
  ]
}

Yang untuk gunakan? Automatic SeekToAction adalah lebih sedikit berfungsi jika Anda URLs sudah mendukung timestamp parameters dan Anda trust Google untuk pick moments. Manual Clip adalah right panggil ketika Anda ingin name dan bound setiap chapter yourself. jangan stack keduanya mechanisms untuk yang sama purpose pada yang sama video — pick satu. decision tree di Resources group walks ini fork.

Langsung badges dengan BroadcastEvent

untuk livestreams, red Langsung badge adalah enabled oleh menambahkan sebuah BroadcastEvent untuk Anda VideoObject melalui publication property. ini adalah tidak sebuah terpisah, unrelated schema jenis — ini adalah terdokumentasi pada yang sama Video guide dan layered onto VideoObject Anda sudah memiliki. BroadcastEvent sebagai sebuah seluruh tidak diperlukan untuk sebuah plain video rich hasil, tetapi setelah Anda tambahkan ini untuk Langsung badge, Google’s Clip-style table memperlakukan isLiveBroadcast, startDate, dan endDate sebagai diperlukan together:

  • isLiveBroadcast: true
  • startDate — ketika broadcast dimulai atau adalah scheduled untuk mulai. sebuah startDate di future sinyal sebuah scheduled broadcast; di past atau present, ini sinyal stream memiliki sebenarnya dimulai.
  • endDate — ketika ini ends atau adalah yang diharapkan untuk end. Google adalah jelas itu setelah stream memiliki sebenarnya finished, Anda harus perbarui endDate untuk sebuah nyata nilai — sebuah endDate di future sinyal sebuah scheduled end, di past atau present ini sinyal stream memiliki ended. jika Anda tidak know end time up front, sebuah approximate endDate adalah fine untuk mulai; hanya correct ini setelah stream sebenarnya wraps.

Nesting startDate/endDate ini cara lets Google infer three lifecycle status — scheduled, langsung, ended — dari yang sama dua fields, yang adalah juga mengapa sebuah stale endDate (tidak corrected setelah stream berhenti) adalah main cara sebuah lingering Langsung badge happens. None dari ini jaminan badge muncul di apa pun particular time; ini hanya supplies timing Google’s sistem gunakan untuk decide.

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Launch livestream 2026",
  "thumbnailUrl": "https://example.com/thumbs/launch.jpg",
  "uploadDate": "2026-06-30T09:00:00-05:00",
  "publication": {
    "@type": "BroadcastEvent",
    "isLiveBroadcast": true,
    "startDate": "2026-07-01T14:00:00-05:00",
    "endDate": "2026-07-01T15:30:00-05:00"
  }
}

Anda juga perlu untuk panggil Google’s pengindeksan API untuk livestream videos so Langsung badge muncul dan disappears di sebuah timely cara — badge adalah time-sensitive di sebuah cara sebuah wajar pada-demand video tidak.

umum implementation mistakes

  • Omitting uploadDate atau menggunakan sebuah sloppy date format. ini adalah satu dari hanya three diperlukan fields. gunakan consistent ISO 8601 nilai (sebuah penuh date-time dengan offset adalah safest). ini adalah single sebagian besar umum miss pada jenis.
  • sebuah thumbnail dengan Tidak reachable video. menyediakan contentUrl dan/atau embedUrl so Google dapat sebenarnya fetch video thumbnail mewakili.
  • Marking up sebuah video itu Google dapat’t crawl atau indeks. data terstruktur dapat’t rescue sebuah video hidden behind sebuah login, blocked di robots.txt, atau dimuat di sebuah cara crawler dapat’t see. Markup mendeskripsikan video; ini tidak membuat ini accessible.
  • Stacking keduanya key-moment mechanisms. Pick automatic SeekToAction atau manual Clip untuk sebuah diberikan video, tidak keduanya.
  • Forgetting untuk close out sebuah livestream. Set endDate dan perbarui markup setelah stream ends, atau Langsung badge dapat linger.
  • Treating valid markup sebagai sebuah guaranteed hasil. sebagai dengan setiap rich-hasil jenis, valid VideoObject markup hanya membuat halaman eligible — Google’s sistem masih decide apakah untuk tampilkan ini.

Di mana ini sits, dan video SEO lebih broadly

VideoObject adalah structured-data layer untuk video, dan ini lives di sini alongside -nya siblings — Recipe (milik siapa halaman so sering embed sebuah cooking video) dan artikel (di mana sebuah video adalah embedded di dalam sebuah ditulis piece, dan VideoObject mendeskripsikan itu embed). tetapi markup adalah hanya satu slice dari getting video untuk perform di penelusuran: hosting, sitemaps, thumbnails, transcripts, kecepatan halaman sekitar player, dan bagaimana Anda embed semua penting too. itu lebih luas video SEO topics sit di luar ini structured-data artikel — ini halaman adalah dengan sengaja scoped untuk schema itself.

untuk di mana VideoObject fits di wider structured-data picture, see Schema Markup dan data terstruktur hubs ini artikel nests di bawah.

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.