Debianのapache2で運用している、自宅WEBサーバーのWordPressで実施している、私のWordPress高速化対策のご紹介です。2014年に公開した記事ですが、内容を見直して2015年11月に書き直しをしています。
このページの目次
対策その1ブラウザのキャッシュを活用する設定
高速化対策の中でも、閲覧しに来ていただいた方の端末側のブラウザーのキャッシュ機能を利用する方法です。初回のアクセスには効果がありませんが、2回目以降に訪れてくれた場合に、端末側にキャッシュが残っていれば高速に表示されるのが狙いです。
expiresモジュールを利用するようです。うちのDebianサーバーはデフォルトではexpiresモジュールが有効になっていませんでした。さっそく有効化します。
expiresモジュールの有効化
a2enmodコマンドでmod_expiresを有効にして、apache2のサービス再起動で有効化されます。
a2enmod expires
/etc/init.d/apache2 restart
.htaccess にキャッシュの期限を指定する
wordpressがインストールされているディレクトリのルートにある「.htaccess」ファイルにキャッシュの期限を指定する記述を追加します。
例えば/var/www/にWordPressをインストールしている場合です。
nano /var/www/.htaccess
下記の最初の記述はそのまま残します。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
ここに下記の部分を追記します。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress #BEGIN mod_expires <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 30 minutes" ExpiresByType text/html "access plus 10 seconds" ExpiresByType image/jpg "access plus 7 days" ExpiresByType image/jpeg "access plus 7 days" ExpiresByType image/gif "access plus 7 days" ExpiresByType image/png "access plus 7 days" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" </IfModule> # END mod_expires
キャッシュの有効期限も含めて、下記のサイトを参考にまるまる利用させていただきました。参考にさせて頂いたサイト
ページの表示速度を改善する方法
対策その2 mod_deflate が有効になっているか確認
WEBサーバーのapache側でコンテンツを圧縮して送信する機能がmod_deflateらしいです。Debianの場合apache2をインストールするだけでmod_deflateは有効になっている模様。
- 確認方法その1:/etc/apache2/mods-enabled/にdeflate.confとdeflate.loadのショートカットファイルが存在している。
- 確認方法その2:http://www.whatsmyip.org/http-compression-test/ のサイトでアドレス入力してテスト結果が圧縮されていればOK。
いまどきのブラウザでテストすれば、最初から十分な圧縮率ですね。ググると/etc/apache2/mods-available/deflate.conf の記述を変更している方も多いみたいですが、私はこれ以上の変更は必要なしと判断しました。
対策その3プラグイン「Lazy Load」のインストール
Lazy Loadプラグインはインストールするだけで、画像を後回しで読み込んでくれるようになるプラグインです。管理画面から検索してインストール、有効化するだけで設定不要です。
画像が多いページなど、全部読み込まれるまでブラウザーが真っ白になってしまいます。このプラグインを有効にしておくと、先に記事本文などが先に出てから画像が後回しで出てくるので、体感速度で表示が早くなった気がします。
検索してサイトを開こうとしても、いつまでも表示されずに何も出ない時間が長いと「戻る」や「×」で閉じてしまいます。それを少しでも解消できるこのプラグインは大変気に入っています。
Lazy Load
CDNの代わりに使っています
CDNとは、画像などを高速サーバーから読み込むようにするサービスで、無料で利用できるサービスとしては、Cloud Flare や、Jetpackプラグインに同梱されているPhotonなどがあります。
私は、このCDNを利用しないで、プラグインLazy Loadを利用しています。CDNを設定してみましたが、あまり効果のほどがわからない割には、画像の管理が大変そうという理由で利用をやめました。Lazy Loadのほうが高速化を体感できるような気がしています。
対策その4プラグインWP Super Cacheのプリロードモード
WordPressの高速化プラグインはいくつかありますが、私はWP Super Cacheを気に入って使っています。プリロードモードというのがあり、常時キャッシュファイルを保持しておいて高速化させることができます。ただし、記事の更新のたびにキャッシュファイルを作り直す作業が必要です。
詳しくは、別記事にて紹介しています。ぜひご覧ください。
自宅サーバーのWordPressを簡単に高速化!プラグイン「WP Super Cache」を使う
最後に
私が実際に利用している高速化対策はこのくらいです。突き詰めれば、もっとたくさん対策はあるとは思いますが、私はこの4対策だけです。わりと大雑把に効果がありそうな点しか対策する気が起きないという性格なのです。