使用站点地图为网页编制索引并刷新网页

如果您的数据存储区中启用了高级网站索引编制功能,您可以提交和使用站点地图,以便为数据存储区中的网页编制索引并刷新这些网页。此功能仅支持 XML 站点地图和站点地图索引

本页面介绍了如何提交站点地图或站点地图索引,以触发基于站点地图的索引编制和刷新。如需了解如何在没有站点地图的情况下实现自动和手动刷新,请参阅 刷新网页

此外,本页面还介绍了如何查看数据存储区中的站点地图或删除站点地图。

基于站点地图的刷新概念

以下是一些关键概念和术语,可帮助您入门:

  • 站点地图协议: Agent Search 支持的所有站点地图和站点地图索引都必须遵循站点地图协议

  • 站点地图:站点地图是采用 UTF-8 编码的 XML 文件,其中包含网站中网页和文件的网址列表,以及其他重要但可选的信息,例如网页的最后修改日期,以及相对于网站中的其他网页,该网页被抓取工具提取的优先级。根据站点地图 协议,单个站点地图最多可以包含 50,000 个网址,且大小上限为 50 MB。

  • 站点地图索引:如果站点地图超出网址数量上限或大小上限, 您可以创建多个站点地图,并在站点地图索引 文件中列出这些站点地图。根据 站点地图协议,单个 站点地图索引最多可以嵌套 50,000 个站点地图,且大小上限 为 50 MB。

您可以向 Agent Search 提交一个或多个站点地图、一个或多个站点地图索引,或者站点地图和站点地图索引的组合。

当您向 Agent Search 数据存储区提交站点地图或站点地图索引时,系统会触发以下操作

  • 为数据存储区索引中包含的网址编制索引。

    • 对于仅基于站点地图的刷新,此列表仅包含站点地图或站点地图索引中符合数据存储区中包含的网址格式的网址。
    • 对于组合刷新,此列表包含自动刷新过程发现的所有网址。

    如需详细了解这两种刷新过程,请参阅 网站数据存储区刷新方法仅基于站点地图的刷新

  • 每天刷新添加到站点地图、从站点地图中删除以及在站点地图中更新的网址。 例如,当您更新站点地图中网址的 lastmod 字段时,该网址即为更新后的网址。

  • 每 14 天定期刷新未更改的网址。

网站数据存储区刷新方法

您可以选择以下任一方式,将基于站点地图的刷新纳入数据存储区:

  • 仅基于站点地图的刷新:通过关闭 初始索引编制和自动刷新,专门使用基于站点地图的刷新。
  • 组合刷新:将基于站点地图的刷新与初始索引编制和 自动刷新结合使用。

无论您选择哪种刷新方法,都可以随时手动刷新数据存储区 索引中的特定网页。

仅基于站点地图的刷新

创建网站数据存储区时,您必须为要纳入数据存储区索引的网页提供网址模式。默认情况下,当您完成网站数据存储区的创建后,Agent Search 会为这些包含的网页生成初始索引。

对于启用了高级网站索引编制功能的网站数据存储区,初始索引编制 过程是自动刷新的一部分。初始索引编制过程会对 Google 搜索中提供的所有包含的网址编制索引。这些网址的初始新鲜度与 Google 搜索中提供的新鲜度一致。初始索引编制完成后,自动刷新过程会尽最大努力发现新网页并刷新这些网页。由于此过程会发现可能超出所需范围的网址,因此可能会导致网页相对过时,并且索引会变得更庞大。

您可以选择执行仅基于站点地图的刷新,这在以下情况下非常有用:

  • 您有一个维护良好的站点地图,并且该站点地图是最新的。
  • 您有一个大型网站,并且需要更好地控制要为哪些网页编制索引。这样可以获得更精简、更易于管理的索引。
  • 您需要每天刷新添加和更新的网页,并移除已删除的网页。这样可以获得更新鲜的索引,该索引反映了站点地图。

下表比较了刷新数据存储区索引的不同方法:

