針對 Google 搜尋開始使用 Signed Exchange

Signed Exchange (SXG) 可讓 Google 搜尋預先擷取您的內容,同時確保使用者的隱私安全。從實務上來看,這代表如果相關聯的網站支援 SXG,那麼不論是 Google 搜尋中顯示的 AMP 還是非 AMP 搜尋結果,或許都可以透過保護隱私權的方式預先擷取某些關鍵資源,例如 HTML、JavaScript、CSS、圖片或字型等。

由於關鍵資源已準備就緒,因此當使用者最終點選搜尋結果時,網頁開始顯示的速度就會變快,進而提供更優質的使用者體驗。不過,這可能表示內容的最大內容繪製 (LCP) 得分會較低。雖然 Google 搜尋不會將使用 SXG 與否當做排名的直接考量因素,但較低的 LCP 得分仍可能影響排名,因為網頁體驗是決定排名的因素之一

實作 SXG

如要實作 SXG,請按照 web.dev 的詳盡指南操作。實作後,請按照這份指南使用 SXG 針對效能改善作業進行評估和最佳化

如果是 AMP 網頁,請按照 amp.dev 的詳盡指南操作。

Google 會使用 SXG 快取來預先擷取您的內容,因此可能會多次提供這些快取 SXG。

為確保 Google 搜尋能夠顯示最新的內容,請妥善設定 SXG 的到期日。原則上,請確保到期日在以下兩個日期之前:

  • 由 HTTP 標頭判定的快取到期時間
  • 如果內容是透過 JavaScript 或內嵌 JavaScript 建立,就是 1 天後;其他情況則是 7 天後

為確保內容在多部裝置上提供時能正常顯示,請執行以下操作:

  1. 將購物車等個人化內容移至 SXG 外的延遲載入元素中。或者,您也可以新增 Vary: Cookie 簽名標頭;只有不具備您的網站 Cookie 的訪客才會看到含有這個標頭的 SXG。
  2. 採用回應式網頁設計來建構網頁,或者透過不同網址提供電腦版和行動版網頁;您也可以使用 supported-media 中繼標記為網頁加註,說明這些網頁不是回應式網頁。 例如,在網頁的 <head> 元素中加入下列標記:
    <meta name=supported-media content="only screen and (max-width: 640px)">

監控及對 SXG 進行偵錯

如需可用來對 SXG 偵錯的工具清單,請參閱 web.dev 的 SXG 工具指南

如果 Googlebot 無法剖析 SXG,系統為了擷取 text/html 變數,可能會在 Accept 標頭中缺少 application/signed-exchange;v=b3 的情況下重新檢索網址。如果發生任何 SXG 索引錯誤,Google 搜尋會連結至原始網址,不使用 SXG。

如果是 AMP 網頁,請使用 Search Console 中的 AMP 狀態報告來監控 SXG 錯誤

對 Google SXG 快取進行偵錯

如要判斷 SXG 是否符合快取規定,請使用 SXG Validator Chrome 擴充功能

或者直接查詢 Google SXG 快取。 舉例來說,如果 SXG 網址為 https://signed-exchange-testing.dev/sxgs/valid.html,請將對應的快取網址建立為:

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

用來計算子網域和網址路徑後置字串的演算法與 AMP 快取的演算法相同,但中置字串 /doc/-/ 並不相同。

如果回應是 SXG,表示原始伺服器的回應符合 Google SXG 快取規定;如果不是,回應會含有用來說明原因的 HTTP 標頭。

  • 如果有 Warning 標頭,代表發生錯誤,導致 SXG 無法符合快取規定。
  • 如果有 Location 標頭,即表示快取尚未擷取該標頭。這並不是 SXG 中的錯誤。

無論是哪一種回應,快取都會將對原始網址的要求排入佇列,然後要求更新的網址。這個要求何時會發生,以及是否會發生,都取決於多項因素,包括網站的 Googlebot 檢索頻率

Google 對 SXG 快取的時間不會超過 SXG 簽名中的 expires 值,或是 SXG 回應中未簽署標頭中的更新生命週期

針對 AMP 網頁,您可以使用網址檢查工具對快取錯誤進行偵錯。

持續關注最新資訊

訂閱 webpackaging-announce 郵寄清單即可掌握下列各項最新異動:

  • Google SXG 快取變動,包括新功能啟用和舊功能淘汰等內容。
  • SXG 工具 Web Packager、NGINX SXG 模組和 libsxg 的重大變更。

如果您對 Google 搜尋的 SXG 有任何疑問,請造訪搜尋中心產品討論社群