提供结构化数据

本页介绍了如何添加搜索运算符所依赖的结构化数据。

网页上通常填充着自由格式的文本, 但计算机难以理解。部分 网页中的信息结构更清晰, 例如,嵌入在网页网址或标题中的网页日期; 或嵌入在 HTML 代码中的机器可读字段。Google 从网页中提取各种结构化数据。本次 页面描述了 Google 会从数据中 可用于 自定义代码段结构化搜索

  1. 概览
  2. 向可编程搜索引擎提供数据 <ph type="x-smartling-placeholder">
  3. 为丰富网页摘要提供数据 <ph type="x-smartling-placeholder">
  4. 查看提取的结构化数据

概览

在阅读销售 DVD 的网页时 确定片名、影评人对这部影片的看法 了解他们的评分情况。但计算机无法做到这一点 无法理解信息的结构。

例如,如果网页不仅包含关于 DVD 的内容, 对其他商品的推荐、其他商店的广告以及 客户 - 则该网页上的各种商品可能会提供不同的价格 而不仅仅是销售的 DVD。你可以轻松确定 而不宣传其他价格 不能。一些复杂的程序可能会发现 但无法确定仅查找 DVD 的价格

结构化数据格式是将结构和 网页内容它们是可以应用到文本摘要的标记, 计算机可以处理它们的含义或语义。标记不会更改 格式,那么它只会将元数据和 对计算机来说更有意义的 XHTML 标记。

可编程搜索引擎可识别以下格式:

  • PageMaps:添加 向网页添加元数据
  • JSON-LD:使用 JSON 格式。
  • 微格式:用于标记可见内容的标记 和预定义类型。
  • RDFa:用于标记可见文件的替代标准 网页内容以及任意类型。
  • 微数据:一种用于标记标记的新 HTML5 标准 可见的网页内容。
  • <meta> 标记:标准 HTML 标记,它是 由 Google 解析。
  • 网页日期:网页上的功能,指示其 Google 会尝试解析该日期,

您可以根据自己的喜好使用其中一种或多种格式的组合。 请注意,与可编程搜索引擎不同,Google 搜索仅使用 JSON-LD、微数据和 RDFa 格式 并且有自己的算法和政策 以确定向用户显示哪些信息因此,虽然您添加的结构化数据元素 可编程搜索引擎上呈现给您的网页时,Google 可能不会使用这些数据 搜索结果。

以下是来自评价网站的理想纯 HTML 代码段:

<div>
    <div>
        <h1>Pizza My Heart</h1>
    </div>
    <span>88%</span> like it
    <a href="#reviews">See all 12 reviews</a>
    <span>Under $10 per entree</span>
<div>

以下代码段显示了之前的 HTML 代码 扩展为一种称为微格式的格式:

<div class="hreview-aggregate">
    <div class="vcard item">
        <h1 class="fn">Pizza My Heart</h1>
    </div>
    <span class="rating average">88%</span> like it
    <a href="#reviews">See all <span class="count">12</span> reviews</a>
    <span class="pricerange">Under $10 per entree</span>
<div>
可编程搜索引擎提取的功能可通过以下方式查看: 此方法

通过将标准结构化数据格式整合到您的 您不仅可以将数据提供给可编程搜索引擎, 任何支持同一标准的服务或工具应用 结构化数据与网页中最重要的信息相关联, 则可以直接在结果中显示它们例如,如果您 拥有销售 Android 设备的网站, 包括评分、价格、空房情况等信息当用户搜索 对于 Android 设备,他们可以查看评分、价格和 供您轻松查看可用性。

计算机现在可以理解 网页中的数据类型。接下来该怎么办?计算机也可以开始 寻找和整合不同地方、 网页。这样,用户不必再费心挑选 通过多个页面查找他们需要的内容。搜索引擎 等可编程搜索引擎,可以处理您网页上的结构化数据 并以实用、更有意义的方式展示这些信息,例如 自定义代码段结构化搜索

返回页首

向可编程搜索引擎提供数据

Google 支持多种类型的数据,这些数据主要 可编程搜索引擎:页映射、<meta> 标记的子集和大致的网页日期。

使用 PageMap

PageMap 是一种结构化数据格式,可为 Google 提供有关 网页上的数据它可让网站创建者将数据和备注嵌入到 网页。尽管结构化数据对您的用户或 Google 网页搜索,可编程搜索引擎会在将您的网页编入索引并 直接使用 可编程搜索元素

您可以将 PageMap 明确添加到网页中,也可以使用站点地图提交 PageMap。 Google 还会使用网页上的其他信息,例如丰富网页摘要标记或 meta 标记数据,用于创建 PageMap。

