开始在 Google 搜索中使用 Signed Exchange

Signed Exchange (SXG) 让 Google 搜索能够预提取您的内容,同时又不损及用户隐私。在实践中,这意味着如果相关网站支持 SXG,则 Google 搜索中显示的 AMP 和非 AMP 结果可能会以注重隐私保护的方式预提取一些关键资源(例如 HTML、JavaScript、CSS、图片或字体)。

当用户最终点击结果时,由于已有可用的关键资源,网页会更快地开始呈现,从而提供更出色的用户体验。得益于此,内容的 Largest Contentful Paint (LCP) 得分可能会降低。虽然是否使用 SXG 不会直接影响 Google 搜索排名,但 LCP 得分更低可能会提升排名,这是因为网页体验也将作为一项排名因素

实现 SXG

如需实现 SXG,请遵循 web.dev 上的详细指南

对于 AMP 网页,请遵循 amp.dev 上的详细指南

Google 使用 SXG 缓存来预提取内容。Google 可能会多次提供这些缓存的 SXG。

为了确保在 Google 搜索中显示最新内容,请适当设置 SXG 的失效日期。一般来说,应确保失效日期早于以下两个日期:

  • 由 HTTP 缓存控制标头设置的失效日期
  • 如果内容是 JavaScript 或内联 JavaScript,则为 1 天后;否则为 7 天后

为了确保内容在多种设备上提供时能正确显示,请执行以下操作:

  1. 将个性化内容(如购物车)迁移到 SXG 外部的延迟加载元素中。例如,仅对 cache control 标头设置为 public 指令的资源进行签名。
  2. 采用自适应设计构建网页。或者,使用单独的网址提供桌面版和移动版网页,或使用 supported-media 元标记为网页添加注解,声明网页不是自适应网页。 例如,在网页的 <head> 元素中添加以下标记:
    <meta name=supported-media content="only screen and (max-width: 640px)">

验证 SXG 设置

为了确保 Googlebot 能够抓取 SXG 提供的网页并将其编入索引,请按以下步骤操作:

  1. 验证 Content-Type 是否设置为 application/signed-exchange;v=b3
  2. 确保 dump-signedexchange 命令成功执行。
  3. 检查签名的网址是否与请求的网址完全匹配。

监控和调试 SXG

如需了解有哪些工具可用于调试 SXG,请参阅 web.dev 上的 SXG 工具指南

对于非 AMP 网页,请使用“抓取统计信息”报告监控提取错误。

对于 AMP 网页,请使用 Search Console 中的“AMP 状态”报告监控 SXG 错误

调试 Google SXG 缓存

如需确定 SXG 是否符合缓存要求,请直接查询 Google SXG 缓存。 例如,如果 SXG 网址为 https://signed-exchange-testing.dev/sxgs/valid.html,则设置相应的缓存网址:

http://signed--exchange--testing-dev.webpkgcache.com/doc/-/s/signed-exchange-testing.dev/sxgs/valid.html

用于计算子网域和网址路径后缀的算法与 AMP Cache 相同,但中缀字符串 /doc/-/ 有所不同。

如果响应为 SXG,这意味着来自源服务器的响应符合 Google SXG 缓存要求。否则,响应中将包含指明原因的 HTTP 标头。

  • 如果存在 Warning 标头,则表示出现了错误,导致 SXG 不符合缓存要求。
  • 如果存在 Location 标头,则表示相应资源尚未被缓存系统提取。这不是 SXG 中存在的错误。

无论给出了怎样的响应,缓存系统都会在队列中加入一个对原始网址的请求,以获取一份最新副本。多种因素都会影响系统何时以及是否发出此请求,包括网站的 Googlebot 抓取速度

对于 AMP 网页,可以使用网址检查工具调试缓存错误。

随时掌握最新信息

订阅 webpackaging-announce 邮寄名单,随时掌握关于以下变更的最新消息:

  • Google SXG 缓存系统的变更,包括增添新功能或弃用现有功能的变更。
  • SXG 工具 Web Packager、NGINX SXG 模块和 libsxg 的重大变更。

如果您对在 Google 搜索中使用 SXG 有任何疑问,请访问搜索中心帮助社区