公章TweetCDNサーバにコンテンツがキャッシュされないことがあります。ここでは、原因と考えられる事項をまとめます。参考:CDNキャッシュヒットの判定CDNのデフォルト設定HTMLファイルCloudflareなどのCDNでは、キャッシュのデフォルト設定が以下のようになっています(変更が多いHTMLはキャッシュさせず、イメージのみをキャッシュさせるというポリシです):HTMLファイル:キャッシュしないイメージファイル:キャッシュする検索文字列を含む多くのCDNのデフォルト設定では、検索文字列(例:http://example.jp/index.html?page=1)を含むURLをキャッシュしません。クッキーを含む多くのCDNのデフォルト設定では、HTTPリクエストにクッキーが含まれれる場合、対象URLをキャッシュしません。ETAGヘッダが設定されているオリジンサーバがクラスタ化(複数台により構成)されており、ETAGヘッダが生成されている場合、ひとつのURLに対し複数のETAG値が存在することになります。この場合、キャッシュは正常に稼動しません。この修正には、オリジンサーバでETAGヘッダを生成させないようにする必要があります。NonePragmaおよびCache-Controlヘッダの設定ミスオリジンサーバが以下のようなHTTPヘッダを生成する場合、CDNはオブジェクトをキャッシュしません。privatePragmaNo-cacheもしくは、以下のHTTPヘッダが不適切に設定されている場合、Cache-Controlmax-ageキャッシュの生存時間(秒)。これが0だとキャッシュされないExpiresキャッシュの有効時刻。この時刻が、現在の時刻の前だとキャッシュされないこれを修正するには、以下の3種類の方法があります:CMSによるHTTPヘッダ生成の抑制WordPressなどのCMSでは、生成したブログページに対しNo-cacheを強制的に挿入することがあります。$headers;}WebサーバによるHTTPヘッダの強制書き換え、強制削除CMS等によっては、no-cacheの生成を抑制できない場合があります。この場合も、Webサーバにno-cacheを削除させる設定を行うことができます:Apachemod_headersを使用しCache-Controlを削除することができます。Cache-ControlCDNにおけるオリジンHTTPヘッダの無視オリジンサーバのHTTPヘッダを無視できるCDNもあります。HTTPヘッダの不足CDNがオブジェクトをキャッシュするには、以下のHTTPヘッダが生成されている必要があります:Last-ModifiedExpiresContent-Length基本的な対策としては、オリジンサーバ側で前記HTTPヘッダを生成することですが、CDN側のTTL設定によりキャッシュさせることも可能です。Last-Modified等がない場合、ブラウザキャッシュでもキャッシュされない可能性があるため、FEO的には、きちんとオリジンサーバで修正すべきです。ファイルが大きすぎるCDNには、キャッシュできる最大サイズが設定されています。これを超えるファイルはキャッシュされません。クライアントがレンジリクエストを発行しているレンジリクエストを含むリクエストは、CDNによりキャッシュできないことがあります。詳細についてはレンジリクエストを参照ください。