Hướng dẫn về VideoObject Schema

Cách implement VideoObject schema cho Google video rich kết quả trên tìm kiếm, đó Video tab, Images, và Discover — bắt buộc so với. được khuyến nghị properties, đó hai ways để thêm key moments (SeekToAction so với. Clip), và đó BroadcastEvent TRỰC TIẾP badge.

Xuất bản lần đầu: 1 thg 7, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ

VideoObject schema (schema.org/VideoObject) marks lên một trang video so Google có thể cho thấy video rich kết quả — thumbnail, duration, và key moments — trên four surfaces, không một: đó main kết quả tìm kiếm trang, đó Video tab, Google Images, và Google Discover. Đó multi-surface reach là rộng hơn hầu hết mọi người assume và làm này một of đó hai highest-payoff rich-kết quả types trong đó cluster (alongside Recipe). Chỉ three properties là bắt buộc — name, thumbnailUrl, và uploadDate — với contentUrl, mô tả, duration, embedUrl, expires, interactionStatistic, và region eligibility all được khuyến nghị. Hai features nguyên nhân hầu hết of đó confusion. Key moments (đó chapter timestamps) có thể là đã xong hai ways: tự động qua SeekToAction/potentialAction nếu của bạn video URLs đã accept một timestamp parameter, hoặc manually qua Clip markup (name, startOffset, và url là bắt buộc; endOffset là được khuyến nghị) khi bạn muốn publisher-specified labels và timestamps thay vì Google tự động picks. Và đó TRỰC TIẾP badge không một tách biệt schema — đây là BroadcastEvent (isLiveBroadcast, startDate, endDate — bắt buộc khi bạn là thêm BroadcastEvent tại all) được ghi lại on đó cùng trang và dùng alongside VideoObject. Đó hầu hết phổ biến miss là omitting uploadDate hoặc writing điều này trong an inconsistent date format. As luôn, hợp lệ markup chỉ làm bạn eligible — Google, và đó video đang crawlable, vẫn decide liệu điều này cho thấy.

Tóm tắt — schema.org/VideoObject markup (thường JSON-LD) làm video eligible cho video rich kết quả trên four Google surfaces — main tìm kiếm, Video tab, Google Images, và Google Discover. Bắt buộc: name, thumbnailUrl, uploadDate. Được khuyến nghị: contentUrl, description, duration, embedUrl, expires, interactionStatistic, và regionsAllowed/ineligibleRegion. mấu chốt moments có hai mechanisms — tự động qua SeekToAction/potentialAction (nếu của bạn các URL accept timestamp parameter Google có thể infer) hoặc manual qua Clip (name, startOffset, và url bắt buộc theo chapter; endOffset được khuyến nghị). TRỰC TIẾP badgeBroadcastEvent (isLiveBroadcast, startDate, endDate) được sử dụng alongside VideoObject, được ghi lại on giống nhau trang — không tách biệt hệ thống. phần lớn phổ biến miss là omitting uploadDate hoặc sử dụng inconsistent date format. Hợp lệ markup chỉ earns eligibility; Google vẫn decides liệu để hiển thị nó, và video có để là crawlable và indexable. Đây là một của hai highest-payoff types trong cluster alongside Recipe — worth đang làm properly.

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 data

Điều gì VideoObject schema làm — một markup, four surfaces

Hầu hết các hướng dẫn flatten VideoObject vào “get a thumbnail in search.” (bản dịch) «nhận một thumbnail trong tìm kiếm.» Đó reach là wider hơn đó, và đây là worth leading với vì điều này thay đổi đó ROI calculation. Google own cách diễn đạt: “Videos can appear in several different places on Google, including the main search results page, Video mode, Google Images, and Google Discover.” (bản dịch) «Videos có thể xuất hiện trong several khác nhau places on Google, including đó main kết quả tìm kiếm trang, Video chế độ, Google Images, và Google Discover.» đó là four distinct surfaces từ một block of markup — mà là vì sao I xếp hạng này, với Recipe, as một of đó hai genuinely cao-payoff types trong đó toàn bộ structured-dữ liệu cluster. (đây là không coincidence đó hai overlap: nhiều Recipe các trang embed một cooking video qua đó recipe video thuộc tính, và đó video là itself một VideoObject.)

