總覽

Google AMP 快取會提供有效發布到網路的有效 AMP 內容快取副本。 直接從 Google AMP 快取提供內容,提供快速的使用者體驗。

如要善用 Google AMP 快取功能,您必須使用 AMP 快取網址格式,直接從快取存取 AMP 網址。每次使用者從快取存取 AMP 內容時,內容都會自動更新,並在快取內容後提供給下一位使用者。

AMP 快取網址格式

AMP 快取網址格式包含下列元件:

元件 說明
子網域名稱

字元限制和技術規格允許時,Google AMP 快取建立的子網域會清晰易懂,並與發布商自有網域非常接近。Google AMP 快取會在可行情況下建立下列子網域:

  1. 將 AMP 文件網域從 IDN (Punycode) 轉換為 UTF-8。
  2. 將每個「-」(破折號) 分別替換為「--」(2 個破折號)。
  3. 將每個「.」(點) 換成「-」(破折號)。
  4. 正在轉換回 IDN (Punycode)。

舉例來說,pub.com 會對應到 pub-com.cdn.ampproject.org。如果技術限制導致使用者無法判讀子網域,系統會改用單向雜湊。

內容類型 內容類型是下列其中一種:AMP HTML 文件的「c」代表圖片、「i」代表圖片,「r」代表字型等資源。Google AMP 快取會針對與這類內容類型相符的資源傳回 404 錯誤 (請參閱核心錯誤)。
選用的「s」 如果有的話,你必須要求 Google 使用傳輸層安全標準 (TLS) 從來源擷取內容。如果沒有「'」,代表內容使用純 HTTP 從來源中擷取。
URI 要擷取的內容 URI。URI 不得採用配置,也就是無「http://」或「https://」。

尋找子網域名稱

一般來說,Google AMP 快取網址的子網域會以使用者可理解的方式轉換原始網址。但是,如果是某些情況下可能不合乎需求,建議您使用 Google AMP Cache URL API,擷取可用於實際工作環境的應用程式的 Google AMP 快取網址。

如要針對非實際工作環境情況,判斷 Google AMP 快取產生的子網域名稱,請嘗試在 amp.dev 上使用使用 Google AMP 快取互動工具。

使用傳輸層安全標準 (TLS) 要求文件的範例

要求從 https://example.com/amp_document.html 擷取的 AMP HTML 文件 (使用 /c 前置字元指定):

https://example-com.cdn.ampproject.org/c/s/example.com/amp_document.html

由於 /s 加上 /c 前置字串,因此系統會使用傳輸層安全標準 (TLS) 從 example.com 擷取文件。

使用純 HTTP 要求圖片的範例

要求從 http://example.com/logo.png 擷取圖片 (包含 /i 前置字元):

https://example-com.cdn.ampproject.org/i/example.com/logo.png

由於 /i 前置字串後方沒有 /s,因此 Google 會使用純文字 HTTP,而非透過傳輸層安全標準 (TLS) 從 example.com 擷取映像檔。

查詢參數範例

AMP 快取網址格式也可以在查詢字串中加入參數。 以下是含有參數的 HTTPS 範例: https://example-com.cdn.ampproject.org/c/s/example.com/g?value=Hello%20World

Google AMP 快取更新

當使用者透過 Google AMP 快取要求取得 AMP 文件時,快取機制會自動要求更新,以便在快取內容後為下一位使用者提供最新內容。透過這個模型,AMP 文件的更新會自動套用快速又順暢,更新完成後,使用者會看到更新的版本。

快取遵循「s 過時-re-revalidate」模型。系統會使用來源的快取標頭 (例如 Max-Age) 來提示特定文件或資源是否過時。當使用者對過期的要求發出要求時,該項要求會擷取新的副本,以便下一個使用者取得最新內容。

為了限制發布商網站產生的負載量,Google AMP 快取會將至少 15 秒的文件更新時間,以及任何資源至少 1 分鐘更新。請注意,由於我們會調整快取,以便在發布商網站與新鮮程度和負載之間取得最佳平衡,因此這些數字日後可能會改變。

快取最佳化和修改

Google AMP 快取會執行最佳化調整和修改,例如:

  • 驗證內容是否確實為 AMP 格式,並符合所有 AMP 成效目標。
  • 快取圖片和字型,以及 AMP 文件。
  • 限制圖片尺寸上限,以免瀏覽器記憶體問題或回應不良。
  • 多項轉換作業,透過 amp-img 標記提高圖片傳送效率,例如:
    • 移除看不見或難以辨識的資料,例如特定中繼資料。
    • 在使用支援 WebP 的瀏覽器中,將圖片轉換成小型和行動裝置相容性的圖片格式,例如將 GIF、PNG 和 JPEG 格式的圖片轉換為 WebP。
    • 如果要求包含 Save-Data 標頭,則可以將圖片轉換成較低畫質。
    • 產生替代大小的版本並新增 srcset 屬性,以支援提供回應式大小的圖片。
  • 透過安全的頻道 (HTTPS) 提供服務,並使用最新的網路通訊協定 (SPDY、HTTP/2)。
  • 對 AMP 文件進行清理,以免 HTML 標記錯誤、註解等錯誤而發生 XSS 攻擊。

進行上述轉換時,Google AMP 快取會忽略「Cache-Control: no-transform」標頭。

HTML 清理

Google AMP 快取會將所有文件改寫為正規化作業。例如:

  • 系統會移除所有 HTML 註解。
  • 標記和屬性名稱已縮短。
  • 屬性值會持續加上引號並逸出。
  • 除了 HTML5 void 元素之外,所有標記都會關閉。
  • 標記中的空白字元會被移除。
  • 文字會逸出。
  • 使用 UTF-8 對等字元簡化編碼的文字字元。
  • 只能在 body 中的元素會移至 body
  • 對外連結是絕對的,因此當文件是透過 Google AMP 快取來源 (而非發布商來源) 提供時,會一直維持有效狀態。

插入預先擷取代碼

Google AMP 快取會在瀏覽器中加入各種預先擷取提示代碼,協助您提早載入資源。例如,<link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet’> 變更為:

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link href="https://fonts.gstatic.com" rel="dns-prefetch preconnect">