サイト表示速度対策:PHPでzlibを使用してサイトコンテンツをgzip圧縮する【さくらVPS】


サイトの表示速度テストのスコアが低い・・・。
そろそろやろうかと、本腰入れて対策。

参考にしたサイト:「PHPでコンテンツをgzip圧縮する方法 zlib編

php.iniでzlibを設定

/etc/php.ini を開いて、zlibを設定を変更。

;zlib.output_compression = Off
zlib.output_compression = On

;zlib.output_compression_level = -1
zlib.output_compression_level = 1

「zlib.output_compression_level」の数値は、1~9まで設定できて、数値が上がるほど圧縮率が高くなるのだけど、サーバのCPUに負荷がかかるので1に設定。

#apache再起動
/etc/init.d/httpd restart

 

.htaccessでコンテンツ圧縮を設定

参考にしたサイトはこちら:「WordPress の最適化/出力の圧縮

これをまるっと追記。

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

※その後、追記:いろいろ試してみたら、ここのサイトで紹介されているもの方が速度テストのスコアが高くなった。↓

<IfModule mod_deflate.c>
#モジュールを有効化
SetOutputFilter DEFLATE
#レガシーブラウザへの対応
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
#対象から画像を除外
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
#プロクシサーバへの対応
Header append Vary User-Agent env=!dont-vary
</IfModule>

もう一度、表示速度テストをしてスコアを確認。
大きな数値の変化はないけれども、スコアは確実に上がっていた。