使用结构化数据进行高级网站索引编制

如果您的数据存储区中启用了高级网站索引编制,您可以使用以下类型的结构化数据来丰富索引:

本页将介绍这两种网页结构化数据,并说明如何向数据存储区架构添加自定义结构化属性。

关于预定义和 Google 推断的网页日期

在抓取网站数据存储区中的网页时,Google 会使用适用于您内容的属性来推断网页数据。Agent Search 会将这些推断出的网页数据属性添加到您的架构中。此类推断数据包括以下预定义日期属性,也称为署名日期

  • datePublished:网页的首次发布日期和时间
  • dateModified:网页最近一次修改的日期和时间

系统会自动为这些属性编制索引。您可以直接使用这些日期属性来丰富搜索,而无需将其添加到架构中。 如需向您的网站添加署名日期,请参阅影响您在 Google 搜索中的署名日期

如需了解如何在搜索请求(例如过滤条件表达式和加权规范)中添加这些预定义的日期属性,请参阅使用 Google 推断的网页日期的示例使用情形

网页上的自定义日期时间字段简介

您可以向网页添加自定义日期时间字段。当您向数据存储区架构添加自定义结构化数据属性时,可以将此类标记与高级索引搭配使用。以下示例展示了如何在网页上添加名为 lastModified 的自定义日期时间元标记。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your web page title</title>

    <!-- Agent Search can use this date. -->
    <meta name="lastModified" content="2022-07-01">
</head>
<body>
    </body>
</html>

如需了解如何在搜索请求(例如在过滤表达式和提升规范中)中添加此类自定义日期时间标记,请参阅使用自定义日期时间属性的示例用例

自定义结构化数据属性简介

您可以将结构化数据属性添加为 meta 标记和页映射,并使用这些属性来丰富索引。如需使用自定义结构化属性进行索引编制,您必须更新架构。

meta 标记的使用情形示例

假设您有大量与组织中各个部门相关的网页。您可以使用 meta 标记来标记与每个部门相关的网页。然后,您可以在查询中使用已编入索引的标记作为过滤条件。这样一来,您就可以将搜索结果限制为包含与任何指定部门匹配的标签的网页。

此过程可总结如下:

  1. 将以下 meta 标记添加到部分网页:

    • 与工程和 IT 部门相关:

      <meta name="department" content="eng, infotech">
      <meta property="og:title" content="Password best practices">
      
    • 与财务部门和人力资源部门相关:

      <meta name="department" content="finance, human resources">
      <meta property="og:image" content="https://example.com/images/team-training-contractors.jpg">
      

      如需查看更详细的示例,请参阅网页上的 meta 标记示例

  2. 重新抓取更新后的网页。

  3. 按照向数据存储区架构添加自定义结构化数据属性部分中的说明,将 department 添加到数据存储区架构中,作为可编制索引的数组。

更新架构后,数据存储区会自动重新建立索引。重新编制索引完成后,您可以在过滤表达式中使用 department 过滤条件来重新排序或过滤搜索结果。例如,当财务部门的用户发出查询时,通过将 department 过滤条件设置为 finance,可以使搜索结果与他们更相关。

网页上的 meta 代码示例

以下是您可以添加到网页中的 meta 代码示例。当您向数据存储区架构添加自定义结构化数据属性时,此类标记可用于高级索引编制。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your web page title</title>

    <!-- Robots instructions for crawlers and for Agent Search. -->
    <meta name="robots" content="index,follow">

    <!-- Agent Search can use custom datetime fields to filter, boost, and order. -->
    <meta name="lastModified" content="2024-09-06">

    <!-- Agent Search can filter by category or tags. -->
    <meta name="category" content="archived">
    <meta name="tags" content="legacy,interesting,faq">

    <!-- Agent Search can index these common HTML tags. -->
    <meta name="description" content="A description of your web page's content.">
    <meta name="author" content="Your name or organization">
    <meta name="keywords" content="relevant,keywords,separated,by,commas">
    <link rel="canonical" href="https://www.yourwebsite.com/this-page">
    <meta property="og:title" content="Your Webpage Title">
    <meta property="og:description" content="A description of your webpage's content.">
    <meta property="og:image" content="https://www.yourwebsite.com/image.jpg">
    <meta property="og:url" content="https://www.yourwebsite.com/this-page">
    <meta property="og:type" content="website">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Your customized Webpage Title">
    <meta name="twitter:description" content="A description of your webpage's content.">
    <meta name="twitter:image" content="https://www.yourwebsite.com/image.jpg">
</head>
<body>
...
</body>
</html>

PageMap 的使用情形示例

