web-dev-qa-db-ja.com

Google Pagespeedは、キャッシュが既に有効になっているときにブラウザーのキャッシュを活用するように指示します

Google Pagespeed Insightsでは、ブラウザーのキャッシュを有効にする必要があると言われていますが、何が欠けているのかわかりません。最適化を有効にしてcloudflareを使用しています。 chrome開発者ツールにこのHTTPヘッダーがあります:

cache-control:public、max-age = 86400

キャッシュはすでに有効になっているようです!私も追加しました

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>

私のweb.configファイルで。

他に何をすべきか分かりません。 Googleからのエラーは次のとおりです。

enter image description here

8
euge9522

キャッシュ制御としては24時間では足りません:)理論的には、画像も名前が変わることなく変更されることはないので、1年(またはより快適に感じるなら1か月)に簡単に設定できます。

イメージを新しいイメージに置き換えると、新しい名前が付けられます。 picture-of-cat-on-18th-birthday.jpgは、突然同じファイル名を持つ他の画像にはなりません。このため、ファイル名はコンテンツにある程度固有のものにする必要があります。

CSSやJSなどの他のタイプのリソースの場合、別の戦術を選択することもできます。 (多くの場合)ファイルを変更し、決して/ほとんど変更しない場合、ファイルのキャッシュ長を分割する必要があります。

  • 変わらない->非常に長いキャッシュ
  • 変更->低キャッシュ

これはできません。これらの両方を実行することも、まったく実行しないこともできます。。htaccessはファイルタイプを認識します。
このため、ロングキャッシュに設定し、変更があった場合は新しいダウンロードを強制するために後置を使用します。

<script src="static.js" />  
<script src="changing.js?last_update=150422" />

この方法では、実際に変更を加えた場合にのみ、ユーザーはそれを再ダウンロードする必要があります。
この手法はすべてのリソースで機能します。常に最高のキャッシュ期間を目指します。

6
Martijn

前の回答では、24時間では不十分であることがわかりました。しかし、Googleドキュメントを調べる: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#defining-optimal-cache-control-policy 最適なキャッシュのために画像を1日間キャッシュすること。

SEOを改善するには、画像に指紋を付けない方がよいため、短時間の画像のキャッシュは理にかなっています。したがって、イメージを変更する場合は、良いトレードオフです。

また、24時間後に画像が再度読み込まれる(キャッシュ制御を1日に設定した場合)のではなく、サーバーは往復して再キャッシュすることにより、eタグを使用して画像を比較します。

したがって、なぜpagespeedの洞察ツールがGoogle自身の推奨事項を尊重しないのかという疑問が残ります。

4
Samuel