刷新方法 精确率 手动干预 频率 发现
基于站点地图的刷新 完全匹配。仅为站点地图中的网址编制索引。 提交站点地图或站点地图索引后不需要 对于站点地图中添加、删除、更新的网址,每天刷新一次。对于未更改的网址,每 14 天刷新一次 不会超出站点地图中指定的范围。
手动刷新(也称为重新抓取) 完全匹配。仅为重新抓取请求中指定的网址编制索引。 需要 按需 不需要
自动刷新 不完全匹配。系统会尽最大努力刷新数据存储区。 不需要 随机,并尽最大努力 是。发现的网址超出 Google 搜索中提供的范围。

准备工作

在向 Agent Search 数据存储区提交站点地图或站点地图索引之前,请执行以下操作:

  • 根据 站点地图协议,创建 XML 站点地图或引用 网站的所有站点地图的站点地图索引。

  • 了解向 Agent Search 数据存储区提交站点地图或站点地图索引时,无需将其提交给 Google 搜索。

  • 您希望编入索引的站点地图中的所有网址都必须属于在数据存储区中经过验证的公共网域。如需了解详情, 请参阅验证网站网域

  • 站点地图 URI(或包含嵌套站点地图 URI 的站点地图索引 URI)必须 公开可用,并且可供 Googlebot 用户代理访问。与使用 Google-CloudVertexBot 用户代理的网页抓取不同,Agent Search 使用 Googlebot 来提取站点地图文件。 如果您的 robots.txt 文件、CDN 或防火墙阻止 Googlebot 访问站点地图 URI,则 Agent Search 无法提取站点地图,并且即使 Google-CloudVertexBot 正在抓取您的网页,其网址也不会通过站点地图编入索引或刷新。

  • 如果您在网站中使用 robots.txt 文件,请更新该文件,以允许 Google-CloudVertexBot 用户代理(用于抓取网页并为其编制索引)和 Googlebot 用户代理(用于提取站点地图)。 如需了解详情,请参阅如何 准备网站的 robots.txt 文件

向数据存储区提交站点地图或站点地图索引

如需触发数据存储区中包含的网页的索引编制和刷新,请按以下步骤操作:

  1. 确定您是想执行仅基于站点地图的刷新,还是想将基于站点地图的刷新与其他方法结合使用。

  2. 如需执行仅基于站点地图的刷新,请执行此步骤,否则请跳到下一步。

    您无法使用已进行初始索引编制和刷新的现有数据存储区。您必须使用 AdvancedSiteSearchConfig 配置关闭初始索引编制和自动刷新,以创建新的数据存储区。

    REST

    创建一个仅启用站点地图刷新的数据存储区。为此,请关闭初始索引编制和自动刷新。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID&createAdvancedSiteSearch=true" \
    -d '{
       "displayName": "DATA_STORE_DISPLAY_NAME",
       "industryVertical": "GENERIC",
       "content_config": "PUBLIC_WEBSITE",
       "searchTier": "ENTERPRISE",
       "advancedSiteSearchConfig": {
          "disableInitialIndex": true,
          "disableAutomaticRefresh": true,
       }
    }'
    

    注意:将 disableAutomaticRefresh 设置为 true 仅会停用基于发现的自动刷新, 而不会影响根据提供的站点地图(检查 lastmod 字段等更改)进行的每日自动刷新。

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • DATA_STORE_ID:您要创建的 Agent Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。
    • DATA_STORE_DISPLAY_NAME:您要创建的 Agent Search 数据存储区的显示名称。

  3. 更新网站的网址模式,以指定要在数据存储区中包含和排除的网站。如需了解详情,请参阅使用网站 内容创建数据存储区。

  4. 验证网域,这些网域属于数据存储区中包含的网页。

  5. 无论您选择仅基于站点地图的刷新还是组合 刷新,都请使用 sitemaps.create 方法向数据存储区提交站点地图或站点地图索引 URI。

    REST

    提交站点地图或站点地图索引。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_NUMBER" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/siteSearchEngine/sitemaps?sitemap.uri=SITEMAP_URI"
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • DATA_STORE_ID:Agent Search 数据存储区的 ID。
    • SITEMAP_URI:您要提交的单个 站点地图或站点地图索引的公开 URI。提交 站点地图索引时,只需提交站点地图索引的 URI 即可。 Agent Search 会自动为站点地图索引中嵌套的所有 站点地图中包含的网址编制索引。

    向数据存储区提交站点地图或站点地图索引后,Agent Search 会触发以下操作:

    • 为站点地图中符合条件的网址(即数据存储区中包含的网址)编制索引。此过程平均需要几个小时才能完成。较大的站点地图可能需要更长时间才能编制索引。
    • 每天刷新包含符合条件的网址的网页。

    如需了解对站点地图或站点地图索引的修改如何影响刷新, 请参阅对站点地图和站点地图索引的更改

  6. 查看数据存储区中的站点地图。