假设您有多个包含美食食谱的网页。您可以将 PageMap 数据添加到每个网页的 HTML 内容中。然后,您可以在查询中使用已编入索引的 PageMap 属性名称作为过滤条件。例如,如果您打算根据食谱评分来提升或降低网页的排名,可以按以下流程操作:

  1. 向网页添加类似于以下内容的 PageMap 数据:

    <html>
    <head>
    ...
    <!--
    <PageMap>
        <DataObject type="document">
            <Attribute name="title">Baked potatoes</Attribute>
            <Attribute name="author">Dana A.</Attribute>
            <Attribute name="description">Homestyle baked potatoes in oven. This
            recipe uses Russet potatoes.</Attribute>
            <Attribute name="rating">4.9</Attribute>
            <Attribute name="lastUpdate">2015-01-01</Attribute>
        </DataObject>
    </PageMap>
    -->
    </head>
    ...
    </html>
    
  2. 重新抓取更新后的网页。

  3. 按照向数据存储区架构添加自定义结构化数据属性部分中的说明,将 rating 添加到数据存储区架构中,作为可编入索引的数组。

更新架构后,数据存储区会自动重新建立索引。重新编制索引完成后,您可以在过滤表达式中使用 rating 属性来重新排序或过滤搜索结果。例如,当用户搜索食谱时,使用 rating 作为自定义数值属性,提升评分最高的搜索结果。

schema.org 数据的应用场景示例

假设您有一个评价网站,其网页在 HTML script 标记内以 JSON-LD 格式添加了 schema.org 数据注释。然后,您可以在查询中使用已编入索引的注释作为过滤条件。例如,如果您打算根据汇总评分来提升或隐藏网页,可以按以下流程操作:

  1. 向网页添加类似于以下内容的 评价内容的 schema.org 注释。如需查看其他可用的 schema.org 模板类型,请参阅架构

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Review",
      "aggregateRating": {
        "@type": "Average Rating",
        "ratingValue": 3.5,
        "reviewCount": 11
      },
      "description": "Published in 1843, this is the perfect depiction of the Victorian London. A Christmas Carol is the story of Ebenezer Scrooge's transformation.",
      "name": "A Christmas Carol",
      "image": "christmas-carol-first-ed.jpg",
      "review": [
        {
          "@type": "Review",
          "author": "Alex T.",
          "datePublished": "2000-01-01",
          "reviewBody": "Read this in middle school and have loved this ever since.",
          "name": "Worth all the adaptations",
          "reviewRating": {
            "@type": "Rating",
            "bestRating": 5,
            "ratingValue": 5,
            "worstRating": 1
          }
        }
      ]
    }
    </script>
    
  2. 重新抓取更新后的网页。

  3. ratingValue 的路径添加到数据存储区架构。在数据存储区架构中使用标识符作为字段名称,例如 rating_value,如向数据存储区架构添加自定义结构化数据属性部分中所述。

更新架构后,数据存储区会自动重新建立索引。重新编制索引完成后,您可以在过滤表达式中使用 rating_value 属性来重新排序或过滤搜索结果。例如,当用户搜索图书时,使用 rating_value 作为自定义数值属性,提升高评分搜索结果的排名。

准备工作

在更新数据存储区架构之前,请执行以下操作:

向数据存储区架构添加自定义结构化数据属性