与下面介绍的其他结构化数据格式不同,PageMap 具有 并不要求您遵循标准的媒体资源或术语,甚至无需遵循 现有词汇、架构或模板。您只需创建 设置适合您网站的自定义属性值。与结构化 微格式、微数据和 RDFa 的数据属性, HTML 正文中包含用户可见内容,PageMaps 元数据会包含在 HTML 页面的 head 部分。此方法支持 您的应用可能会需要但您可能不希望 。

创建 PageMap 后,您可以使用任意 方法:

PageMap 代码定义

下表概述了将 PageMap 数据添加到 站点地图。

标记 是否必需? 说明
PageMap 包含相关网址的所有 PageMap 信息。
DataObject 包含单个元素的所有相关信息(例如, 操作)。
Attribute 每个 DataObject 包含一个或多个属性。

注意: PageMap 是 XML 块,因此必须采用正确的格式; 特别是 PageMapDataObject 和 XML 中的 Attribute 标记区分大小写, typenamevalue 属性。

将 PageMap 数据直接添加到您的 HTML 网页

下面是一个关于以下网页的 PageMap 数据示例: 羽毛球:

<html>
  <head>
   ...
  <!--
  <PageMap>
     <DataObject type="document">
        <Attribute name="title">The Biomechanics of a Badminton
        Smash</Attribute>
        <Attribute name="author">Avelino T. Lim</Attribute>
        <Attribute name="description">The smash is the most
        explosive and aggressive stroke in Badminton. Elite athletes can
        generate shuttlecock velocities of up to 370 km/h. To perform the
        stroke, one must understand the biomechanics involved, from the body
        positioning to the wrist flexion. </Attribute>
        <Attribute name="page_count">25</Attribute>
        <Attribute name="rating">4.5</Attribute>
        <Attribute name="last_update">05/05/2009</Attribute>
     </DataObject>
     <DataObject type="thumbnail">
        <Attribute name="src" value="http://www.example.com/papers/sic.png" />
        <Attribute name="width" value="627" />
        <Attribute name="height" value="167" />
     </DataObject>
  </PageMap>
  -->
  </head>
   ...
</html>

向站点地图添加 PageMap 数据

如果您不想在网页的 HTML 中包含 PageMap 数据,可以执行以下操作: 将 PageMap 数据添加到站点地图,并通过 Search Console 站点地图工具

以下站点地图示例包含两个国家/地区的 PageMap 信息: 网址:http://www.example.com/foo 和 http://www.example.com/bar。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>http://www.example.com/foo</loc>
   <PageMap xmlns="http://www.google.com/schemas/sitemap-pagemap/1.0">
     <DataObject type="document" id="hibachi">
       <Attribute name="name">Dragon</Attribute>
       <Attribute name="review">3.5</Attribute>
     </DataObject>
   </PageMap>
 </url>
 <url>
   <loc>http://www.example.com/bar</loc>
   <PageMap xmlns="http://www.google.com/schemas/sitemap-pagemap/1.0">
     <DataObject type="document" id="biggreenegg">
       <Attribute name="name">Ribs</Attribute>
       <Attribute name="review">4.0</Attribute>
     </DataObject>
   </PageMap>
 </url>
</urlset>

解析 PageMap 数据

利用可编程搜索元素,您可以将自定义属性 所有搜索结果的丰富网页摘要属性中返回的内容都可以用于 搜索元素回调

<r n="1">
 <u> http://www.xyz.com/business/vending_machine.html </u>
 ...
 <t> In Italy, a Vending Machine Even Makes the <b>Pizza</b> </t>
 ...
 <s>The European vending machine industry has annual sales of about #33
 billion, much of it coming from factories and offices.</s>
 ...
 <PageMap>
  <DataObject type="image">
   <Attribute name="image_src" value="http://www.nytimes.com/images/2009/03/14/business/14vend.751.jpg"/>
  </DataObject>
  <DataObject type="publication">
   <Attribute name="author" value="John Tagliabue"/>
   <Attribute name="date" value="March 14, 2009"/>
   <Attribute name="category" value="Business/World Business"/>
  </DataObject>
 </PageMap>
 ...
</r>

返回页首

使用 <meta> 标记

尽管页面地图可让您精确地指定要 有时您会看到大量内容 不需要添加注释Google 会将所选内容从 META 格式为 <meta name="KEY" content="VALUE"> 的代码。我们不支持 META 标记,例如使用 property 而非 name