vocabulary là schema.org/VideoObject, và Google Video hướng dẫn covers three related types on single trang: VideoObject itself, Clip (mấu chốt moments), và BroadcastEvent ( TRỰC TIẾP badge). Worth knowing: có không tách biệt “media-clip” doc trang — URL bạn có thể guess tại trả về 404. Clip và segment markup cho video là folded vào giống nhau Video hướng dẫn as VideoObject, so không go hunting cho dedicated trang đó không exist.

Bắt buộc so với. được khuyến nghị properties

Bắt buộc — minimum cho bất kỳ video rich kết quả:

Thuộc tínhĐiều gì nó là
namevideo tiêu đề
thumbnailUrlURL để representative thumbnail image
uploadDatedate video là đầu tiên published (ISO 8601)

Được khuyến nghị — thêm as nhiều as apply; họ làm kết quả richer và nhiều hơn reliable:

Thuộc tínhVì sao điều này quan trọng
contentUrlTrực tiếp URL để media file — helps Google fetch video
descriptionvideo mô tả (đơn giản text)
durationISO 8601 duration (e.g. PT4M12S) — powers runtime badge
embedUrlURL để player embed
expiresKhi video là không lâu hơn khả dụng (omit nếu nó không expire)
interactionStatisticView count qua WatchAction interaction loại
regionsAllowed / ineligibleRegionnơi video có thể / có thể không là shown

cung cấp either contentUrl hoặc embedUrl (cả hai là tốt hơn) so Google có way để reach thực tế video — thumbnail với không reachable video là phổ biến reason kết quả không bao giờ xuất hiện. three các URL đó come lên ở đây không phải interchangeable: contentUrl là video file thực tế nội dung bytes (Google own tài liệu call nó phần lớn effective way cho Google để fetch video); embedUrl là player, không file; và neither một là watch trang URL — trang video là embedded on. phổ biến mistake là pointing contentUrl tại watch trang thay vì thô media file.

Evidence for this claim 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. Scope: web Confidence: high · Verified: Video structured data

mấu chốt moments: SeekToAction so với. Clip

mấu chốt moments là chapter-style deep links dưới video kết quả đó jump viewer để cụ thể timestamp. có hai mechanisms, và confusing them là single biggest nguồn của implementation trouble on điều này loại.

1. Tự động — SeekToAction / potentialAction. bạn tell Google, qua potentialAction của loại SeekToAction, URL pattern của bạn player dùng để jump để timestamp ( startOffset-input placeholder). nếu của bạn video các URL đã accept timestamp parameter, Google có thể infer Điểm mấu chốt moments itself từ của bạn on-trang chapter structure. sử dụng điều này Khi của bạn URL structure hỗ trợ timestamps và bạn’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. bạn define mỗi chapter explicitly as Clip. Google Clip bảng splits điều này giống nhau way as VideoObject itself: bắt buộcname, startOffset (trong seconds), và url đó deep-links để đó moment; được khuyến nghịendOffset (trong seconds), so clip có được định nghĩa end cũng như bắt đầu. sử dụng điều này Khi bạn muốn để supply của bạn own labels và timestamps rather hơn moments Google tự động detection sẽ nếu không 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"
    }
  ]
}

Mà để sử dụng? Tự động SeekToAction là ít hơn hoạt động nếu của bạn các URL đã hỗ trợ timestamp parameters và bạn trust Google để pick moments. Manual Clip là right call Khi bạn muốn để name và bound mỗi chapter yourself. không stack cả hai mechanisms cho giống nhau purpose on giống nhau video — pick một. cây quyết định trong các tài nguyên group walks điều này fork.

TRỰC TIẾP badges với BroadcastEvent