如需向数据存储区架构添加自定义结构化数据属性,请执行以下操作:

  1. meta 标记、PageMap 数据和 schema.org 数据添加到您希望通过结构化数据编入索引来丰富内容的网站网页中:

    • 对于 meta 代码:

    • 对于 PageMap 数据:

      • PageMap 数据必须包含您要编入索引的属性名称所对应的已识别的 DataObject。DataObjects 中的属性名称必须设置为您要编入索引的字段。
    • 对于 schema.org 数据:

      • 注释必须采用有效的 JSON-LD、微数据或 RDFa 格式。 如需了解详情,请参阅支持的格式
  2. 重新抓取更新后的网页。

  3. 通过 REST API 查看数据存储区的架构定义

  4. 使用 Google Cloud 控制台或 API 更新数据存储区架构。如果您选择通过 API 执行此操作,请了解如何以 JSON 对象形式提供您自己的架构

    1. 为要设为可搜索、可检索或可编入索引的每个自定义属性添加对象。

    2. 添加自定义属性,并将其 type 设置为 array

    3. 添加自定义属性值的数据类型。

    4. siteSearchStructuredDataSources 字段中指定自定义属性的来源。

    5. 对于 schema.org 数据:在 siteSearchSchemaOrgPaths 字段中指定 schema.org 注解中以字符串 _root 开头的属性的路径。

    以下是网站的架构更新示例:

    {
      "type": "object",
      "properties": {
        "CUSTOM_ATTRIBUTE": {
          "type": "array",
          "items": {
            "type": "DATA_TYPE",
            "searchable": true,
            "retrievable": true,
            "indexable": true,
            "siteSearchMetatagName": "METATAG_NAME",
            "siteSearchStructuredDataSources": ["STRUCTURED_DATA_SOURCE_1", "STRUCTURED_DATA_SOURCE_2"]
          }
        },
        "IDENTIFIER_FOR_SCHEMA_ORG_FIELD": {
          "type": "array",
          "items": {
            "type": "DATA_TYPE_SCHEMA_ORG_FIELD",
            "searchable": true,
            "retrievable": true,
            "indexable": true,
            "siteSearchSchemaOrgPaths": ["_root.PATH_TO_THE_SCHEMA_ORG_FIELD"]
          }
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema"
    }

    替换以下内容:

    • CUSTOM_ATTRIBUTEname 属性的值。 例如:

      • 对于定义为 <meta name="department" content="eng, infotech">meta 标记,请使用 department
      • 对于定义为 <Attribute name="rating">4.9</Attribute> 的 PageMap 属性,请使用 rating
    • DATA_TYPEname 属性的数据类型。必须是字符串、数字或日期时间。例如:

      • 对于定义为 <meta name="department" content="eng, infotech">meta 标记,请使用 string
      • 对于定义为 <Attribute name="rating">4.9</Attribute> 的 PageMap 属性,请使用 number
      • 对于定义为 <Attribute name="lastPublished">2015-01-01</Attribute> 的 PageMap 属性,请使用 datetime

      如需了解详情,请参阅 FieldType

    • METATAG_NAMEsiteSearchMetatagName 字段的值,用于指定网页中 meta 代码的确切名称。

      您只需在以下情况下使用 siteSearchMetatagName 解决方法:

      • meta 标记的 name 属性包含特殊字符(例如英文冒号),并且不符合 CUSTOM_ATTRIBUTE 的必需模式(即 [a-zA-Z0-9][a-zA-Z0-9-_]*)。

      例如,如果您有标记 <meta name="og:updated_time">,则不能将 og:updated_time 用作 CUSTOM_ATTRIBUTE。您应使用符合要求的 CUSTOM_ATTRIBUTE 标识符(例如 og_updated_time),然后将 siteSearchMetatagName 的值设置为 og:updated_time

      例如,如果您有标记 <meta name="description">,则不能将 description 用作 CUSTOM_ATTRIBUTE。您应使用符合要求的 CUSTOM_ATTRIBUTE 标识符(例如 meta_tag_description),然后将 siteSearchMetatagName 的值设置为 meta_tag_description

      使用 siteSearchMetatagName 更新架构时,您必须使用 v1alpha 端点(而非 v1 端点)来调用 schema 方法。

    • STRUCTURED_DATA_SOURCE_N:一个数组,包含以下一个或两个可找到 CUSTOM_ATTRIBUTE 属性的结构化数据源:

      • 如果自定义属性可以作为 meta 标记找到,请指定 METATAGS
      • 如果自定义属性可以作为 PageMap 属性找到,请指定 PAGEMAP
      • 如果自定义属性可以作为 schema.org 数据找到,请指定 SCHEMA_ORG
      • 如果 siteSearchStructuredDataSources 字段不存在或留空,则来自所有三个数据源的值会合并到一个数组中。
    • IDENTIFIER_FOR_SCHEMA_ORG_FIELD:用于表示 schema.org 字段的自定义标识符。不必与网页上 schema.org 注解中的字段名称完全相同。例如,如果字段的路径为 _root.nutrition.calories,则标识符可以是 calorific_valuenutrition_value

    • DATA_TYPE_SCHEMA_ORG_FIELD:schema.org 字段的数据类型。必须是字符串、数字或日期时间。例如:

      • 对于定义为“卡路里”的 schema.org 字段:“240 卡路里”,请使用 string
      • 对于定义为“卡路里”的 schema.org 字段:240,请使用 number
      • 对于定义为“foundingDate”的 schema.org 字段:“1991-05-01”,请使用 datetime

      如需了解详情,请参阅 FieldType

    • PATH_TO_THE_SCHEMA_ORG_FIELD:需要访问的 schema.org 字段中单个字段的路径。它使用点分隔符在每个嵌套级别后指定。您必须指定访问所需字段所需的完整路径。例如,如果字段 ratingValue 嵌套在字段 aggregateRating 中,您可以将路径指定为 _root.aggregateRating.ratingValue

更新网站架构后,系统会自动重新为网站编制索引。 这是一项长时间运行的操作,可能需要几个小时才能完成。

后续步骤

使用已编入索引的元数据执行以下操作: