Guide : VideoObject Schema
How to implement VideoObject schema pour Google's video résultats enrichis à travers search, the Video tab, Images, and Découvrir — requis vs. recommended properties, the two façons to ajouter clé moments (SeekToAction vs. Clip), and the BroadcastEvent LIVE badge.
Langues
VideoObject schema (schema.org/VideoObject) marks up une page's video so Google peut montrer video résultats enrichis — thumbnail, duration, and clé moments — à travers four surfaces, pas un: the principal résultats de recherche page, the Video tab, Google Images, and Google Découvrir. Que multi-surface reach is broader que la plupart personnes assume and rend ce un of the two highest-payoff rich-result types in the cluster (alongside Recipe). Seulement three properties are requis — nom, thumbnailUrl, and uploadDate — with contentUrl, description, duration, embedUrl, expires, interactionStatistic, and region eligibility tout recommended. Two fonctionnalités causer la plupart of the confusion. Clé moments (the chapter timestamps) peut be fait two façons: automatically via SeekToAction/potentialAction si votre video URLs déjà accept a timestamp parameter, or manually via Clip markup (nom, startOffset, and url are requis; endOffset is recommended) quand vous vouloir publisher-specified étiquettes and timestamps au lieu de Google's automatic picks. And the LIVE badge isn't a separate schema — it's BroadcastEvent (isLiveBroadcast, startDate, endDate — requis une fois you're ajout BroadcastEvent at tout) documented on the même page and utilisé alongside VideoObject. The la plupart courant miss is omitting uploadDate or writing it in an inconsistent date format. As toujours, valid markup seulement rend vous eligible — Google, and the video being crawlable, encore decide si it montre.
Evidence for this claim Schema.org VideoObject defines vocabulary for a video media object; being valid Schema.org does not by itself guarantee a Google video feature. Scope: Schema.org type definition, distinct from Google eligibility. Confidence: high · Verified: Schema.org: VideoObject Evidence for this claim Google's VideoObject documentation requires name, thumbnailUrl, and uploadDate for video structured-data eligibility and recommends additional properties. Scope: Current Google video structured data requirements; eligibility is not a display guarantee. Confidence: high · Verified: Google Search Central: Video structured dataTL;DR — VideoObject schema is code vous ajouter to une page with a video que étiquettes the video’s details pour moteur de recherches — “this is the title,” “ce is the thumbnail,” “ce is how long it is,” “it was uploaded on ce date.” Ajout it correctement rend the video eligible pour the richer listings vous voir on Google: a thumbnail and duration in the principal results, in the Video tab, in Images, and in Découvrir. It fait pas guarantee ceux extras montrer up, and Google encore has to be able to trouver and index the video itself.
Ce que VideoObject schema is
Quand vous regarder at une page with a video on it, vous pouvez tell the title from the runtime
from the thumbnail simplement by looking. A moteur de recherche sees une page of HTML and a video
player and has to fonctionner out qui video is the principal un and ce que it’s à propos de.
VideoObject schema spells it out in code, en utilisant the shared
schema.org vocabulary — it tags the video’s
name (title), its thumbnailUrl, the uploadDate, and usually a description,
duration, and l’URLs où the video fichier and its embed live.
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
The payoff is video résultats enrichis, and the surprising partie is how nombreux places ils montrer up. Google’s propre docs dire videos peut apparaître on the principal résultats de recherche page, in Video mode, in Google Images, and in Google Découvrir. La plupart personnes assume video schema seulement helps in the “videos” section — it’s en réalité four surfaces. A thumbnail and a runtime suivant to votre result stand out and 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 — the video’s title.
- thumbnailUrl — une URL to a representative thumbnail image.
- uploadDate — the date the video was premier publié.
Everything sinon — the description, the duration (so Google peut montrer “4:12”),
the contentUrl and embedUrl — is recommended, pas requis, but ajout les
rend pour a beaucoup richer, plus reliable result.
Two fonctionnalités you’ll hear à propos de
- Clé moments are the little chapter liens (“Intro,” “Ingredients,” “Assembly”) que let searchers jump into the middle of a video. Vous pouvez ajouter ces — là are two différent façons, covered in the Avancé tab.
- The LIVE badge — que red “LIVE” étiquette on livestreams — is ajouté with a
connexe bit of markup appelé
BroadcastEvent. Aussi in Avancé.
The chose la plupart personnes obtenir incorrect
The unique la plupart courant miss is leaving out uploadDate, or writing it in a
sloppy date format. It’s un of seulement three requis fields, so skipping it signifie
aucun rich result at tout. And remember: même perfect markup seulement rend the video
eligible — Google encore decides si to montrer it, and it has to be able to
explorer and index the réel video.
Vouloir the complet version — the recommended properties, the two façons to do clé moments, the LIVE badge, and the Erreurs fréquentes? Switch to the Avancé tab.
Evidence for this claim Schema.org VideoObject defines vocabulary for a video media object; being valid Schema.org does not by itself guarantee a Google video feature. Scope: Schema.org type definition, distinct from Google eligibility. Confidence: high · Verified: Schema.org: VideoObject Evidence for this claim Google's VideoObject documentation requires name, thumbnailUrl, and uploadDate for video structured-data eligibility and recommends additional properties. Scope: Current Google video structured data requirements; eligibility is not a display guarantee. Confidence: high · Verified: Google Search Central: Video structured dataTL;DR —
schema.org/VideoObjectmarkup (usually JSON-LD) rend a video eligible pour video résultats enrichis à travers four Google surfaces — principal search, the Video tab, Google Images, and Google Découvrir. Requis:name,thumbnailUrl,uploadDate. Recommended:contentUrl,description,duration,embedUrl,expires,interactionStatistic, andregionsAllowed/ineligibleRegion. Clé moments have two mechanisms — automatic viaSeekToAction/potentialAction(si votre URLs accept a timestamp parameter Google peut infer) or manual viaClip(name,startOffset, andurlrequis per chapter;endOffsetrecommended). The LIVE badge isBroadcastEvent(isLiveBroadcast,startDate,endDate) utilisé alongside VideoObject, documented on the même page — pas a separate system. The la plupart courant miss is omittinguploadDateor en utilisant an inconsistent date format. Valid markup seulement earns eligibility; Google encore decides si to montrer it, and the video has to be crawlable and indexable. Ce is un of the two highest-payoff types in the cluster alongside Recipe — worth doing correctement.
Ce que VideoObject schema fait — un markup, four surfaces
La plupart guides flatten VideoObject into “get a thumbnail in search.” The reach is
wider que que, and it’s worth leading with parce que it changements the ROI calculation.
Google’s propre framing: “Videos peut apparaître in several différent places on Google,
notamment the principal résultats de recherche page, Video mode, Google Images, and Google
Découvrir.” That’s four distinct surfaces from un block of markup — qui is pourquoi I
rank ce, with Recipe, as un of the two genuinely high-payoff types in the whole
structured-data cluster. (It’s aucun coincidence the two overlap: nombreux Recipe pages
embed a cooking video via the recipe’s video property, and que video is itself a
VideoObject.)
The vocabulary is schema.org/VideoObject, and Google’s Video guide covers three
connexe types on a unique page: VideoObject itself, Clip (clé moments), and
BroadcastEvent (the LIVE badge). Worth knowing: là is aucun separate
“media-clip” doc page — l’URL vous pourrait guess at renvoie a 404. Clip and segment
markup pour video is folded into the même Video guide as VideoObject, so don’t go
hunting pour a dedicated page que doesn’t exist.
Requis vs. recommended properties
Requis — the minimum pour quelconque video rich result:
| Property | Ce que c’est |
|---|---|
name | The video’s title |
thumbnailUrl | URL to a representative thumbnail image |
uploadDate | The date the video was 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 to the media fichier — helps Google récupérer the video |
description | The video’s description (plain text) |
duration | ISO 8601 duration (e.g. PT4M12S) — powers the runtime badge |
embedUrl | URL to the player embed |
expires | Quand the video is ne … plus disponible (omit si it doesn’t expire) |
interactionStatistic | View count via WatchAction interaction type |
regionsAllowed / ineligibleRegion | Où the video may / may pas be affiché |
Provide soit contentUrl or embedUrl (les deux is meilleur) so Google has a
façon to reach the réel video — a thumbnail with aucun reachable video is a courant
raison a result jamais apparaît. The three URLs que come up ici ne sont pas
interchangeable: contentUrl is the video file’s réel content bytes (Google’s
propre docs appel it the la plupart effective façon pour Google to récupérer the video); embedUrl
is the player, pas the fichier; and neither un is the watch page URL — lune page
the video is embedded on. A courant mistake is pointing contentUrl at the watch
page au lieu de the raw media fichier.
Clé moments: SeekToAction vs. Clip
Clé moments are the chapter-style deep liens sous a video result que jump the viewer to a spécifique timestamp. Là are two mechanisms, and confusing les is the unique biggest source of implementation trouble on ce type.
1. Automatic — SeekToAction / potentialAction. Vous tell Google, via a
potentialAction of type SeekToAction, l’URL pattern votre player uses to jump
to a timestamp (the startOffset-input placeholder). Si votre video URLs déjà
accept a timestamp parameter, Google peut infer the clé moments itself from votre
on-page chapter structure. Utiliser ce quand votre Structure d’URL supports timestamps and
you’re happy letting Google pick the 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 table splits ce the même façon as VideoObject itself: requis —
name, startOffset (in seconds), and a url que deep-links to que moment;
recommended — endOffset (in seconds), so the clip has a défini fin as bien as
a commencer. Utiliser ce quand vous vouloir to supply votre propre étiquettes and timestamps plutôt
que the 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"
}
]
}Qui to utiliser? Automatic SeekToAction is moins fonctionner si votre URLs déjà
prise en charge timestamp parameters and vous trust Google to pick the moments. Manual Clip
is the correct appel quand vous vouloir to nom and bound chaque chapter yourself. Don’t stack
les deux mechanisms pour the même objectif on the même video — pick un. The decision tree
in the Resources groupe walks ce fork.
LIVE badges with BroadcastEvent
Pour livestreams, the red LIVE badge is enabled by ajout a BroadcastEvent to
votre VideoObject via the publication property. It is pas a separate,
unrelated schema type — it’s documented on the même Video guide and layered onto the
VideoObject vous déjà have. BroadcastEvent as a whole isn’t requis pour a plain
video rich result, but une fois vous ajouter it pour the LIVE badge, Google’s Clip-style table
treats isLiveBroadcast, startDate, and endDate as requis ensemble:
isLiveBroadcast: truestartDate— quand the broadcast starts or is scheduled to commencer. AstartDatein the future signals a scheduled broadcast; in the past or présent, it signals the stream has en réalité commencé.endDate— quand it ends or is attendu to fin. Google is explicit que une fois the stream has en réalité finished, vous doit mettre à jourendDateto a réel valeur — anendDatein the future signals a scheduled fin, in the past or présent it signals the stream has ended. Si vous don’t know the fin temps up front, an approximateendDateis fine to commencer; simplement correct it une fois the stream en réalité wraps.
Nesting startDate/endDate ce façon lets Google infer three lifecycle states —
scheduled, live, ended — from the même two fields, qui is aussi pourquoi a stale
endDate (pas corrected après the stream arrête) is the principal façon a lingering LIVE
badge se produit. None of ce guarantees the badge apparaît at quelconque particulier temps;
it seulement supplies the timing Google’s systems utiliser to 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 to appel Google’s Indexation API pour livestream videos so the LIVE badge apparaît and disappears in a timely façon — the badge is time-sensitive in a façon a normal on-demand video isn’t.
Courant implementation mistakes
- Omitting
uploadDateor en utilisant a sloppy date format. It’s un of seulement three requis fields. Utiliser a consistent ISO 8601 valeur (a complet date-time with offset is safest). Ce is the unique la plupart courant miss on the type. - A thumbnail with aucun reachable video. Provide
contentUrland/orembedUrlso Google peut en réalité récupérer the video the thumbnail represents. - Marking up a video que Google can’t explorer or index. Données structurées can’t rescue a video hidden behind a login, blocked in robots.txt, or chargé in a façon the robot d’exploration can’t voir. Markup describes the video; it doesn’t faire it accessible.
- Stacking les deux key-moment mechanisms. Pick automatic
SeekToActionor manualClippour a donné video, pas les deux. - Forgetting to fermer out a livestream. Définir
endDateand mettre à jour the markup une fois the stream ends, or the LIVE badge peut linger. - Treating valid markup as a guaranteed result. As with every rich-result type, valid VideoObject markup seulement rend lune page eligible — Google’s systems encore decide si to montrer it.
Où ce sits, and video SEO plus broadly
VideoObject is the structured-data couche pour video, and it lives ici alongside its siblings — Recipe (whose pages so souvent embed a cooking video) and Article (où a video is embedded à l’intérieur a written piece, and the VideoObject describes que embed). But the markup is seulement un slice of getting video to perform in search: hosting, sitemaps, thumbnails, transcripts, vitesse de page autour the player, and how vous embed tout matter aussi. Ceux broader video SEO topics sit outside ce structured-data article — ce page is deliberately scoped to the schema itself.
Pour où VideoObject fits in the wider structured-data picture, voir the Schema Markup and 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 (usually JSON-LD) que étiquettes a page’s video — title, thumbnail, upload date, duration, and the video/embed URLs — so moteur de recherches peut produce video résultats enrichis. - Four surfaces, pas un: the même markup peut surface on the principal search results page, the Video tab, Google Images, and Google Découvrir. Ce breadth is pourquoi it’s un of the two highest-payoff types in the cluster (with Recipe).
- Requis:
name,thumbnailUrl,uploadDate. Recommended:contentUrl,description,duration,embedUrl,expires,interactionStatistic,regionsAllowed/ineligibleRegion. SupplycontentUrland/orembedUrlso Google peut reach the video. - Clé moments — two 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 and timestamps au lieu de Google’s automatic picks. Utiliser un mechanism, pas les deux, pour a donné video. - URL roles:
contentUrl(video bytes) andembedUrl(the player) ne sont pas the watch page URL — provide au moins un so Google peut reach the réel video. - LIVE badge:
BroadcastEvent(isLiveBroadcast,startDate,endDate— requis ensemble une fois vous ajouterBroadcastEventat tout) ajouté to VideoObject viapublication— documented on the même Video guide, pas a separate system.startDate/endDatein the future signal scheduled/attendu times; in the past or présent ils signal the stream has en réalité commencé/ended — mettre à jourendDateune fois it really ends. Livestreams aussi besoin the Indexation API pour timely badge updates. - Aucun media-clip doc page: the guessable
/media-clipURL is a 404 — Clip markup is folded into the unique Video guide alongside VideoObject and BroadcastEvent. - La plupart courant miss: omitting
uploadDateor writing it in an inconsistent date format — it’s un of seulement three requis fields. - Eligibility ≠ afficher: valid markup + a crawlable, indexable video + Google deciding it’s worth showing. Markup seulement rend vous eligible.
- Scope: VideoObject is the schema couche seulement; broader video SEO (hosting, sitemaps, thumbnails, embeds) is a separate topic.
Documentation officielle
Primary-source documentation from the moteur de recherches.
Google — Video données structurées
- Video (VideoObject, Clip, BroadcastEvent) données structurées — the unique authoritative guide covering tout three types: VideoObject requis/recommended properties, clé moments (SeekToAction and Clip), and the BroadcastEvent LIVE badge. Remarque là is aucun separate media-clip page — Clip markup lives ici.
- Video SEO meilleur practices — the separate indexing-requirements guide (watch page, video placement, stable asset URLs) que structured-data eligibility dépend on.
- Search gallery (rich result types) — où video résultats enrichis sit among Google’s pris en charge enhancements.
- Résultats enrichis Tester — validate the markup and vérifier video rich-result eligibility.
- Video indexation report (Search Console) — how Google reports si it indexé votre videos, and pourquoi some aren’t indexé.
Bing / Microsoft
- Marking up votre site with données structurées — Bing’s general structured-data prise en charge (schema.org, JSON-LD recommended).
Quotes from the source
On-the-record statements from Google. Où a source page exposes the text, the lien is a deep lien que jumps to the quoted passage.
Google docs — the multi-surface reach
- “Videos can appear in several different places on Google, including the main search results page, Video mode, Google Images, and Google Discover.” Jump to quote
Que unique sentence is the raison to prioritize ce type: four surfaces, un block of markup. La plupart guides seulement mention the Video tab.
Remarque: Aucun VideoObject-specific on-record quote from a Google rep surfaced pour ce article, and aucun Patrick Stox content on VideoObject specifically. Plutôt que invent a type-specific rep quote, the honest framing to carry over from every autre schema type s’applique ici: valid données structurées is an eligibility signal, pas a ranking factor — Google decides si to 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 and/or embedUrl so Google peut reach the réel video —
contentUrl is the video’s bytes, embedUrl is the player, and neither is the
watch page URL.
Clé moments — the two mechanisms comparé
Automatic (SeekToAction) | Manual (Clip) | |
|---|---|---|
| How | potentialAction → SeekToAction with a timestamp URL pattern | hasPart → Clip per chapter |
| Requis properties | target URL + startOffset-input | name, startOffset, url |
| Recommended properties | — | endOffset |
| Who picks the moments | Google infers les from votre page | Vous define les explicitly |
| Requirement | Votre URLs doit accept a timestamp parameter | Deep-link URL per clip |
| Utiliser quand | URLs déjà prise en charge timestamps; happy to let Google choisir | Vous vouloir to supply votre propre étiquettes and 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 ajouterBroadcastEventat tout.startDate/endDatein the future = scheduled/attendu; in the past or présent = en réalité commencé/ended.- Layered onto VideoObject, même guide — pas a separate schema.
- Appel the Indexation API pour timely badge updates; définir
endDateto a réel valeur une fois the stream en réalité ends (an approximateendDatebeforehand is fine).
Fast facts
- Format: JSON-LD (recommended).
- Aucun separate media-clip doc page — Clip is folded into the Video guide (
/media-clipis a 404). - La plupart courant miss: omitting
uploadDateor a sloppy date format. - Valid markup = eligible, pas guaranteed; the video doit be crawlable/indexable.
Clé moments: automatic SeekToAction or manual Clip?
Si vous vouloir the chapter-style timestamps sous votre video result, là are two façons to do it. Fonctionner bas the questions to trouver the correct un pour votre setup.
Which key-moments mechanism should I use?
Rule of thumb: automatic SeekToAction is moins fonctionner si votre URLs déjà
prise en charge timestamps and vous trust Google to choisir the moments; manual Clip is the
correct appel quand vous vouloir to author chaque chapter’s étiquette and timestamps yourself.
Jamais stack les deux mechanisms on the même video.
VideoObject mistakes to éviter
Concrete implementation mistakes on VideoObject, drawn from the common-mistakes liste in the Avancé tab — pourquoi chaque is incorrect and Que faire à la place.
Omitting uploadDate, or en utilisant a sloppy date format.
Pourquoi it’s incorrect: uploadDate is un of seulement three requis properties (with name
and thumbnailUrl). Skip it, or écrire it inconsistently, and the video isn’t
eligible pour a rich result at tout — it’s the 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 with a timezone offset is the safest format).
Shipping a thumbnail with aucun reachable video.
Pourquoi it’s incorrect: a thumbnailUrl with aucun façon pour Google to récupérer the réel video
fichier is a thumbnail pointing at nothing — a courant raison a result jamais apparaît.
Que faire à la place: provide contentUrl and/or embedUrl (les deux is meilleur) so
Google has a réel chemin to the video.
Marking up a video Google can’t explorer or index. Pourquoi it’s incorrect: données structurées describes a video, it doesn’t faire un accessible — markup can’t rescue a video that’s behind a login, blocked in robots.txt, or chargé in a façon the robot d’exploration can’t voir. Que faire à la place: confirmer the video itself is crawlable and indexable avant worrying à propos de the schema; vérifier the Search Console Video indexation report to voir ce que Google en réalité indexé.
Stacking les deux key-moment mechanisms on un video.
Pourquoi it’s incorrect: ajout les deux automatic SeekToAction and manual Clip markup to the
même video is redundant and contradicts the “pick one” guidance — it invites
conflicting signals à propos de où the chapters are.
Que faire à la place: choisir SeekToAction (si votre URLs déjà accept a timestamp
parameter and you’re fine letting Google infer chapters) or Clip (si vous vouloir to
nom and bound chaque chapter yourself) — jamais les deux pour the même objectif.
Forgetting to fermer out a livestream.
Pourquoi it’s incorrect: leaving endDate unset, or stale, après a stream ends peut faire the
LIVE badge linger on a video that’s ne … plus live.
Que faire à la place: mettre à jour endDate on the BroadcastEvent as soon as the stream
ends, and appel the Indexation API so the badge modifier propagates promptly.
Treating valid markup as a guaranteed result. Pourquoi it’s incorrect: as with every rich-result type, syntactically valid VideoObject markup seulement rend lune page eligible — Google’s systems encore decide si to en réalité montrer the rich result. Que faire à la place: validate the markup, alors judge success by ce que en réalité montre in search over temps, pas by the 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 to run: Paste lune page URL into Google’s
Résultats enrichis Tester.
Attendu result: The tester detects a VideoObject item, reports it as eligible
pour video résultats enrichis, and montre aucun errors on name, thumbnailUrl, or
uploadDate.
Échec interpretation: A missing-field error on un of the three requis
properties signifie the rich result can’t montrer at tout; a warning on a recommended
property (comme duration or embedUrl) won’t block eligibility but weakens the
result.
Monitoring window: Immediate — the tester parses the live page’s markup on
requête.
Rollback trigger: Quelconque required-field error persisting après you’ve re-checked
the JSON-LD pour typos or a bad date format.
Key-moments mechanism resolves correctement
Tester to run: In the même Résultats enrichis Tester result, vérifier si SeekToAction
or Clip (whichever vous implemented) is parsed sans errors, and que vous haven’t
accidentally shipped les deux.
Attendu result: Exactly un key-moments mechanism is detected and validates
clean.
Échec interpretation: Les deux mechanisms présent, or the choisi un throwing an
error, signifie the chapter timestamps probable won’t montrer sous le résultat.
Monitoring window: Immediate, at validation temps.
Rollback trigger: The tester flags les deux SeekToAction and Clip on the même
video — supprimer un.
Google en réalité indexé the video
Structured-data eligibility imports Google’s separate video-indexing requirements —
a syntactically valid VideoObject doesn’t by itself prove the watch page, the
video, or its assets are indexé. Vérifier chaque couche plutôt que treating un
Search Console status as the whole réponse:
- Watch page indexé. Lune page the video is embedded on has to be indexé on its propre merits premier — Google’s guidance is explicit que an indexé watch page encore doesn’t guarantee the video itself obtient indexé.
- Video is the principal content, pas hidden. The video nécessite to be embedded directement on the watch page (pas simplement lié to) and pas hidden behind autre elements or a paywall sans paywall données structurées.
- Assets are fetchable at stable URLs. The thumbnail and, si provided, the
contentUrl/embedUrltargets besoin to resolve at stable URLs Google peut repeatedly récupérer — frequently-changing CDN URLs are a connu causer of videos falling out of the index.
Tester to run: Vérifier the Video indexation report in Search Console pour l’URL (or the property covering it). Attendu result: The video is listed as indexé, pas flagged sous a non-indexed raison (e.g. explorer or robots blocking). Échec interpretation: A “not indexed” status signifie the rich result can’t apparaître regardless of how clean the markup is — the video itself, pas the schema, is the blocker. Fonctionner via the three layers ci-dessus in order (watch page, alors video placement, alors asset fetchability) plutôt que guessing. Monitoring window: Autoriser Search Console a few days to a couple of weeks to reflect a newly-published or newly-fixed video, since indexation reports lag live exploration. Rollback trigger: The video stays non-indexed après a reasonable wait and a robots.txt/crawlability vérifier — investigate the video’s accessibility, pas the schema.
LIVE badge apparaît and clears on schedule
Tester to run: Pour a livestream en utilisant BroadcastEvent, watch the résultat de recherche
during the live window, alors à nouveau après endDate has réussi.
Attendu result: The LIVE badge montre pendant que the stream is live and disappears
promptly après endDate is mis à jour and the Indexation API has been appelé.
Échec interpretation: A badge que lingers après the stream ends usually signifie
endDate wasn’t mis à jour, or the Indexation API wasn’t appelé to propagate the modifier.
Monitoring window: Vérifier dans a few hours of the stream ending, since the
badge is time-sensitive in a façon an on-demand video isn’t.
Rollback trigger: The badge is encore showing bien après endDate has réussi —
re-check the BroadcastEvent valeurs and re-submit via the Indexation API.
Testez vos connaissances: VideoObject Schema
Five rapide questions on schema.org/VideoObject, the surfaces it reaches, clé moments, and the LIVE 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.