AMP

AMP ページのキャッシュの仕組み

このドキュメントでは、AMP エコシステムにおける AMP キャッシュの役割と、AMP ページがキャッシュされる仕組みについて学習します。

AMP キャッシュとは

AMP キャッシュは、有効な AMP ドキュメントを配信するための、プロキシベースのコンテンツ配信ネットワークです。AMP キャッシュは次のような目的で設計されています。

  1. 有効な AMP ページのみを配信する。
  2. AMP ページが効率的、安全にプリロードされるようにする。
  3. コンテンツに対して、ユーザーにメリットのある追加のパフォーマンス最適化を行う。

AMP キャッシュについて詳しくは、下記の YouTube 動画やブログ記事「AMP キャッシュが存在する理由」をご覧ください。

AMP キャッシュが存在する理由については、こちらの動画をご覧ください。

使用できる AMP キャッシュの種類

現在、2 つの AMP キャッシュ プロバイダがあります。

AMP はオープン エコシステムであり、AMP プロジェクトでは AMP キャッシュの開発を積極的に奨励しています。AMP キャッシュの作成について詳しくは、AMP キャッシュ ガイドラインをご覧ください。

AMP キャッシュの選択

サイト運営者が AMP キャッシュを選択することはありません。使用する AMP キャッシュ(ある場合)を選択するのは、実際には、コンテンツにリンクしているプラットフォームです。

これは、サイト運営者がコンテンツ配信を担当する一般的なモデルとは逆の形です。しかし、このモデルでは、プラットフォームがユーザーに予測可能な読み込みのパフォーマンスを提供することができます。特に、プリレンダリングの段階で求められるセキュリティとプライバシーの不変性をプラットフォームが保証できるようになります。AMP キャッシュの作成に関する詳細なガイドラインについては、AMP キャッシュ ガイドラインをご覧ください。

キャッシュのオプトアウト

キャッシュは AMP エコシステムの中心部分です。有効な AMP ドキュメントを公開すると、自動的にキャッシュ配信が有効になります。

ドキュメントをキャッシュしたくない場合は、HTML タグから amp 属性を削除する方法があります。これによってドキュメントは技術的に無効な AMP となりますが、ドキュメントの機能には影響を与えません。

キャッシュされた AMP ページのリクエスト元

キャッシュされた AMP ページには、プラットフォーム(Google 検索、Google ニュース、Bing など)やモバイルアプリがアクセスします。モバイルアプリは、URL を介して(Google の AMP URL API をご覧ください)、または、プログレッシブ ウェブアプリのクロスオリジン XHR によって(AMP を埋め込んでデータソースとして使用するをご覧ください)、キャッシュされた AMP コンテンツにリンクすることができます。

AMP ページがキャッシュされる仕組み

AMP 形式を使用することで、コンテンツは AMP キャッシュによるキャッシュが可能な状態になります。AMP ページが AMP キャッシュに格納されるには、いくつかの方法があります。

  • プラットフォームによる検出: プラットフォームが <html ⚡> タグや <html amp> タグを介して AMP コンテンツを検出し、そのコンテンツをキャッシュします。たとえば、Google 検索はコンテンツをクロールします。有効な AMP ページを特定した場合、そのコンテンツは Google AMP キャッシュに追加されます。

  • キャッシュ URL リクエスト: プラットフォームは AMP キャッシュ URL の形式を使用して、AMP ページを明確にリクエストすることができます。AMP キャッシュはリバース プロキシとして機能するため、プラットフォームがページにアクセスすると、ページは自動的にキャッシュされることになります。

    • Google AMP キャッシュ URL の例: https://foo-com.cdn.ampproject.org/c/s/foo.com/amp_document.html

AMP キャッシュ URL はユーザーに表示される URL ではありません。つまり、通常、ユーザーがその URL を介してコンテンツをリクエストすることはありません。

  • サイト運営者による追加: サイト運営者は AMP ページを明示的に AMP キャッシュに追加することができます。これは Google AMP キャッシュ(Google AMP キャッシュ: AMP コンテンツの更新をご覧ください)でのみ使用できる方法です。

その他のリソース