mod_expiresでアクセス速度改善


DreamHostで運営しているサイトをGoogle DevelopersツールのPageSpeed Insightsで測定してみると、散々な結果だったのでアクセス速度を改善すべく色々と試しています。

これまで、『mod_pagespeed』と『mod_deflate』の2つを設定しPageSpeed Insightsの測定結果にどのような変化があるか見てきましたが、少しずつ改善されてきています。

これまで行ってきた内容を見たい方は、次のページを参照ください。

 PageSpeed Insightsでアクセス速度を改善する
 mod_deflateでアクセス速度改善
 mod_pagespeedでアクセス速度改善

そして今回は、『mod_expires』を設定し、PageSpeed Insightsの測定結果にどのような変化が出るかを見ていきたいとおもいます。

私の中ではこれまでの中で一番改善を期待できる設定だと思っています。しかし、このモジュールを導入すると一定期間の間、キャッシュをユーザに保持させ再アクセスがあった場合、そのキャッシュから読み込ませるのですが、ウェブサイトを頻繁に修正するような場合は、ユーザ側で古い情報が表示される可能性が出てくるので、頻繁に修正するようなサイトには不向きかもしれませんね。

※補足
あくまで既存の記事の修正であり、新規記事追加の場合は影響はありません。

mod_expiresを有効にする手順

mod_expiresの設定は、mod_pagespeedやmod_deflateなどと同じように.htaccessファイルに記述します。

mod_expiresを設定する際は、ユーザにキャッシュさせる時間も指定するのですが、1週間未満にすると、PageSpeed Insightsで指摘され続けるので、最低1週間以上で設定する必要があります。

.htaccessファイルに記述する内容は次の通り。
記述が終わったら再度サーバーにアップしてください。

<IfModule mod_expires.c>
   ExpiresActive On
   ExpiresByType image/gif "access plus 1 week"
   ExpiresByType image/jpg "access plus 1 week"
   ExpiresByType image/jpeg "access plus 1 week"
   ExpiresByType image/png "access plus 1 week"
   ExpiresByType image/x-icon "access plus 1 week"
   ExpiresByType text/css "access plus 1 week"
   ExpiresByType text/javascript "access plus 1 week"
   ExpiresByType text/html "access plus 1 week"
   ExpiresByType application/x-javascript "access plus 1 week"
   ExpiresByType application/javascript "access plus 1 week"
   ExpiresByType application/xhtml+xml "access plus 1 week"
</IfModule>

PageSpeed Insightsで再測定してみる

設定が完了したらPageSpeed Insightsで再測定してみます。

beforeとafuterで比較したいのですが、今回の「mod_expires」を導入する前の測定値は、以前「mod_deflate」を適用した直後に測定したものになるので、before値を見たい方は、『mod_deflateでアクセス速度改善』のページを参照ください。

測定した結果は次の通りです。
※図をクリックすると拡大できます。

[デスクトップPC]
modexpires1(after)
[モバイル]
modexpires2(after)


下記は、PCでアクセスした際の結果の詳細です。モバイルもほぼ同様の改善結果となっています。ポイントが更にあがり『ブラウザキャッシュを活用する』が「修正が必要」から「修正を考慮」に指摘レベルが下がりました。WordPressを使用しているサイトなのですが、WordPressを使用していなければサーバーの応答時間が更に短くなりポイントもアップすると思います。

合格にならなかった理由としては、FacebookやTwiiterといった外部サイトからデーターを取得している部分があり、この外部サイトに対しては有効期限が設定できないためです。

対策全く無し mod_pagespeed導入 mod_pagespeed+mod_deflate導入 mod_pagespeed+mod_deflate+mod_expires導入
ポイント 58 65(+7) 67(+9) 74(+16)
ブラウザのキャッシュを活用する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
スクロールせずに見えるコンテンツのレンダリングをブロックしている JavaScript/CSS を排除する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
サーバーの応答時間を短縮する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
圧縮を有効にする 修正の考慮が必要 修正の考慮が必要 合格 合格
CSS を縮小する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
画像を最適化する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
JavaScriptを縮小する 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要 修正の考慮が必要
HTMLを縮小する 修正の考慮が必要 合格 合格 合格

宜しければ参考にしてください。
不明な点があれば問い合わせフォームからご連絡ください。

5 Responses to “mod_expiresでアクセス速度改善”

  1. kaji より:

    はじめまして
    ドリームホストを契約しまして、運用してみましたが、気になった点があるのでご質問させていただきます。

    毎時0分~2分の間に、かなり高い確率でサーバーが重たくなり、503エラーが起きます。
    少しの時間のようですが、1日にすると、24×2=48分となり、結構深刻な問題です。

    共用サーバーですので、当たり外れがあるのでしょうか?

    まだ、97日以内ですので解約しようと思っております。

    • 管理人 より:

      はじめまして。
      ご質問ありがとうございます。

      共用サーバーなので、共有して使用している人の負荷状況により当たり外れがあるのは事実です。ただ、1アカウントで使用できる上限リソースは設定されており、それを一定時間超え続けると警告が送られ、それでも継続してリソースオーバーをするとアカウント停止といった対処はされているので、頻繁に高負荷になるようなことはないと思っています。

      毎時0分~2分の間に発生するということなので、恐らく供用者が定期的にスクリプトを走らせているのでしょうね。もしくは、kaji様の運用サイトで毎時ごとにデータを取得しにいくなどのスクリプト(cronなど)を走らせていないかご確認ください。

      • kaji より:

        迅速なご回答ありがとうございます。

        当方でも、自前のRSSリーダーを現在10分毎に動かしています。

        ただ、毎時0分からに限って503が発生します。10分 20分・・・50分は、問題ありません。

        やはり、管理画面からのCRON設定の場合は、共用の皆さんは、どうしても 毎時0分スタートのものになりやすく、重なりやすいということでしょうか?

        あと、海外のVPSサーバーを検討しているのですが、よいところがあれば教えていただきたいです。

        よろしくお願いいたします。

        • 管理人 より:

          kaji様

          スクリプト関連は、どうしてもきりの良い毎時0分に設定する人が多いと思います。

          海外のVPSサーバーに関してですが、私がこれまでに利用してきた中で一番安定感があるのはHostGatorです。人によってはHostGatorも駄目と言われる人もいますが、日本人の利用者も多く実績は一番高いと思います。あと、VPSサーバーも共有サーバーの一種だということは認識しておいてください。通常の共有サーバーのように共有者からの影響は受け難いですが、使用できるリソース自体が大幅に増えているわけではありません。

          • kaji より:

            迅速で丁寧なご返信、ご指導ありがとうございます。

            hostgatorにする場合は、こちらのクーポンを使わせて頂きます。

            ありがとうございました。

            このページのこの書き込み見た皆さん!
            このサイトの管理人さんはとても親切でよい方です ^^/

kaji にコメントする

*

このページの先頭へ