cho livestreams, red TRỰC TIẾP badge là enabled by thêm BroadcastEvent để của bạn VideoObject qua publication thuộc tính. nó là không tách biệt, unrelated schema loại — nó được ghi lại on giống nhau Video hướng dẫn và layered onto VideoObject bạn đã có. BroadcastEvent as toàn bộ không phải bắt buộc cho đơn giản video rich kết quả, nhưng sau khi bạn thêm nó cho TRỰC TIẾP badge, Google Clip-style bảng xử lý isLiveBroadcast, startDate, và endDate as bắt buộc together:

  • isLiveBroadcast: true
  • startDate — Khi broadcast bắt đầu hoặc là scheduled để bắt đầu. startDate trong tương lai các tín hiệu scheduled broadcast; trong past hoặc present, nó các tín hiệu stream có thực ra đã bắt đầu.
  • endDate — Khi nó ends hoặc là dự kiến để end. Google là rõ ràng đó sau khi stream có thực ra finished, bạn phải cập nhật endDate để thực giá trị — endDate trong tương lai các tín hiệu scheduled end, trong past hoặc present nó các tín hiệu stream có ended. nếu bạn không know end time lên front, approximate endDate là fine để bắt đầu; chỉ đúng nó sau khi stream thực ra wraps.

Nesting startDate/endDate điều này way lets Google infer three lifecycle trạng thái — scheduled, trực tiếp, ended — từ giống nhau hai các trường, mà là cũng Vì sao stale endDate (không corrected sau khi stream dừng) là main way lingering TRỰC TIẾP badge happens. None của điều này bảo đảm badge xuất hiện tại bất kỳ particular time; nó chỉ supplies timing Google các hệ thống sử dụng để quyết định.

{
  "@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"
  }
}

bạn cũng cần để call Google lập chỉ mục API cho livestream videos so TRỰC TIẾP badge xuất hiện và disappears trong timely way — badge là nhạy cảm với thời gian trong way thông thường on-demand video không phải.

phổ biến implementation mistakes

  • Omitting uploadDate hoặc sử dụng sloppy date format. nó một của chỉ three bắt buộc các trường. sử dụng consistent ISO 8601 giá trị ( đầy đủ date-time với offset là safest). Đây là single phần lớn phổ biến miss on loại.
  • ** thumbnail với không reachable video.** cung cấp contentUrl và/hoặc embedUrl so Google có thể thực ra fetch video thumbnail represents.
  • Marking lên video đó Google có thể’t crawl hoặc chỉ mục. Dữ liệu có cấu trúc có thể’t rescue video hidden behind login, blocked trong robots.txt, hoặc loaded trong way crawler có thể’t see. Markup mô tả video; nó không làm nó accessible.
  • Stacking cả hai mấu chốt-moment mechanisms. Pick tự động SeekToAction hoặc manual Clip cho được cho video, không cả hai.
  • Forgetting để close out livestream. đặt endDate và cập nhật markup sau khi stream ends, hoặc TRỰC TIẾP badge có thể linger.
  • Treating hợp lệ markup as guaranteed kết quả. As với mỗi rich-kết quả loại, hợp lệ VideoObject markup chỉ làm trang eligible — Google các hệ thống vẫn quyết định liệu để hiển thị nó.

nơi điều này sits, và video SEO nhiều hơn broadly

VideoObject là structured-dữ liệu layer cho video, và nó lives ở đây alongside của nó siblings — Recipe (whose các trang so thường embed cooking video) và Bài viết (nơi video là embedded bên trong được viết piece, và VideoObject mô tả đó embed). nhưng markup là chỉ một slice của getting video để perform trong tìm kiếm: hosting, sitemaps, thumbnails, transcripts, trang speed khoảng player, và Cách bạn embed all quan trọng cũng. những điều đó rộng hơn video SEO topics sit bên ngoài điều này structured-dữ liệu bài viết — điều này trang là có chủ ý scoped để schema itself.

cho nơi VideoObject fits trong wider structured-dữ liệu picture, see Schema MarkupDữ liệu có cấu trúc hubs điều này bài viết nests dưới.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.