Google AMP 快取會提供有效發布到網路的有效 AMP 內容快取副本。 直接從 Google AMP 快取提供內容,提供快速的使用者體驗。
如要善用 Google AMP 快取功能,您必須使用 AMP 快取網址格式,直接從快取存取 AMP 網址。每次使用者從快取存取 AMP 內容時,內容都會自動更新,並在快取內容後提供給下一位使用者。
AMP 快取網址格式
AMP 快取網址格式包含下列元件:
元件 | 說明 |
---|---|
子網域名稱 | 字元限制和技術規格允許時,Google AMP 快取建立的子網域會清晰易懂,並與發布商自有網域非常接近。Google AMP 快取會在可行情況下建立下列子網域:
舉例來說, |
內容類型 | 內容類型是下列其中一種: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">