对站点地图和站点地图索引的更改

首次提交后,Agent Search 会每天检测站点地图或站点地图索引中的修改,并按以下方式处理这些修改:

  • 对站点地图的更改:
    • 添加网址时:与数据存储区包含的网址模式匹配的网址会添加到索引中,并每天刷新一次。
    • 移除网址时:如果移除的网址位于索引中,则会从索引中移除,并且不再刷新。
    • 更新现有网址时(例如,更新站点地图中网址的 lastmod 字段时):任何与数据存储区包含的网址模式匹配的更新后的网址都会刷新。刷新通常会在更新后 24 小时内进行。
  • 对站点地图索引的更改:
    • 添加站点地图时:新站点地图中与数据存储区包含的网址模式匹配的网址会添加到索引中,并每天刷新一次。
    • 移除站点地图时:与数据存储区包含的网址模式匹配的网址不再刷新。不过,这些网址仍保留在索引中。如需从索引中移除站点地图及其网址,请参阅 从索引中移除站点地图及其网址

列出数据存储区中的站点地图和站点地图索引

如需列出数据存储区中的所有站点地图和站点地图索引,请使用 sitemaps.fetch方法。如果您已提交站点地图索引,则此方法会返回站点地图索引,而不是单个嵌套的站点地图。 如果数据存储区中没有站点地图,此请求会返回一个空的 JSON 文件。

REST

列出数据存储区中的站点地图和站点地图索引。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/siteSearchEngine/sitemaps:fetch"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • DATA_STORE_ID:Agent Search 数据存储区的 ID。

检查数据存储区中是否存在站点地图或站点地图索引

如需检查数据存储区中是否存在站点地图或站点地图索引,请使用 sitemaps.fetch 方法。如果您要检查的站点地图或站点地图索引已提交到数据存储区,则响应会包含站点地图名称和站点地图 URI。如果您已提交站点地图索引,则检查站点地图索引中的单个站点地图不会返回正确的结果。

REST

检查数据存储区中是否存在站点地图或站点地图索引。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/siteSearchEngine/sitemaps:fetch?matcher.uris_matcher.uris=SITEMAP_URI_1&matcher.uris_matcher.uris=SITEMAP_URI_2"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • DATA_STORE_ID:Agent Search 数据存储区的 ID。
  • SITEMAP_URI_N:您要在数据存储区中检查的站点地图或 站点地图索引的公开 URI。

从数据存储区中删除站点地图或站点地图索引

如需从数据存储区中删除站点地图,请使用 sitemap.delete方法。 删除站点地图不会从索引中移除其网址。如需从索引中移除 站点地图及其网址,请参阅从索引中移除站点地图及其网址 从索引中移除

REST

删除站点地图或站点地图索引。

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/siteSearchEngine/sitemaps/SITEMAP_ID"

替换以下内容:

从数据存储区索引中移除站点地图或站点地图索引及其网址

如需从索引中移除站点地图或站点地图索引及其网址,请按以下步骤操作:

  1. 移除提交到数据存储区的站点地图或站点地图索引的所有网址,以清空该站点地图或站点地图索引。

    如果您向数据存储区提交了站点地图索引,请移除所有网址以清空嵌套的站点地图,并从站点地图索引中移除站点地图。

  2. 等待 48 小时,以便 Agent Search 处理这些更改并从数据存储区的索引中移除网址。

  3. 删除站点地图或站点地图索引