将您的视频发布到 Google 上

Google 搜索是用户查找并观看视频的切入点。虽然 Google 会尝试自动了解视频的详细信息,但是您可以使用 VideoObject 来标记视频,以明确提供说明、缩略图网址、上传日期和时长等信息。视频可以显示在 Google 搜索结果、视频搜索结果、Google 图片和 Google 探索中。

在 Google 搜索结果、视频标签页和 Google 探索中显示视频内容的屏幕截图

根据您对内容的标记方式,您的视频还可能符合以下视频增强功能的使用条件:

视频增强功能

“LIVE”徽章:使用 BroadcastEvent 标记您的视频,为视频添加“LIVE”徽章。“LIVE”徽章可应用于任何时长的公开直播视频。以下是一些示例:

  • 体育赛事
  • 颁奖典礼
  • 网红视频
  • 视频游戏直播

确保遵循“LIVE”徽章指南,并使用 Indexing API 以确保 Google 在正确的时间抓取您的网页。

搜索结果中带有“LIVE”徽章的视频
剪辑(仅面向部分提供商):帮助用户快速转到视频中的特定时间点。
  • 如果您的视频托管在 YouTube 上,Google 搜索可能会根据 YouTube 上的视频说明自动启用剪辑功能。请查看在 YouTube 说明中标记时间戳的最佳做法
  • 如果您的视频托管在您的网页上,您可以将 Clip 结构化数据添加到 VideoObject 中以帮助 Google 了解视频中的重要时间点。
搜索结果中带有剪辑的视频
视频托管方陈列界面(仅面向部分提供商):通过添加 ItemList 结构化数据允许用户浏览您的视频库页面。

如何添加结构化数据

结构化数据是一种提供网页相关信息并对网页内容进行分类的标准化格式。如果您不熟悉结构化数据,可以详细了解结构化数据的工作原理

下面概述了如何构建、测试和发布结构化数据。如需获得向网页添加结构化数据的分步指南,请查看结构化数据 Codelab

  1. 添加必要属性。如需了解如何在网页上放置结构化数据,请观看 JSON-LD 结构化数据:网页上的插入位置
  2. 遵循指南
  3. 使用富媒体搜索结果测试验证您的代码。
  4. 部署一些包含结构化数据的网页,然后使用网址检查工具测试 Google 看到的网页样貌。请确保您的网页可供 Google 访问,不会因 robots.txt 文件、noindex 标记或登录要求而被屏蔽。如果网页看起来没有问题,您可以请求 Google 重新抓取您的网址
  5. 为了让 Google 随时了解日后发生的更改,我们建议您提交站点地图Search Console Sitemap API 可以帮助您自动执行此操作。

示例

标准视频富媒体搜索结果

标准视频搜索结果示例

下面是一个 VideoObject 示例。


<html>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Introducing the self-driving bicycle in the Netherlands",
      "description": "This spring, Google is introducing the self-driving bicycle in Amsterdam, the world’s premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google’s ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "uploadDate": "2016-03-31T08:00:00+08:00",
      "duration": "PT1M54S",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "embedUrl": "https://www.example.com/embed/123",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "http://schema.org/WatchAction" },
        "userInteractionCount": 5647018
      },
      "regionsAllowed": "NL"
    }
    </script>
  </head>
  <body>
  </body>
</html>

“LIVE”徽章

搜索结果中带有“LIVE”徽章的视频示例

下面是一个 JSON-LD 代码格式的 VideoObjectBroadcastEvent 示例。

<html>
  <head>
    <title>Bald Eagle at the Park - Livestream</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "contentURL": "https://example.com/bald-eagle-at-the-park.mp4",
      "description": "Bald eagle at the park livestream.",
      "duration": "PT37M14S",
      "embedUrl": "https://example.com/bald-eagle-at-the-park",
      "expires": "2018-10-30T14:37:14+00:00",
      "regionsAllowed": "US",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "http://schema.org/WatchAction" },
        "userInteractionCount": 4756
      },
      "name": "Bald eagle nest livestream!",
      "thumbnailUrl": "https://example.com/bald-eagle-at-the-park",
      "uploadDate": "2018-10-27T14:00:00+00:00",
      "publication": [
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2018-10-27T14:00:00+00:00",
          "endDate": "2018-10-27T14:37:14+00:00"
        },
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2018-10-27T18:00:00+00:00",
          "endDate": "2018-10-27T18:37:14+00:00"
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>

下面是 VideoObjectItemList 结构化数据示例。此功能目前仅供一小部分提供商使用。

JSON-LD
<html>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "ItemList",
      "itemListElement": [
        {
          "@type": "VideoObject",
          "position": 1,
          "name": "Introducing the self-driving bicycle in the Netherlands",
          "url": "https://www.example.com/video/self-driving-bicycle",
          "description": "This spring, Google is introducing the self-driving bicycle in Amsterdam, the world’s premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google’s ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.",
          "thumbnailUrl": [
            "https://www.example.com/video/self-driving-bicycle/1x1/photo.jpg",
            "https://www.example.com/video/self-driving-bicycle/4x3/photo.jpg",
            "https://www.example.com/video/self-driving-bicycle/16x9/photo.jpg"
          ],
          "uploadDate": "2016-03-31T08:00:00+08:00",
          "duration": "PT1M54S",
          "contentUrl": "https://www.example.com/video/self-driving-bicycle/file.mp4",
          "embedUrl": "https://www.example.com/embed/self-driving-bicycle",
          "interactionStatistic": {
            "@type": "InteractionCounter",
            "interactionType": { "@type": "http://schema.org/WatchAction" },
            "userInteractionCount": 5647018
          }
        },
        {
          "@type": "VideoObject",
          "position": 2,
          "name": "How to tie a tie",
          "url": "https://www.example.com/video/how-to-tie-a-tie",
          "description": "How to tie a four-in-hand knot.",
          "thumbnailUrl": [
            "https://www.example.com/video/how-to-tie-a-tie/1x1/photo.jpg",
            "https://www.example.com/video/how-to-tie-a-tie/4x3/photo.jpg",
            "https://www.example.com/video/how-to-tie-a-tie/16x9/photo.jpg"
          ],
          "uploadDate": "2019-02-28T08:00:00+08:00",
          "duration": "PT5M01S",
          "contentUrl": "https://www.example.com/video/how-to-tie-a-tie/file.mp4",
          "embedUrl": "https://www.example.com/embed/how-to-tie-a-tie",
          "interactionStatistic": {
            "@type": "InteractionCounter",
            "interactionType": { "@type": "http://schema.org/WatchAction" },
            "userInteractionCount": 102111
          }
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>
微数据
<div>
      <div itemprop="video" itemscope itemtype="http://schema.org/VideoObject">
        <!-- Thumbnail -->
        <a href="https://example.com/videos/self-driving-bicycle"
           title="Introducing the self-driving bicycle in the Netherlands">
          <img src="https://example.com/videos/self-driving-bicycle/thumbnail.jpg"
               alt="Introducing the self-driving bicycle in the Netherlands"
               title="Introducing the self-driving bicycle in the Netherlands"
               itemprop="thumbnailUrl">
        </a>
        <!-- URL, name, and description -->
        <h1>
          <a itemprop="contentUrl" href="https://example.com/videos/self-driving-bicycle"
             title="Introducing the self-driving bicycle in the Netherlands">
            <span itemprop="name">Introducing the self-driving bicycle in the Netherlands</span>
          </a>
        </h1>
        <a href="https://example.com/videos/self-driving-bicycle"
             title="Introducing the self-driving bicycle in the Netherlands">
          <div itemprop="description">"This spring, Google is introducing the self-driving bicycle
            in Amsterdam, the world’s premier cycling city. The Dutch cycle more than any other
            nation in the world, almost 900 kilometres per year per person, amounting to over 15
            billion kilometres annually. The self-driving bicycle enables safe navigation through
            the city for Amsterdam residents, and furthers Google’s ambition to improve urban
            mobility with technology. Google Netherlands takes enormous pride in the fact that a
            Dutch team worked on this innovation that will have great impact in their home country.
          "</div>
        </a>
        <!-- Other metadata -->
        <meta itemprop="duration" content="PT1M54S" />
        <meta itemprop="uploadDate" content="2016-03-31T08:00:00+08:00" />
        <span itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
        	<span itemprop="interactionType" itemscope itemtype="http://schema.org/WatchAction"></span>
        	<meta itemprop="userInteractionCount" content="5647018" />
        </span>
      </div>

      <div itemprop="video" itemscope itemtype="http://schema.org/VideoObject">
        <!-- Thumbnail -->
        <a href="https://example.com/videos/how-to-tie-a-tie"
           title="How to tie a tie">
          <img src="https://example.com/videos/how-to-tie-a-tie/thumbnail.jpg"
               alt="How to tie a tie"
               title="How to tie a tie"
               itemprop="thumbnailUrl">
        </a>
        <!-- URL, name, and description -->
        <h1>
          <a itemprop="contentUrl" href="https://example.com/videos/how-to-tie-a-tie"
             title="Tie a Tie">
            <span itemprop="name">Tie a Tie</span>
          </a>
        </h1>
        <a href="https://example.com/videos/how-to-tie-a-tie"
             title="Tie a Tie">
          <div itemprop="description">How to tie a four-in-hand knot.</div>
        </a>
        <!-- Other metadata -->
        <meta itemprop="duration" content="PT5M01S" />
        <meta itemprop="uploadDate" content="2019-01-05T08:00:00+08:00" />
        <span itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter">
        	<span itemprop="interactionType" itemscope itemtype="http://schema.org/WatchAction"></span>
        	<meta itemprop="userInteractionCount" content="102111" />
        </span>
      </div>
    </div>
  

剪辑(仅面向部分提供商)

搜索结果中带有剪辑的视频示例

下面是一个 JSON-LD 代码格式的 VideoObjectClip 示例。此功能目前仅供一小部分提供商使用。如果您想参与进来,请提交注册表单

<html>
  <head>
    <title>Cat jumps over the fence</title>
    <script type="application/ld+json">
    {
      "@context": "http://schema.org/",
      "@type": "VideoObject",
      "name": "Cat video",
      "duration": "P10M",
      "uploadDate": "2019-07-19",
      "thumbnailUrl": "http://www.example.com/cat.jpg",
      "description": "Watch this cat jump over a fence!",
      "contentUrl": "http://www.example.com/cat_video_full.mp4",
      "regionsAllowed": "US",
      "hasPart": [{
        "@type": "Clip",
        "name": "Cat jumps",
        "startOffset": 30,
        "endOffset": 45,
        "url": "http://www.example.com/example?t=30"
      },
      {
        "@type": "Clip",
        "name": "Cat misses the fence",
        "startOffset": 111,
        "endOffset": 150,
        "url": "http://www.example.com/example?t=111"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

包含视频的 AMP 网页

下面是一个 AMP 网页上的 VideoObject 示例。

<html amp>
  <head>
    <title>Introducing the self-driving bicycle in the Netherlands</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Introducing the self-driving bicycle in the Netherlands",
      "description": "This spring, Google is introducing the self-driving bicycle in Amsterdam, the world’s premier cycling city. The Dutch cycle more than any other nation in the world, almost 900 kilometres per year per person, amounting to over 15 billion kilometres annually. The self-driving bicycle enables safe navigation through the city for Amsterdam residents, and furthers Google’s ambition to improve urban mobility with technology. Google Netherlands takes enormous pride in the fact that a Dutch team worked on this innovation that will have great impact in their home country.",
      "thumbnailUrl": "https://www.example.com/thumbnail.jpg",
      "uploadDate": "2016-03-31T08:00:00+08:00",
      "duration": "PT1M54S",
      "publisher": {
        "@type": "Organization",
        "name": "Google Nederland",
        "logo": {
          "@type": "ImageObject",
          "url": "https://example.com/logo.jpg",
          "width": 600,
          "height": 60
        }
      },
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "embedUrl": "https://www.example.com/embed/123",
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "http://schema.org/WatchAction" },
        "userInteractionCount": 5647018
      },
      "regionsAllowed": "NL"
    }
    </script>
  </head>
  <body>
  </body>
</html>

指南

要帮助 Google 更好地了解您的视频,请确保遵循以下指南:

“LIVE”徽章指南

如果您将 BroadcastEvent 添加到直播视频,请遵循以下指南:

  • 不要在结构化数据中使用粗俗或可能有攻击性的语言。
  • 为了确保 Google 在正确的时间抓取您的直播视频,请使用 Indexing API。您可以为以下事件调用此 API:
    • 当视频上线时
    • 当视频已停止在线播放且网页的标记已更新为指示 endDate
    • 每当标记发生更改且需要通知 Google 时

在 YouTube 上标记时间戳的最佳做法

如果您的视频托管在 YouTube 上,Google 搜索可能会根据 YouTube 上的视频说明自动为您的视频启用剪辑,而您不必在 YouTube 说明中标记特定时间戳。不过,您可以更明确地告诉我们视频中的要点,我们会优先获取这些信息。下图显示了 YouTube 视频说明中的时间戳和标签在搜索结果中的显示效果:

搜索结果中带有时间戳和标签的视频
1. 时间戳:剪辑开始时间。
2. 标签:剪辑的名称。

在为 YouTube 说明设置时间戳和标签格式时,请注意以下指南:

  • 按照以下格式设置时间戳:[hour]:[minute]:[second]。如果没有小时,则无需添加小时。
  • 在时间戳所在的行中指定时间戳的标签。
  • 在视频说明中另起一行放置每个时间戳。
  • 将时间戳与视频中的指定点相关联。
  • 确保标签至少包含一个字词。
  • 按时间顺序列出时间戳。

剪辑指南(仅面向部分提供商)

如果您添加 Clip 来标记视频片段,请遵循以下指南:

  • 视频必须是公开的,无需订阅即可观看。
  • 视频必须能够深层链接到视频网址中视频起点之外的某个点。例如,http://www.example.com/example?t=30 可从视频的 30 秒处开始播放。
  • Clip 结构化数据必须添加到能让用户观看视频的网页中。将用户引导至无法观看视频的网页会导致糟糕的用户体验。
  • 视频总时长必须至少为 30 秒。
  • 确保在同一网页上定义的同一视频中没有任何两个剪辑的开始时间相同。
  • 视频必须包含 VideoObject 结构化数据。

结构化数据类型定义

本部分介绍了与 Google 搜索中的视频功能相关的结构化数据类型。若要使您的内容能够显示为视频富媒体搜索结果,您必须为其添加必需的 VideoObject 属性。您还可添加建议的属性,以便添加与您的内容相关的更多信息,进而提供更好的用户体验。除了 VideoObject 属性之外,您还可添加以下数据类型以便在 Google 搜索中启用视频增强功能:

  • BroadcastEvent:标记直播视频,为视频启用“LIVE”徽章。
  • ItemList:标记包含视频列表的网页,以启用视频托管方陈列界面。
  • Clip:在视频中标记重要片段,以帮助用户快速浏览到视频中的特定点。

VideoObject

如需了解 VideoObject 的完整定义,请访问 schema.org/VideoObject。如果您不添加必需属性,Google 可能无法提取视频的任何相关信息。您还可添加建议的属性,以便添加与您的内容相关的更多信息,进而提供更好的用户体验。

必需的属性
description

Text

视频的说明。HTML 标记将被忽略。

name

Text

视频的标题

thumbnailUrl

重复的 ImageObjectURL

指向视频缩略图文件的网址。

  • 图片网址必须可抓取且可编入索引
  • 图片必须代表已标记的内容。
  • 图片格式必须为 .jpg、.png 或 .gif。
  • 图片大小必须至少为 60 x 30 像素。
uploadDate

Date

首次发布视频的日期,采用 ISO 8601 格式

建议的属性
contentUrl

URL

指向实际视频媒体文件的网址,并且采用一种受支持的编码格式不要链接到视频所在的网页;该网址必须是视频媒体文件本身的网址。

请务必遵循我们的视频最佳做法

duration

Duration

视频的时长,采用 ISO 8601 格式。 例如,T00H30M5S 表示时长为“30 分钟零 5 秒”。

embedUrl

URL

指向特定视频播放器的网址,并且采用一种受支持的编码格式。不要链接到视频所在的网页;该网址必须是视频媒体文件本身的网址。通常,这是 <embed> 标记的 src 元素中的信息。

请务必遵循我们的视频最佳做法

expires

Date

视频的失效日期,采用 ISO 8601 格式(如果适用)。如果您的视频不会过期,请勿提供此信息。

hasPart

如果您的视频包含重要片段,请在您的 VideoObject 中嵌套必需的 Clip 属性。例如:


<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "VideoObject",
  "name": "Cat video",
  "hasPart": {
    "@type": "Clip",
    "name": "Cat jumps",
    "startOffset": 30,
    "url": "http://www.example.com/example?t=30"
  }
}
</script>
interactionStatistic

InteractionCounter

视频的观看次数。例如:

"interactionStatistic":
  {
    "@type": "InteractionCounter",
    "interactionType": { "@type": "http://schema.org/WatchAction" },
    "userInteractionCount": 12345
  }
publication

如果您的视频正在直播且您希望显示“LIVE”徽章,请在您的 VideoObject 中嵌套 BroadcastEvent 属性。例如:


<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "VideoObject",
  "name": "Cat video",
  "publication": {
    "@type": "BroadcastEvent",
    "name": "First scheduled broadcast",
    "isLiveBroadcast": true,
    "startDate": "2018-10-27T14:00:00+00:00",
    "endDate": "2018-10-27T14:37:14+00:00"
  }
}
</script>

BroadcastEvent

为了能够带有“LIVE”徽章,请在您的 VideoObject 中嵌套以下属性。虽然 BroadcastEvent 属性不是必需的,但如果您希望您的视频能够带有“LIVE”徽章,则必须添加以下属性。

如需了解 BroadcastEvent 的完整定义,请访问 schema.org/BroadcastEvent

必需的属性
publication

BroadcastEvent

描述视频何时直播。可以是一个列表,也可以是单个实例。

publication.endDate

DateTime

直播结束或预计结束的时间和日期,采用 ISO 8601 格式

一旦视频已结束且不再直播,必须提供 endDate。如果在直播开始之前预计的 endDate 未知,我们建议您提供大概的 endDate

如果 endDate 是过去或现在的日期,表示在线播放实际上已结束且不再直播。如果 endDate 是将来的日期,表示在线播放定于该时间结束。

publication.isLiveBroadcast

布尔值

如果视频正在、已经或将要直播,请将此属性设为 true

publication.startDate

DateTime

直播开始或预计开始的时间和日期,采用 ISO 8601 格式。如果 startDate 是过去或现在的日期,表示在线播放实际上已开始。如果 startDate 是将来的日期,表示在线播放定于该时间开始。

ItemList(仅面向部分提供商)

为了帮助 Google 更好地了解您的视频库页面,除了 VideoObject 属性之外,还应添加以下 ItemList 属性。如需详细了解陈列界面,请参阅 Carousel

