mod_deflateでアクセス速度改善
Googleの開発ツール『PageSpeed Insights』で測定した結果、DreamHostで運用しているサイトがボロボロの結果だったので、指摘箇所の改善を行っていっています。
前回は、mod_pagespeedを設定してアクセス速度の改善を行いました。興味のある方は、『mod_pagespeedでアクセス速度改善』のページを参照してください。
そして、今回は『mod_deflate』を設定し、アクセス速度の改善を試みたいと思います。
mod_deflateで何が改善されるのか?
このmod_deflateを有効にすることで、ユーザからウェブサイトにアクセスがあった場合、ユーザにデーターを送り返す前にサーバー側でデーターを圧縮することで、転送量を減らすことができます。
しかし、mod_pagespeedの時と同じようにサーバー側でデーターを圧縮するにはサーバーのリソース(CPUやメモリ)を消費します。その為、データーの転送量が減ってもサーバーのリソース不足で処理が遅れ逆にアクセス速度が落ちる可能性もあります。
スペックが低いサーバーの場合は特にこの懸念があります。幸いなことにDreamHostはハイスペックなサーバーなので恐らく落ちないと思いますが、他にもリソースを食うようなアプリなどを利用していると速度低下をまねくかもしれません。
mod_deflateの設定方法
mod_deflateは、.htaccessファイルに記述します。前回、mod_pagespeedの設定を行いましたが、その時の.htaccessファイルをそのまま使用します。
mod_deflateを追記することで更なる改善となるのか?
記載する内容は次の通り。
gifやjpgなどの画像ファイルは元々から圧縮されているので、mod_deflateで再圧縮かけても効果はほとんどなく逆にサーバーリソースを消費してしまうだけなので、圧縮しないようにしています。
.htaccessファイルに記述したらサーバーにアップしてください。
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
# Mozilla4系などの古いブラウザで無効、しかしMSIEは除外
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# gifやjpgなど圧縮済みのコンテンツは再圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
# htmlやcssなどは圧縮
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>
PageSpeed Insightsで再測定してみた
mod_deflateを追記する前の前回の測定結果は、mod_pagespeedを設定した際の測定になるので、『mod_pagespeedでアクセス速度改善』のページを参照してください。
測定結果は次の通り。
画像はクリックすると拡大できます。
下記は、PCでアクセスした際の結果の詳細です。モバイルもほぼ同様の改善結果となっています。ポイントが更にあがり『圧縮を有効にする』も合格になりました。
気になる点としては、画像では分かりませんが、『サーバー応答時間を短縮する』の指摘の詳細を確認するとサーバー応答時間が1.9秒から2.3秒へ若干だけ落ちていました。これが誤差なのか、それともリソース消費による低下なのかはわかりませんが、一応気には留めておきます。
対策全く無し | mod_pagespeed導入 | mod_pagespeed+mod_deflate導入 | |
---|---|---|---|
ポイント | 58 | 65(+7) | 67(+9) |
ブラウザのキャッシュを活用する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
スクロールせずに見えるコンテンツのレンダリングをブロックしている JavaScript/CSS を排除する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
サーバーの応答時間を短縮する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
圧縮を有効にする | 修正の考慮が必要 | 修正の考慮が必要 | 合格 |
CSS を縮小する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
画像を最適化する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
JavaScriptを縮小する | 修正の考慮が必要 | 修正の考慮が必要 | 修正の考慮が必要 |
HTMLを縮小する | 修正の考慮が必要 | 合格 | 合格 |
宜しければ参考にしてください。
不明な点があれば問い合わせフォームからご連絡ください。