前回からの続きです。
高速化のための対応項目
・HTTPリクエスト減らせ
・gzip圧縮しろ
・ブラウザキャッシュ使え
・画像サイズ削減しろ
・HTML/CSS/JSを縮小化しろ
・CSS/JSの読み込み順序を最適化しろ
今回はgzip圧縮とブラウザキャッシュについてです。
gzip圧縮は対応項目の中でもトップクラスに効果があり、これだけで転送量が40~50%は余裕で削減されます。ただしサイトの形式やサーバの設定によっては利用できない場合もあります。
WordPressへの適用方法
WordPress用の.htaccessを開き下記のように記述します。
AddType image/x-icon .ico 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 SetEnvIfNoCase Request_URI _\.utxt$ no-gzip #DeflateCompressionLevel 4 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 ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 1 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 216000 seconds" ExpiresByType application/x-javascript "access plus 216000 seconds" ExpiresByType application/x-shockwave-flash "access plus 216000 seconds" FileETag none <FilesMatch "^(wp-config\.php|wp-mail\.php|install\.php|\.ht)"> order allow,deny deny from all # BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !\.(html?|xml|xsl|js|css|jpe?g|png|gif|ico)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
参考:http://dogmap.jp/2010/04/20/wordpress-htaccess/
「# BEGIN WordPress」~「# END WordPress」より上の記述はWordpressに関係ないhtaccessの記述のため、どのようなサイトでも利用可能です。
gzipキャッシュを行い、ブラウザキャッシュの制御も行われているため、この記述を加えるだけで劇的に速度改善する可能性が高くあります。
注意点
性質上キャッシュが強烈に残りやすくなるため、更新頻度の高いサイトの場合は更新前の古い内容がユーザに見えやすくなることがあります。WordPressをカスタマイズしてユーザー参加型のサービスなどにしている場合は特に不向きです。
キャッシュ時間を短くして瞬間同時アクセスのみキャッシュを有効にすることも可能ですが、表示スピードを早くするというよりサーバの負荷を避ける方向の処理に変わり高速化の効果は若干薄れますので、動的なサイトはまた違った対策が必要になります。
次回に続きます。