如需了解 ItemList 的完整定义,请访问 schema.org/ItemList

必需的属性
itemListElement

ListItem

单个项目网页的注释。每个 ListItem 元素都应包含 VideoObject 属性以及 ListItem 属性。

ListItem.position

Integer

列表中相应项目网页的序数位置。例如:

"itemListElement": [
  {
    "@type": "VideoObject",
    "position": 1,
    ... other VideoObject properties ...
  }, {
    "@type": "VideoObject",
    "position": 2,
    ... other VideoObject properties ...
  }
]
ListItem.url

URL

食谱网页的规范网址。每个项目都应具备一个独一无二的网址。

Clip(仅面向部分提供商)

要显示为剪辑,请在您的 VideoObject 中嵌套以下属性。虽然 Clip 属性不是必需的,但如果您希望您的视频能够显示视频片段,则必须添加以下属性。

如需了解 Clip 的完整定义,请访问 schema.org/Clip

必需的属性
name

Text

剪辑内容的描述性标题。

startOffset

Number

剪辑的开始时间,即从作品开头到剪辑开始之间经过的秒数。

url

URL

指向剪辑开始时间的网址。

剪辑网址必须指向相同的视频网址路径,但带有用于指定时间的其他查询参数。

例如,以下网址表示视频在 2:00 分钟后开始:

"url": "https://www.example.com/example?t=120"
建议的属性
endOffset

Number

剪辑的结束时间,即从作品开头到剪辑结束之间经过的秒数。

使用 Search Console 监控富媒体搜索结果

Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:

  1. 首次部署结构化数据后
  2. 发布新模板或更新代码后
  3. 定期分析流量时

首次部署结构化数据后

等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,您应该会看到有效网页数增加了,但错误数或警告数没有增加。如果您发现结构化数据存在问题,请执行以下操作:

  1. 修正错误
  2. 检查实际网址,核实问题是否仍然存在。
  3. 使用状态报告请求验证

发布新模板或更新代码后

对网站进行重大更改后,请监控结构化数据的错误数和警告数是否增加了。
  • 如果您发现错误增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
  • 如果您发现有效内容项减少了(但错误数的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。

定期分析流量时

请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。

问题排查

如果您在实施结构化数据时遇到问题,请查看下面列出的一些实用资源。