VideoObject 必填字段为 @type、name 和 contentUrl,其中 @type 必须是 "VideoObject",name 为纯文本标题(≤100 字符),contentUrl 必须是可公开访问的视频直链(如 MP4),不可用 embedUrl 替代。

VideoObject 必填字段有哪些
没填对 required 字段,搜索引擎会直接忽略整个视频结构化数据。Google 和 Bing 都明确要求:@type 必须是 "VideoObject",name(视频标题)和 contentUrl(直链 MP4/MOV 等可播放地址)缺一不可。
常见错误是用 embedUrl 代替 contentUrl——前者只适用于 iframe 嵌入页(如 YouTube 页面),后者才是视频文件原始 URL。如果填了 embedUrl 却没填 contentUrl,Google Rich Results Test 会报 "contentUrl is missing"。
-
name:纯文本,别带 HTML 标签,长度建议 ≤ 100 字符 -
contentUrl:必须是可公开访问、无需登录跳转的直链,且响应头含Content-Type: video/xxx -
thumbnailUrl:强烈建议提供,否则可能无法触发视频富摘要;需是 JPG/PNG,尺寸至少 160×90,推荐 1280×720
如何正确嵌入 JSON-LD 到 HTML 页面
必须用 <script type="application/ld+json"></script> 块,不能塞进 <meta> 或 Microdata 里——VideoObject 不支持那些格式。位置放在 或 开头都行,但别动态注入(比如 JS 拼字符串后 append),否则爬虫大概率读不到。
注意编码问题:JSON-LD 内容本身要 UTF-8,且不能包含未转义的双引号或换行符。如果 name 里有英文引号,得写成 \";中文标点不用转义。
立即学习“前端免费学习笔记(深入)”;
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "如何配置 VideoObject 元数据",
"contentUrl": "https://example.com/video.mp4",
"thumbnailUrl": "https://example.com/thumb.jpg",
"uploadDate": "2024-05-20",
"duration": "PT5M30S",
"description": "实操讲解 Schema.org 视频标记规范"
}
uploadDate 和 duration 的格式陷阱
uploadDate 必须是 ISO 8601 格式("YYYY-MM-DD" 或完整带时分秒),不能是时间戳或中文日期。漏掉年份、写成 "2024/05/20" 都会导致验证失败。
duration 是唯一容易算错的字段:必须用 ISO 8601 持续时间格式,不是秒数也不是 MM:SS。5 分 30 秒要写成 "PT5M30S"(P=Period, T=Time, M=Minutes, S=Seconds)。常见错误包括:
- 写成
"5:30"或330→ 解析失败 - 漏掉
P或T→ Google 认为无效 - 小时部分写成
H但实际是H(如"PT1H30M"),不是"HR"
为什么加了 VideoObject 还不出视频摘要
最常被忽略的是页面内容与元数据不匹配:Google 要求页面主体必须真实呈现该视频——比如 <video></video> 标签正在播放 contentUrl 指向的文件,或者页面显著位置有该视频的播放器/封面图+标题。单纯塞一段 JSON-LD,页面正文却只有文字介绍,大概率被判定为“误导性标记”。
另外两个硬性门槛:
- 域名需有 HTTPS,且
contentUrl和thumbnailUrl的协议必须一致(不能混用 HTTP/HTTPS) - 视频文件大小不能过大(Google 建议 ≤ 8GB),且服务器要支持 range 请求(否则无法预览)
- 同一页面多个
VideoObject时,每个必须有唯一contentUrl,重复会导致只识别第一个
调试优先用 Google Rich Results Test,别依赖 Search Console 的延迟报告——它可能缓存旧版本或跳过校验。



















