视频 VideoObject:缩略图、关键时刻与视频富媒体结果
视频结构化数据决定了你的视频能否在 Google 搜索、视频标签页、Google 探索里以缩略图卡片出现,甚至在结果中直接标出「关键时刻」让用户跳到感兴趣的片段。核心很简单:给每个真实嵌在页面上的视频提供清晰的名称、缩略图和上传日期,再按需要补上可播放地址、时长和关键时刻。
VideoObject 是什么#
VideoObject 描述页面上的一个视频。Google 用它生成视频富媒体结果:缩略图、标题、时长、上传日期,以及可选的关键时刻和直播徽章。前提是页面上确实有这个视频,并且 Google 能抓到它的缩略图与播放地址。
官方文档入口:Google Search Central:Video (VideoObject) structured data。
必填与推荐字段#
| 字段 | 必填 | 说明 |
|---|---|---|
name | 必填 | 视频标题 |
thumbnailUrl | 必填 | 可抓取的缩略图,建议多比例高分辨率 |
uploadDate | 必填 | ISO 8601 日期/日期时间,建议带时区 |
description | 推荐 | 视频简介,与页面可见描述一致 |
contentUrl | 推荐 | 原始视频文件地址 |
embedUrl | 推荐 | 可嵌入播放器地址(至少 content/embed 二选一) |
duration | 推荐 | ISO 8601 时长,如 PT1M30S |
expires | 视情况 | 视频过期时间,过期内容才需要 |
基础 JSON-LD 示例#
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "5 分钟搞懂结构化数据",
"description": "用一个例子讲清 JSON-LD 如何帮助搜索引擎理解页面。",
"thumbnailUrl": [
"https://example.com/thumbs/sd-1x1.jpg",
"https://example.com/thumbs/sd-4x3.jpg",
"https://example.com/thumbs/sd-16x9.jpg"
],
"uploadDate": "2026-06-24T08:00:00+08:00",
"duration": "PT5M12S",
"contentUrl": "https://example.com/videos/structured-data.mp4",
"embedUrl": "https://example.com/embed/structured-data"
}
contentUrl 与 embedUrl#
| 字段 | 指向 | 注意 |
|---|---|---|
contentUrl | 原始视频文件(.mp4 等) | Googlebot 要能直接访问 |
embedUrl | 可嵌入的播放器地址 | 是 iframe 的 src,不是页面地址 |
至少提供其一,能同时提供更好。两者都要确保未被 robots.txt 屏蔽,否则 Google 无法确认视频真实存在。
关键时刻(Key Moments)#
关键时刻让搜索结果直接列出视频内的片段,用户点击可跳到对应时间点。两种实现方式,二选一:
方式一:Clip——你自己定义每段。
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "结构化数据全流程",
"thumbnailUrl": "https://example.com/thumbs/full-16x9.jpg",
"uploadDate": "2026-06-24T08:00:00+08:00",
"duration": "PT12M",
"contentUrl": "https://example.com/videos/full.mp4",
"hasPart": [
{
"@type": "Clip",
"name": "什么是 JSON-LD",
"startOffset": 30,
"endOffset": 180,
"url": "https://example.com/watch?v=full&t=30"
},
{
"@type": "Clip",
"name": "如何验证",
"startOffset": 181,
"url": "https://example.com/watch?v=full&t=181"
}
]
}
方式二:SeekToAction——告诉 Google 你的时间戳 URL 结构,由它自动识别关键时刻(常配合视频描述里的章节时间戳使用)。两种方式不要同时用在同一视频上。
直播徽章 BroadcastEvent#
正在直播的视频可以通过在 VideoObject 中嵌套 publication(BroadcastEvent)获得「LIVE」徽章,关键是 isLiveBroadcast 为 true 并提供 startDate、endDate。直播开始前、进行中、结束后要相应更新这些字段。此外还需调用 Indexing API 通知 Google 直播状态变化。
时间与日期格式#
duration用 ISO 8601 时长:PT1M30S、PT2H5M;uploadDate、startDate、endDate用 ISO 8601 日期/日期时间,建议带时区,如2026-06-24T08:00:00+08:00;- 不要写中文日期或省略时区导致歧义。
本站为什么暂不实装 VideoObject#
本页是图文教程,没有嵌入真实视频。给一篇没有视频的页面标 VideoObject,会被判定为标记了不存在的内容。
验证和监控#
- 用 Rich Results Test 检查必填字段。
- 确认 thumbnailUrl、contentUrl/embedUrl 都未被 robots.txt 屏蔽。
- 核对 name、description、上传日期与页面可见内容一致。
- 用了关键时刻时,确认 Clip 的 url 能跳到对应时间点。
- 上线后在 Search Console 的视频增强报告里监控无效项;视频站点建议提供视频站点地图。
常见错误#
| 错误 | 为什么危险 | 修正 |
|---|---|---|
| 缩略图被 robots.txt 屏蔽 | 无法生成视频卡片 | 放开缩略图与视频文件抓取 |
| 缺 uploadDate | 必填字段缺失 | 提供带时区的上传日期 |
| embedUrl 写成页面地址 | 不是播放器源 | 填 iframe 的真实 src |
| Clip 与 SeekToAction 混用 | 关键时刻冲突 | 二选一 |
| 页面没视频却标 VideoObject | 标记不存在内容 | 仅给真实嵌入的视频标记 |
VideoObject 上线清单#
- name、thumbnailUrl、uploadDate 三项齐全
- 提供 contentUrl 或 embedUrl 之一
- thumbnailUrl 与视频文件未被 robots.txt 屏蔽
- duration 用 ISO 8601 时长
- uploadDate 用带时区的 ISO 8601 日期时间
- 关键时刻 Clip 与 SeekToAction 只用其一
- 直播用 BroadcastEvent 且 isLiveBroadcast=true
- 页面真实嵌入该视频
- Rich Results Test 无关键错误
- 大量视频考虑提供视频站点地图
常见问题#
VideoObject 必填哪些字段?
Google 对 VideoObject 的必填字段是 name、thumbnailUrl 和 uploadDate。要让视频可播放和被更好理解,强烈建议补充 contentUrl 或 embedUrl 之一、duration、description。缺少缩略图或上传日期,视频富媒体结果通常无法生成。
contentUrl 和 embedUrl 有什么区别?
contentUrl 指向原始视频文件(如 .mp4),embedUrl 指向可嵌入的播放器地址(如 iframe 播放页)。Google 建议至少提供其中之一,能同时提供更好。要确保 Googlebot 能访问这些地址,不要被 robots.txt 或登录墙挡住。
关键时刻(key moments)怎么标记?
有两种方式:一是用 Clip 明确标出每个片段的 name、startOffset、url;二是用 SeekToAction 告诉 Google 你的 URL 时间戳结构,让它自动识别关键时刻。两者择一即可,不要重复。url 要带能跳转到对应时间点的参数。
时长 duration 怎么写?
duration 使用 ISO 8601 时长格式,例如 PT1M30S 表示 1 分 30 秒、PT2H5M 表示 2 小时 5 分。uploadDate、startDate 等日期则用 ISO 8601 日期或带时区的日期时间格式,不要写成中文或本地化字符串。