虽然我们明确排除了 通常由网页制作工具以编程方式插入的代码; 例如 robotsdescriptionkeywords,您的网站专属的罕见标记将 并将其放入特殊的数据对象 metatags,该类型可与所有的 Google 搜索的结构化数据功能。例如,以下形式的 <meta> 标记:

<meta name="pubdate" content="20100101">

用于创建在 XML 结果中返回的 PageMap DataObject,如下所示:

<r n="1">
 ...
 <PageMap>
  <DataObject type="metatags">
   <Attribute name="pubdate" value="20100101"/>
  </DataObject>
 </PageMap>
 ...
</r>

这个自动创建的 PageMap 中的数据可以 使用已明确包含在网页内容中的 PageMap 中的数据。对于 例如,它可以与结构化搜索运算符(例如 按属性排序

https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=metatags-pubdate

或使用 可编程搜索元素

...
<div class="gcse-search" sort_by="metatags-pubdate:d:s"></div>
...

以下是 Google 排除的 <meta> 标记:

  • 机器人
  • 说明
  • 关键字
  • 后重温
  • generator
  • 验证 v1
  • 聊天机器人
  • Google 网站验证
  • mssmarttagspreventparsing
  • 无缓存

Google 会尝试包含所有其他 <meta> 标记,但要注意: name中的标点、特殊字符和嵌入空格 字段的 <meta> 标记可能未正确解析。可编程搜索引擎 明确支持在 <meta> 标记名称中使用英文句点和短划线。 可编程搜索引擎不明确支持其他特殊字符 <meta> 标记名称内,但有一些特殊字符 才有可能被正确接受 网址编码

限制

可编程搜索引擎最多可将 50 个 <meta> 标记转换为 PageMap, 因为所有已处理属性的文字总大小不超过 1MB,并且没有 超过 1024 个字符。

返回页首

使用页面日期

除了您在页面上明确指定的元数据之外, Google 还会根据网页的功能(例如 日期格式。通过可编程搜索引擎,您可以使用 排序日期、偏差和范围使用特殊的元数据限制结果 date 的键。此预计日期可用于所有运营商 使用 &sort= 网址参数,包括 按属性排序按属性划分的偏差限制到范围

注意:网页日期不会添加到 PageMap, 因此它不会在 JSON API 结果中返回,不能在可编程搜索引擎中使用 元素,且不能与 按属性过滤功能。

以下示例展示了如何将网页日期与这些运算符搭配使用:

希望执行的操作 发送此网址... 有关详情,请参阅...
按日期对结果进行降序排序 https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date 按属性排序
结果严重偏向较晚的日期 https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:d:s 按属性划分的偏差
结果不太偏向于较早的日期 https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:a:w 按属性划分的偏差
返回 2010 年 1 月 1 日至 2 月 1 日(含)的结果 https://www.google.com/cse?cx=12345:example&q=oil+spill&sort=date:r:20100101:20100201 限制到范围

Google 根据各种功能估算的某个网页的合适日期 例如新闻报道的署名日期或明确指定的 日期。如果网页没有正确指定或 日期不一致 Google 对网页日期的估算可能会导致 而您的可编程搜索引擎可能会返回结果,

设置日期格式

网站可能会依据 Google 的 用于检测网页中嵌入的日期的预计网页日期功能 网址、标题或其他地图项,或者通过在 一种结构化数据格式。无论是哪种情况 需要正确设置日期格式。

对于可编程搜索引擎的 按属性排序按属性划分的偏差限制到范围 因此 Google 会尝试使用常规日期和 格式和正式标准,例如 ISO 8601IETF RFC 850。 接受以下完整日期格式:

日期格式 示例日期
YYYY/M/D 2009-12-31
YYYY/MM/DD 2009 年 12 月 31 日
YYYYMMDD 20091231
YYYY 年 MM 月 DD 日 2009 年 12 月 31 日
DD 月 YYYY 2009 年 12 月 31 日

Google 会尝试解析这些日期格式的变体,例如 为MM/DD/YYYYDD/MM/YYYY。不过, 日期越模糊,Google 就越难解析 正确。例如,日期 06/07/08 为 完全不明确,Google 不太可能为其分配 来呈现您想要的解读为获得最佳效果,请使用完整的 ISO 8601 包含完整年份的日期格式。

返回页首

丰富网页摘要

Google 还会从 JSON-LD、微格式、RDFa 中提取各种结构化数据 和微数据 <ph type="x-smartling-placeholder"></ph> 丰富网页摘要,进一步呈现标准 Google 搜索结果。 类似数据也可用于可编程搜索引擎的 结构化数据运算符 - 通常是丰富网页摘要中使用的相同数据。 例如,如果您使用微格式标记了网页, hrecipe 标准,您可以按评分数量排序 以及类似如下运算符: &sort=recipe-ratingstars。 Google 一直在不断扩展其提取的数据 数据是否可在可编程搜索引擎中使用;看看 Google 目前 可以使用 Search Console 中的结构化数据测试工具

返回页首

使用 JSON-LD

JSON-LD 是一种广泛使用的结构化数据标准格式。 这些数据会采用 JSON 格式,并放置在 包含 type="application/ld+json"<script> 标记。

以下是包含一些简单的 JSON-LD 的极少量 HTML:

<script type="application/ld+json">
      {
        "@id": "http://event.example.com/events/presenting-foo",
        "@type": "http://schema.org/Event",
        "http://schema.org/description": "Please attend. You'll love it!",
        "http://schema.org/name": "Presenting Foo",
        "http://schema.org/startdate": "2022-05-24",
        "http://schema.org/location": "Back room"
      }
    </script>

Google 会为可编程搜索引擎提取这些数据的子集,并对其进行标准化处理。通过 标准化简化了 JSON-LD,移除了许多 JSON-LD 习语。标准化数据为 进一步处理:

  • 它是从 转换为一片树林。
  • 该森林被精简为与部分集群相关的分支, schema.org 类型。该子集包含 schema.org 类型树 <ph type="x-smartling-placeholder">。 如果您有其他可能对您的特定用例有用的类型, 请访问支持页面 论坛。
  • 所选类型之一的每个 JSON-LD 节点都会从其 JSON-LD 中拉取一个分支 树。该分支在树中包含其祖先节点及其所有后代节点。 例如,我们有一棵树, MusicComposition,具有 firstPerformance属性 Event 值,其中包含一整套 Event 属性。所有这些节点(从 MusicCompositionEvent 及其任何后代都会保留,以保留一个有意义的树分支 包含 firstPerformance Event.
。 对于上述 JSON-LD,结构化数据将在搜索结果中以 JSON 格式返回,例如 :
 ...
 "event": {
   "name": "Presenting Foo",
   "description": "Please attend. You'll love it!",
   "startdate": "2022-05-24",
   "location": "Back room"
 },
 ...

若要查看 Google 搜索为网页提取的内容并验证 JSON-LD,请使用 富媒体搜索结果 测试工具

如需详细了解 JSON-LD,请参阅 结构化数据文档json-ld.org

返回页首

使用微格式

微格式 是用来代表 例如评价、人物、商品和商家。一般来说, 微格式由 <span><div> 元素和一个类属性,以及 简短的描述性属性名称(例如 dtreviewed) 或 rating:代表评价项的日期 及其评分)。

以下是一段纯 HTML 代码。

<p><strong>Kevin Grendelzilla</strong></p>
<p>Technical writer at Google</p>
<p>555 Search Parkway</p>
<p>Googlelandia, CA 94043</p>

以下代码段显示了使用 微格式:

<div class="vcard">
   <p><strong class="fn">Kevin Grendelzilla</strong></p>
   <p><span class="title">Technical writer</span> at <span class="org">Google</span></p>
   <p><span class="adr">
      <span class="street-address">555 Search Parkway</span>
      <span class="locality">Googlelandia</span>, <span class="region">CA</span>
      <span class="postcode">94043</span>
      </span></p>
</div>

Google 会提取其中的一部分数据,并进行标准化和重新整理 与丰富网页摘要中的显示方式对应。本次 子集中,将在 XML 结果中返回,如下所示:

<r n="1">
 ...
 <PageMap>
  <DataObject type="person">
   <Attribute name="location" value="Googlelandia"/>
   <Attribute name="role" value="Technical Writer"/>
  </DataObject>
 </PageMap>
 ...
</r>

要查看 Google 为网页提取的内容,请使用 结构化数据 Google 的测试工具 Search Console 网站。Google 从网页中提取的数据 因此请定期回来查看 您所需的数据都可用在此期间,如果您需要 与指定的微格式不相符的自定义数据; 您可以使用 PageMaps

要详细了解微格式,请参阅 结构化数据文档microformats.org

返回页首

在属性中使用资源描述框架 (RDFa)

<ph type="x-smartling-placeholder"></ph> 属性中的资源描述框架 (RDFa) 更加灵活 比微格式更复杂。微格式指定用于包含 将结构化数据转换为 HTML 文档和一组微格式类 每个属性都有自己的允许属性的特定词汇表RDFa,开启 另一方面,只指定语法,并允许您使用现有的 创建您自己的词汇表。它甚至可以 多个词汇表。如果现有词汇表不符合 您可以根据需要定义自己的标准和词汇表 创建新字段

以下是一段纯 HTML 代码。

<div>
   <h3>5 Centimeters Per Second</h3>
   <h4>Makoto Shinkai</h4>
    ...
</div>

以下代码段展示了之前使用 RDFa 扩展的 HTML 代码:

<div>
   <h3 property="dc:title">5 Centimeters Per Second</h3>
   <h4 property="dc:maker">Makoto Shinkai</h4>
   ...
</div>

有关 RDFa 的详情,请参阅 <ph type="x-smartling-placeholder"></ph> 结构化数据文档。如需详细了解如何定义 RDF 架构 请参阅 RDF Primer)

返回页首

使用微数据

最新版本的 HTML5 网页编写语言、 定义了一种名为 微数据 它直接将 RDFa 和微格式方面的理念融入到 。微数据在 HTML 标记中使用简单属性 (通常为 spandiv),以分配简报 为项目和属性添加描述性名称

与 RDFa 和微格式一样,微数据的属性也可帮助您指定 您的内容描述的是特定类型的信息,例如评价、 人、信息或事件例如,某人可以 属性名称、昵称、网址、标题和联属关系。以下是 简短的 HTML 文本块示例,显示此基本联系人 Bob Smith 的相关信息:

<div>
  My name is Bob Smith but people call me Smithy. Here is my home page:
  <a href="http://www.example.com">www.example.com</a>
  I live in Albuquerque, NM and work as an engineer at ACME Corp.
</div>

以下是用微数据标记的同一段 HTML 内容。请注意,在此示例中 我们使用“昵称”属性尚未正式纳入 schema.org 的网站。自定义 先使用搜索功能在本地探索可能的 schema.org 扩展程序,不失为一种好方法。 向更广泛的社区提出建议。

<div itemscope itemtype="http://schema.org/Person">
  My name is <span itemprop="name">Bob Smith</span>
  but people call me <span itemprop="nickname">Smithy</span>.
  Here is my home page:
  <a href="http://www.example.com" itemprop="url">www.example.com</a>
  I live in Albuquerque, NM and work as an <span itemprop="title">engineer</span>
  at <span itemprop="affiliation">ACME Corp</span>.
</div>

该示例的第一行包含一个 HTML div 标记, itemscope 属性,用于指明 div 包含微数据商品。通过 itemtype="http://schema.org/Person" 属性已开启 同一个标签即可表明这是人。人物项的各个属性 使用 itemprop 属性标识;例如 span 标记中的 itemprop="name" 描述了 此人的姓名请注意,你并不仅限于spandivitemprop="url" 标记已附加 a(锚标记)后添加标记。

要详细了解微数据,请参阅 <ph type="x-smartling-placeholder"></ph> 结构化数据文档HTML 微数据标准。

返回页首

查看提取的结构化数据

JSON-LD 结构化数据具有 Google 支持的特殊验证工具,即 富媒体搜索结果测试工具。它会检查 JSON-LD 的语法及其一些语义,尤其是结构化数据 包括必需属性和推荐属性 要查看其他形式的结构化数据, 数据,请使用架构标记验证器。它会验证 结构化数据的语法,并显示其解释后的形式。

可编程搜索引擎保留了 因此请使用可编程搜索引擎检查可编程搜索引擎的 可通过以下方式查看网页的结构化数据:

  1. 在以下位置开启搜索结果中的结构化数据高级搜索功能

    启用结构化数据的屏幕截图

  2. 然后使用该搜索引擎查找包含要查看数据的网页,并点击 结构化数据按钮:

    搜索结果中的结构化数据按钮的屏幕截图

如果您尚未使用结构化数据标记任何网页,但想了解 您可以输入 其他网站。包含评价信息或一系列评价的热门网站 尤其容易包含结构化数据。

找到包含结构化数据的网页后,您可以查看 网页的源代码,以查看网站已实施的结构化数据。例如: 请考虑以下包含结构化数据的 HTML 代码段, 以微格式实现的人员:

<div class="vcard">
    <h1 class="fn">
      <span class="given-name">Godzilla</span>
      <span class="family-name">Gigantis</span>
    </h1>
    <span class="title">Senior Giant Monster</span>,
    <span class="adr">
      <span class="locality">Tokyo</span>
    </span>
<div>

可编程搜索引擎会提取这些数据的以下子集 供您在结构化搜索中使用:

person (source = MICROFORMAT)
  location = Tokyo

返回页首

探索其他功能

结构化数据可用于多种可编程搜索引擎功能 包括: