Guide : VideoObject Schema
Comment implement VideoObject schema pour Google's video résultats enrichis à travers recherche, le Video tab, Images, et Découvrir — requis vs. recommended properties, le deux façons à ajouter clé moments (SeekToAction vs. Clip), et le BroadcastEvent Actif badge.
VideoObject schema (schema.org/VideoObject) marks up une page's video donc Google peut montrer video résultats enrichis — thumbnail, duration, et clé moments — à travers four surfaces, pas un: le principal résultats de recherche page, le Video tab, Google Images, et Google Découvrir. Que multi-surface reach est broader que la plupart personnes assume et rend ce un de le deux highest-payoff rich-résultat types dans le cluster (alongside Recipe). Seulement three properties sont requis — nom, thumbnailUrl, et uploadDate — avec contentUrl, description, duration, embedUrl, expires, interactionStatistic, et region eligibility tout recommended. Deux fonctionnalités causer la plupart de le confusion. Clé moments (le chapter timestamps) peut être fait deux façons: automatiquement via SeekToAction/potentialAction si votre video URLs déjà accept a timestamp parameter, or manuellement via Clip markup (nom, startOffset, et url sont requis; endOffset est recommended) quand vous vouloir publisher-specified étiquettes et timestamps au lieu de Google's automatic picks. Et le Actif badge n’est pas a séparé schema — c’est BroadcastEvent (isLiveBroadcast, startDate, endDate — requis une fois vous êtes ajout BroadcastEvent à tout) documented on le même page et utilisé alongside VideoObject. Le la plupart courant miss est omitting uploadDate or writing il dans an inconsistent date format. As toujours, valide markup seulement rend vous eligible — Google, et le video étant crawlable, encore decide si il montre.
«> TL;DR — VideoObject schema is code you add to a page with a video that
Preuve à l’appui de cette affirmation Schema.org VideoObject defines vocabulary for a video media object; being valid Schema.org does not by itself guarantee a Google video feature. Portée : Schema.org type definition, distinct from Google eligibility. Niveau de confiance : élevé · Vérifié : Schema.org: VideoObject Preuve à l’appui de cette affirmation Google's VideoObject documentation requires name, thumbnailUrl, and uploadDate for video structured-data eligibility and recommends additional properties. Portée : Current Google video structured data requirements; eligibility is not a display guarantee. Niveau de confiance : élevé · Vérifié : Google Search Central: Video structured datalabels the video’s details for search engines — “this is the title,” “this is the thumbnail,” “this is how long it is,” “it was uploaded on this date.” Adding it correctly makes the video eligible for the richer listings you see on Google: a thumbnail and duration in the main results, in the Video tab, in Images, and in Discover. It does not guarantee those extras show up, and Google still has to be able to find and index the video itself.
» (Traduction) (Résumé en français de la section trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Ce que VideoObject schema is
Quand vous regarder à une page avec a video on il, vous pouvez tell le titre depuis le runtime
depuis le thumbnail simplement par looking. A moteur de recherche voit une page de HTML et a video
player et a à fonctionner out qui video est le principal un et ce que c’est à propos de.
VideoObject schema spells il out dans code, en utilisant le shared
schema.org vocabulary — il balises le video’s
name (titre), son thumbnailUrl, le uploadDate, et généralement a description,
duration, et l’URLs où le video fichier et son embed actif.
It’s almost toujours written as JSON-LD — a petit block of code que sits in the page sans modification how lune page semble.
Pourquoi it’s worth doing
Le payoff est video résultats enrichis, et le surprising partie est comment nombreux places ils montrer up. Google’s propre docs dire videos peut apparaître on le principal résultats de recherche page, dans Video mode, dans Google Images, et dans Google Découvrir. La plupart personnes assume video schema seulement aide dans le “videos” section — c’est en réalité four surfaces. A thumbnail et a runtime suivant à votre résultat stand out et peut earn plus clicks que a plain blue lien.
The three choses vous toujours besoin
To be eligible pour quelconque video rich result, Google exige simplement three properties:
- nom — le video’s titre.
- thumbnailUrl — une URL à a representative thumbnail image.
- uploadDate — le date le video était premier publié.
Tout sinon — le description, le duration (donc Google peut montrer “4:12”),
le contentUrl et embedUrl — est recommended, pas requis, mais ajout les
rend pour a beaucoup richer, plus fiable résultat.
Two fonctionnalités you’ll hear à propos de
- Clé moments sont le little chapter liens (“Intro,” “Ingredients,” “Assembly”) que let searchers jump dans le middle de a video. Vous pouvez ajouter ces — là sont deux différent façons, covered dans le Avancé tab.
- Le Actif badge — que red “Actif” étiquette on livestreams — est ajouté avec a
connexe bit de markup appelé
BroadcastEvent. Aussi dans Avancé.
The chose la plupart personnes obtenir incorrect
Le unique la plupart courant miss est leaving out uploadDate, or writing il dans a
sloppy date format. c’est un de seulement three requis champs, donc skipping il signifie
aucun rich résultat à tout. Et remember: même perfect markup seulement rend le video
eligible — Google encore decides si à montrer il, et il a à être able à
explorer et indexer le réel video.
Vouloir le complet version — le recommended properties, le deux façons à faire clé moments, le Actif badge, et le Erreurs fréquentes? Switch à le Avancé tab.
Preuve à l’appui de cette affirmation Schema.org VideoObject defines vocabulary for a video media object; being valid Schema.org does not by itself guarantee a Google video feature. Portée : Schema.org type definition, distinct from Google eligibility. Niveau de confiance : élevé · Vérifié : Schema.org: VideoObject Preuve à l’appui de cette affirmation Google's VideoObject documentation requires name, thumbnailUrl, and uploadDate for video structured-data eligibility and recommends additional properties. Portée : Current Google video structured data requirements; eligibility is not a display guarantee. Niveau de confiance : élevé · Vérifié : Google Search Central: Video structured dataTL;DR —
schema.org/VideoObjectmarkup (généralement JSON-LD) rend a video eligible pour video résultats enrichis à travers four Google surfaces — principal recherche, le Video tab, Google Images, et Google Découvrir. Requis:name,thumbnailUrl,uploadDate. Recommended:contentUrl,description,duration,embedUrl,expires,interactionStatistic, etregionsAllowed/ineligibleRegion. Clé moments ont deux mechanisms — automatic viaSeekToAction/potentialAction(si votre URLs accept a timestamp parameter Google peut infer) or manual viaClip(name,startOffset, eturlrequis per chapter;endOffsetrecommended). Le Actif badge estBroadcastEvent(isLiveBroadcast,startDate,endDate) utilisé alongside VideoObject, documented on le même page — pas a séparé système. Le la plupart courant miss est omittinguploadDateor en utilisant an inconsistent date format. Valide markup seulement earns eligibility; Google encore decides si à montrer il, et le video a à être crawlable et indexable. Ce est un de le deux highest-payoff types dans le cluster alongside Recipe — worth doing correctement.
Ce que VideoObject schema fait — un markup, four surfaces
«Most guides flatten VideoObject into “get a thumbnail in search.” The reach is
wider than that, and it’s worth leading with because it changes the ROI calculation.
Google’s own framing: “Videos can appear in several different places on Google,
including the main search results page, Video mode, Google Images, and Google
Discover.” That’s four distinct surfaces from one block of markup — which is why I
rank this, with Recipe, as one of the two genuinely high-payoff types in the whole
structured-data cluster. (It’s no coincidence the two overlap: many Recipe pages
embed a cooking video via the recipe’s video property, and that video is itself a
VideoObject.)
» (Traduction) (Résumé en français de la section vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Le vocabulary est schema.org/VideoObject, et Google’s Video guide covers three
connexe types on a unique page: VideoObject itself, Clip (clé moments), et
BroadcastEvent (le Actif badge). Worth knowing: là est aucun séparé
“media-clip” doc page — l’URL vous pourrait guess à renvoie a 404. Clip et segment
markup pour video est folded dans le même Video guide as VideoObject, donc ne pas go
hunting pour a dedicated page que ne fait pas exist.
Requis vs. recommended properties
Requis — the minimum pour quelconque video rich result:
| Property | Ce que c’est |
|---|---|
name | Le video’s titre |
thumbnailUrl | URL à a representative thumbnail image |
uploadDate | Le date le video était premier publié (ISO 8601) |
Recommended — ajouter as nombreux as appliquer; ils faire le résultat richer and plus reliable:
| Property | Pourquoi c’est important |
|---|---|
contentUrl | Direct URL à le media fichier — aide Google récupérer le video |
description | Le video’s description (plain texte) |
duration | ISO 8601 duration (e.g. PT4M12S) — powers le runtime badge |
embedUrl | URL à le player embed |
expires | Quand le video est ne … plus disponible (omit si il ne fait pas expire) |
interactionStatistic | View count via WatchAction interaction type |
regionsAllowed / ineligibleRegion | Où le video peut / peut pas être affiché |
Provide soit contentUrl or embedUrl (les deux est meilleur) donc Google a a
façon à reach le réel video — a thumbnail avec aucun reachable video est a courant
raison a résultat jamais apparaît. Le three URLs que come up ici ne sont pas
interchangeable: contentUrl est le video fichier’s réel contenu bytes (Google’s
propre docs appel il le la plupart effective façon pour Google à récupérer le video); embedUrl
est le player, pas le fichier; et aucun un est le watch page URL — lune page
le video est embedded on. A courant mistake est pointing contentUrl à le watch
page au lieu de le raw media fichier.
Clé moments: SeekToAction vs. Clip
Clé moments sont le chapter-style deep liens sous a video résultat que jump le viewer à a spécifique timestamp. Là sont deux mechanisms, et confusing les est le unique biggest source de implementation trouble on ce type.
1. Automatic — SeekToAction / potentialAction. Vous tell Google, via a
potentialAction de type SeekToAction, l’URL modèle votre player utilise à jump
à a timestamp (le startOffset-input placeholder). Si votre video URLs déjà
accept a timestamp parameter, Google peut infer le clé moments itself depuis votre
sur la page chapter structure. Utiliser ce quand votre Structure d’URL prend en charge timestamps et
vous êtes happy letting Google pick le 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. Vous define chaque chapter explicitly as a Clip.
Google’s Clip tableau splits ce le même façon as VideoObject itself: requis —
name, startOffset (dans seconds), et a url que deep-liens à que moment;
recommended — endOffset (dans seconds), donc le clip a a défini fin as bien as
a commencer. Utiliser ce quand vous vouloir à supply votre propre étiquettes et timestamps plutôt
que le moments Google’s automatic detection voudrait sinon 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"
}
]
}«Which to use? Automatic SeekToAction is less work if your URLs already
support timestamp parameters and you trust Google to pick the moments. Manual Clip
is the right call when you want to name and bound each chapter yourself. Don’t stack
both mechanisms for the same purpose on the same video — pick one. The decision tree
in the Resources group walks this fork.
» (Traduction) (Résumé en français de la section trente-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«## LIVE badges with BroadcastEvent » (Traduction) (Résumé en français de la section trente-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«For livestreams, the red LIVE badge is enabled by adding a BroadcastEvent to
your VideoObject via the publication property. It is not a separate,
unrelated schema type — it’s documented on the same Video guide and layered onto the
VideoObject you already have. BroadcastEvent as a whole isn’t required for a plain
video rich result, but once you add it for the LIVE badge, Google’s Clip-style table
treats isLiveBroadcast, startDate, and endDate as required together:
» (Traduction) (Résumé en français de la section trente-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
isLiveBroadcast: truestartDate— quand le broadcast commence or est scheduled à commencer. AstartDatedans le future signaux a scheduled broadcast; dans le past or présent, il signaux le stream a en réalité commencé.endDate— quand il ends or est attendu à fin. Google est explicit que une fois le stream a en réalité finished, vous doit mettre à jourendDateà a réel valeur — anendDatedans le future signaux a scheduled fin, dans le past or présent il signaux le stream a ended. Si vous ne pas know le fin temps up front, an approximateendDateest fine à commencer; simplement correct il une fois le stream en réalité wraps.
Nesting startDate/endDate ce façon lets Google infer three lifecycle states —
scheduled, actif, ended — depuis le même deux champs, qui est aussi pourquoi a stale
endDate (pas corrected après le stream arrête) est le principal façon a lingering Actif
badge se produit. None de ce guarantees le badge apparaît à quelconque particulier temps;
il seulement supplies le timing Google’s systèmes utiliser à 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"
}
}Vous aussi besoin à appel Google’s Indexation API pour livestream videos donc le Actif badge apparaît et disappears dans a timely façon — le badge est time-sensitive dans a façon a normal on-demand video n’est pas.
Courant implementation mistakes
- Omitting
uploadDateor en utilisant a sloppy date format. c’est un de seulement three requis champs. Utiliser a consistent ISO 8601 valeur (a complet date-time avec offset est safest). Ce est le unique la plupart courant miss on le type. - A thumbnail avec aucun reachable video. Provide
contentUrlet/orembedUrldonc Google peut en réalité récupérer le video le thumbnail represents. - Marking up a video que Google ne peut pas explorer or indexer. Données structurées ne peut pas rescue a video hidden behind a login, bloqué dans robots.txt, or chargé dans a façon le robot d’exploration ne peut pas voir. Markup décrit le video; il ne fait pas faire il accessible.
- Stacking les deux key-moment mechanisms. Pick automatic
SeekToActionor manualClippour a donné video, pas les deux. - Forgetting à fermer out a livestream. Définir
endDateet mettre à jour le markup une fois le stream ends, or le Actif badge peut linger. - Treating valide markup as a guaranteed résultat. As avec chaque rich-résultat type, valide VideoObject markup seulement rend lune page eligible — Google’s systèmes encore decide si à montrer il.
Où ce sits, and video SEO plus broadly
VideoObject est le structured-données couche pour video, et il lives ici alongside son siblings — Recipe (whose pages donc souvent embed a cooking video) et Article (où a video est embedded à l’intérieur a written piece, et le VideoObject décrit que embed). Mais le markup est seulement un slice de getting video à perform dans recherche: hosting, sitemaps, thumbnails, transcripts, vitesse de page autour le player, et comment vous embed tout matter aussi. Ceux broader video SEO topics sit à l’extérieur ce structured-données article — ce page est deliberately scoped à le schema itself.
Pour où VideoObject fits dans le wider structured-données picture, voir le Schema Markup et Données structurées hubs ce article nests sous.
AI summary
A condensed prendre on the Avancé version:
- Ce que c’est:
schema.org/VideoObjectmarkup (généralement JSON-LD) que étiquettes a page’s video — titre, thumbnail, upload date, duration, et le video/embed URLs — donc moteur de recherches peut produce video résultats enrichis. - Four surfaces, pas un: le même markup peut surface on le principal recherche résultats page, le Video tab, Google Images, et Google Découvrir. Ce breadth est pourquoi c’est un de le deux highest-payoff types dans le cluster (avec Recipe).
- Requis:
name,thumbnailUrl,uploadDate. Recommended:contentUrl,description,duration,embedUrl,expires,interactionStatistic,regionsAllowed/ineligibleRegion. SupplycontentUrlet/orembedUrldonc Google peut reach le video. - Clé moments — deux mechanisms: (1) automatic via
SeekToAction/potentialActionsi votre URLs accept a timestamp parameter Google peut infer; (2) manual viaClip(name,startOffset,urlrequis;endOffsetrecommended, per chapter) quand vous vouloir publisher-specified étiquettes et timestamps au lieu de Google’s automatic picks. Utiliser un mechanism, pas les deux, pour a donné video. - URL roles:
contentUrl(video bytes) etembedUrl(le player) ne sont pas le watch page URL — provide au moins un donc Google peut reach le réel video. - Actif badge:
BroadcastEvent(isLiveBroadcast,startDate,endDate— requis ensemble une fois vous ajouterBroadcastEventà tout) ajouté à VideoObject viapublication— documented on le même Video guide, pas a séparé système.startDate/endDatedans le future signal scheduled/attendu times; dans le past or présent ils signal le stream a en réalité commencé/ended — mettre à jourendDateune fois il vraiment ends. Livestreams aussi besoin le Indexation API pour timely badge mises à jour. - Aucun media-clip doc page: le guessable
/media-clipURL est a 404 — Clip markup est folded dans le unique Video guide alongside VideoObject et BroadcastEvent. - La plupart courant miss: omitting
uploadDateor writing il dans an inconsistent date format — c’est un de seulement three requis champs. - Eligibility ≠ afficher: valide markup + a crawlable, indexable video + Google deciding c’est worth showing. Markup seulement rend vous eligible.
- Scope: VideoObject est le schema couche seulement; broader video SEO (hosting, sitemaps, thumbnails, embeds) est a séparé topic.
«## Official documentation » (Traduction) (Résumé en français de la section cinquante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Primary-source documentation from the search engines. » (Traduction) (Résumé en français de la section cinquante-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google — Video structured data » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Video (VideoObject, Clip, BroadcastEvent) structured data — the single authoritative guide covering all three types: VideoObject required/recommended properties, key moments (SeekToAction and Clip), and the BroadcastEvent LIVE badge. Note there is no separate media-clip page — Clip markup lives here. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Video SEO best practices — the separate indexing-requirements guide (watch page, video placement, stable asset URLs) that structured-data eligibility depends on. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- Search gallery (rich result types) — where video rich results sit among Google’s supported enhancements. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.) «- Rich Results Test — validate the markup and check video rich-result eligibility. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.) «- Video indexing report (Search Console) — how Google reports whether it indexed your videos, and why some aren’t indexed. » (Traduction) (Résumé en français de la section cinquante-huit, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«Bing / Microsoft » (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Marking up your site with structured data — Bing’s general structured-data support (schema.org, JSON-LD recommended). » (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«Note: Bing doesn’t publish a Video-specific required/recommended property table the way Google does — it supports the same schema.org/VideoObject vocabulary in general terms. Treat its behavior as broadly consistent with schema.org rather than separately documented. » (Traduction) (Résumé en français de la section soixante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Quotes from the source » (Traduction) (Résumé en français de la section soixante-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
On-le-record statements depuis Google. Où a page source exposes le texte, le lien est a deep lien que jumps à le quoted passage.
Google docs — le multi-surface reach
- “Videos peut appear dans plusieurs différent places on Google, including le main résultats de recherche page, Video mode, Google Images, et Google Discover.” Jump à citation
Que unique sentence est le raison à prioritize ce type: four surfaces, un bloquer de markup. La plupart guides seulement mention le Video tab.
Remarque: Aucun VideoObject-spécifique on-record citation depuis a Google rep surfaced pour ce article, et aucun Patrick Stox contenu on VideoObject précisément. Plutôt que invent a type-spécifique rep citation, le honest framing à carry over depuis chaque autre schema type s’applique ici: valide données structurées est an eligibility signal, pas a facteur de classement — Google decides si à montrer le résultat.VideoObject schema cheat sheet
Où video résultats enrichis peut apparaître
Principal résultats de recherche · Video tab · Google Images · Google Découvrir — four surfaces from un block of markup.
Requis vs. recommended (VideoObject)
| Property | Status |
|---|---|
name | Requis |
thumbnailUrl | Requis |
uploadDate | Requis |
contentUrl | Recommended |
description | Recommended |
duration | Recommended (ISO 8601, e.g. PT4M12S) |
embedUrl | Recommended |
expires | Recommended (omit si it doesn’t expire) |
interactionStatistic | Recommended (view count) |
regionsAllowed / ineligibleRegion | Recommended |
Provide contentUrl et/or embedUrl donc Google peut reach le réel video —
contentUrl est le video’s bytes, embedUrl est le player, et aucun est le
watch page URL.
Clé moments — the two mechanisms comparé
Automatic (SeekToAction) | Manual (Clip) | |
|---|---|---|
| Comment | potentialAction → SeekToAction avec a timestamp URL modèle | hasPart → Clip per chapter |
| Requis properties | target URL + startOffset-input | name, startOffset, url |
| Recommended properties | — | endOffset |
| Qui picks le moments | Google infers les depuis votre page | Vous define les explicitly |
| Requirement | Votre URLs doit accept a timestamp parameter | Deep-lien URL per clip |
| Utiliser quand | URLs déjà prise en charge timestamps; happy à let Google choisir | Vous vouloir à supply votre propre étiquettes et timestamps |
Pick un mechanism per video — don’t stack les deux.
LIVE badge (BroadcastEvent, via publication)
isLiveBroadcast: true·startDate·endDate— requis ensemble une fois vous ajouterBroadcastEventà tout.startDate/endDatedans le future = scheduled/attendu; dans le past or présent = en réalité commencé/ended.- Layered sur VideoObject, même guide — pas a séparé schema.
- Appel le Indexation API pour timely badge mises à jour; définir
endDateà a réel valeur une fois le stream en réalité ends (an approximateendDatebeforehand est fine).
Rapide facts
- Format: JSON-LD (recommended).
- Aucun séparé media-clip doc page — Clip est folded dans le Video guide (
/media-clipest a 404). - La plupart courant miss: omitting
uploadDateor a sloppy date format. - Valide markup = eligible, pas guaranteed; le video doit être crawlable/indexable.
Clé moments: automatic SeekToAction or manual Clip?
Si vous vouloir le chapter-style timestamps sous votre video résultat, là sont deux façons à faire il. Fonctionner bas le questions à trouver le correct un pour votre setup.
Qui key-moments mechanism devrait I utiliser?
Règle de thumb: automatic SeekToAction est moins fonctionner si votre URLs déjà
prise en charge timestamps et vous confiance Google à choisir le moments; manual Clip est le
correct appel quand vous vouloir à author chaque chapter’s étiquette et timestamps yourself.
Jamais stack les deux mechanisms on le même video.
VideoObject mistakes to éviter
Concrete implementation mistakes on VideoObject, drawn depuis le courant-mistakes liste dans le Avancé tab — pourquoi chaque est incorrect et Que faire à la place.
Omitting uploadDate, or en utilisant a sloppy date format.
Pourquoi c’est incorrect: uploadDate est un de seulement three requis properties (avec name
et thumbnailUrl). Skip il, or écrire il inconsistently, et le video n’est pas
eligible pour a rich résultat à tout — c’est le unique la plupart courant miss on ce type.
Que faire à la place: toujours inclure uploadDate as a complet ISO 8601 date-time valeur
(a date-time avec a timezone offset est le safest format).
Shipping a thumbnail avec aucun reachable video.
Pourquoi c’est incorrect: a thumbnailUrl avec aucun façon pour Google à récupérer le réel video
fichier est a thumbnail pointing à rien — a courant raison a résultat jamais apparaît.
Que faire à la place: provide contentUrl et/or embedUrl (les deux est meilleur) donc
Google a a réel chemin à le video.
Marking up a video Google ne peut pas explorer or indexer. Pourquoi c’est incorrect: données structurées décrit a video, il ne fait pas faire un accessible — markup ne peut pas rescue a video c’est behind a login, bloqué dans robots.txt, or chargé dans a façon le robot d’exploration ne peut pas voir. Que faire à la place: confirmer le video itself est crawlable et indexable avant worrying à propos de le schema; vérifier le Search Console Video indexation rapport à voir ce que Google en réalité indexé.
Stacking les deux key-moment mechanisms on un video.
Pourquoi c’est incorrect: ajout les deux automatic SeekToAction et manual Clip markup à le
même video est redundant et contradicts le “pick un” guidance — il invites
conflicting signaux à propos de où le chapters sont.
Que faire à la place: choisir SeekToAction (si votre URLs déjà accept a timestamp
parameter et vous êtes fine letting Google infer chapters) or Clip (si vous vouloir à
nom et bound chaque chapter yourself) — jamais les deux pour le même objectif.
Forgetting à fermer out a livestream.
Pourquoi c’est incorrect: leaving endDate unset, or stale, après a stream ends peut faire le
Actif badge linger on a video c’est ne … plus actif.
Que faire à la place: mettre à jour endDate on le BroadcastEvent as soon as le stream
ends, et appel le Indexation API donc le badge modifier propagates promptly.
Treating valide markup as a guaranteed résultat. Pourquoi c’est incorrect: as avec chaque rich-résultat type, syntactically valide VideoObject markup seulement rend lune page eligible — Google’s systèmes encore decide si à en réalité montrer le rich résultat. Que faire à la place: valider le markup, alors judge success par ce que en réalité montre dans recherche over temps, pas par le markup passing a tester alone.
Confirming a VideoObject modifier en réalité took effect
Réussir/échouer checks pour après vous ajouter or edit VideoObject (or Clip/BroadcastEvent) markup on une page.
Markup validates and montre as eligible
Tester à exécuter: Paste lune page URL dans Google’s
Résultats enrichis Tester.
Attendu résultat: Le tester detects a VideoObject élément, rapports il as eligible
pour video résultats enrichis, et montre aucun erreurs on name, thumbnailUrl, or
uploadDate.
Échec interpretation: A manquant-champ erreur on un de le three requis
properties signifie le rich résultat ne peut pas montrer à tout; a warning on a recommended
property (comme duration or embedUrl) ne va pas bloquer eligibility mais weakens le
résultat.
Monitoring window: Immediate — le tester parses le actif page’s markup on
requête.
Rollback trigger: Quelconque requis-champ erreur persisting après vous avez re-checked
le JSON-LD pour typos or a mauvais date format.
Key-moments mechanism resolves correctement
Tester à exécuter: Dans le même Résultats enrichis Tester résultat, vérifier si SeekToAction
or Clip (whichever vous implemented) est parsed sans erreurs, et que vous haven’t
accidentally shipped les deux.
Attendu résultat: Exactly un key-moments mechanism est detected et valide
clean.
Échec interpretation: Les deux mechanisms présent, or le choisi un throwing an
erreur, signifie le chapter timestamps probable ne va pas montrer sous le résultat.
Monitoring window: Immediate, à validation temps.
Rollback trigger: Le tester flags les deux SeekToAction et Clip on le même
video — supprimer un.
Google en réalité indexé the video
Structured-données eligibility imports Google’s séparé video-indexation requirements —
a syntactically valide VideoObject ne fait pas par itself prove le watch page, le
video, or son assets sont indexé. Vérifier chaque couche plutôt que treating un
Search Console status as le entier réponse:
- Watch page indexé. Lune page le video est embedded on a à être indexé on son propre merits premier — Google’s guidance est explicit que an indexé watch page encore ne fait pas guarantee le video itself obtient indexé.
- Video est le principal contenu, pas hidden. Le video nécessite à être embedded directement on le watch page (pas simplement lié à) et pas hidden behind autre elements or a paywall sans paywall données structurées.
- Assets sont fetchable à stable URLs. Le thumbnail et, si provided, le
contentUrl/embedUrltargets besoin à resolve à stable URLs Google peut repeatedly récupérer — frequently-changing CDN URLs sont a connu causer de videos falling out de le indexer.
Tester à exécuter: Vérifier le Video indexation rapport dans Search Console pour l’URL (or le property covering il). Attendu résultat: Le video est listed as indexé, pas flagged sous a non-indexé raison (e.g. explorer or robots blocking). Échec interpretation: A “pas indexé” status signifie le rich résultat ne peut pas apparaître regardless de comment clean le markup est — le video itself, pas le schema, est le blocker. Fonctionner via le three layers ci-dessus dans order (watch page, alors video placement, alors asset fetchability) plutôt que guessing. Monitoring window: Autoriser Search Console a quelques days à a couple de weeks à reflect a newly-published or newly-fixed video, since indexation rapports lag actif exploration. Rollback trigger: Le video stays non-indexé après a reasonable wait et a robots.txt/crawlability vérifier — investigate le video’s accessibility, pas le schema.
LIVE badge apparaît and clears on schedule
Tester à exécuter: Pour a livestream en utilisant BroadcastEvent, watch le résultat de recherche
during le actif window, alors à nouveau après endDate a réussi.
Attendu résultat: Le Actif badge montre pendant que le stream est actif et disappears
promptly après endDate est mis à jour et le Indexation API a été appelé.
Échec interpretation: A badge que lingers après le stream ends généralement signifie
endDate n’était pas mis à jour, or le Indexation API n’était pas appelé à propagate le modifier.
Monitoring window: Vérifier dans a quelques hours de le stream ending, since le
badge est time-sensitive dans a façon an on-demand video n’est pas.
Rollback trigger: Le badge est encore showing bien après endDate a réussi —
re-vérifier le BroadcastEvent valeurs et re-submit via le Indexation API.
Testez vos connaissances: VideoObject Schema
Five rapide questions on schema.org/VideoObject, le surfaces il reaches, clé moments, et le Actif badge. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.