VideoObject常被Google忽略,因字段必须全且严格符合格式:name、description、thumbnailUrl、uploadDate、duration、contentUrl缺一不可;uploadDate须ISO 8601带时区(如"2024-03-31T08:00:00+08:00"),duration须"PT1M54S"格式,thumbnailUrl须为数组,contentUrl须HTTPS可访问URL;且必须置于独立视频观看页,SSR渲染,不可JS动态注入。

直接加 <script type="application/ld+json"></script> 块到页面 里,用 VideoObject 类型,且必须填全 name、description、thumbnailUrl、uploadDate、duration、contentUrl 这六个字段——漏一个,Google 就可能不识别为视频富结果。
为什么 VideoObject 经常被 Google 忽略?
不是 Google 不支持,而是它对字段完整性和格式异常敏感。常见失效场景包括:
-
uploadDate写成"2024-03-31"(缺时间)或"Mar 31, 2024"(非 ISO 8601)——必须是"2024-03-31T08:00:00+08:00"或至少带T00:00:00 -
duration用错格式,比如写"1m54s"或"114s"——正确只能是 ISO 8601 持续时间格式,如"PT1M54S" -
thumbnailUrl是单个字符串而非数组,哪怕只有一张图也得写成["https://..."] -
contentUrl或embedUrl是相对路径(如"./video.mp4")或 HTTP 链接——必须是可公开访问的 HTTPS URL,且服务器返回 200 状态码
VideoObject 和 BroadcastEvent、Clip 怎么选?
绝大多数普通视频页面用 VideoObject 就够了。另外两个类型有明确限定场景:
-
BroadcastEvent:只适用于“正在直播”或“已排期的直播事件”,需配合startDate、endDate、broadcaster字段,且通常要和VideoObject嵌套使用(作为video属性值) -
Clip:用于视频片段(比如从长视频中截取的 30 秒高光),必须带partOfVideo指向原始VideoObject,否则 Google 不认 - 别为了“显得专业”硬套
BroadcastEvent——非直播页填这个,Search Console 会报 “type mismatch”,直接失效
怎么验证 VideoObject 是否生效?
上线前和上线后都必须实测,不能靠肉眼判断:
- 本地验证:把整段
<script type="application/ld+json">{...}</script>复制进 Google 的 Rich Results Test(现整合在 URL Inspection Tool 中),粘贴完整 HTML 片段,它会标出缺失字段和格式错误 - 上线后检查:用 URL Inspection Tool 抓取实际页面,展开 “富媒体搜索结果” 面板,看是否出现 “Video” 类型;若显示 “No rich results detected”,点开 “Structured data” 标签页查具体报错
- 注意:如果页面用了 Next.js、Nuxt 等 SSR 框架,确保这段 JSON-LD 在服务端渲染时就存在,而不是用
useEffect或mounted动态注入——Googlebot 不执行 JS
最容易被忽略的一点:Google 要求 VideoObject 必须放在视频的“观看页面”上,也就是用户点开视频后停留的那个独立 URL 页面。把它塞在首页、列表页或弹窗 iframe 里,即使代码完全正确,也不会触发视频富结果。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











