WordPressで使えるキャッシュプラグインは沢山ありますが、会員制サイトやモバイル対応などの理由で導入できなかったり、バージョンアップ時にトラブルが出たなどの話を色々聞いて、利用するのを控えている方もいるかもしれません。
大規模な(アクセスが多い)サイトの場合は、クラウドサーバーなどで複数構成や高機能な環境を組み込んで利用する場合もありますが、小規模サイトや予算の都合・スタートアップ等の場合は一般的なレンタルサーバーを使うケースが多いと思われます。
しかし レンタルサーバーはアクセスが多い状態に弱いことがあり、何らかの対策(キャッシュ等)方法があればいいな と思う時もあるでしょう。そんな時には「WP Fastest Cache」プラグインが丁度よさそうです。
WP Fastest Cache Premium | The Fastest WordPress Cache Plugin
http://www.wpfastestcache.com/
WP Fastest Cache — WordPress Plugins
https://wordpress.org/plugins/wp-fastest-cache/
キャッシュ系プラグインの導入は わりと簡単なのですが 利用をやめる時やトラブルがあった場合は復旧が結構大変だったりします。そこである程度、機能の意味やしくみを理解していれば 何かあった時でも慌てずに対応できるかと思います。
WP Fastest Cacheプラグインの動作
WP Fastest Cacheプラグインを設定すると、WordPressでコンテンツを生成してページを表示する前にキャッシュファイル(静的HTMLやCSS・JSファイル)を使って表示するように .htaccess に設定されます。
サイトにアクセスがあると.htaccessの設定でキャッシュファイルを表示しますので表示が早くなります。
キャッシュファイルが無かった場合(まだ作られてない)は従来通りWordPressで表示しますが、この時点でキャッシュファイルが新たに作られて保存されますので 次にアクセスした場合はキャッシュファイルが表示されます。(キャッシュファイル自体は wp-content/plugins/cache/ に書き込まれています)
また、コメント投稿時や WooCommerce・ContactForm7のCaptcha使用時等、他の一部プラグインで必要な時は非キャッシュになるよう対応しています。
WP Fastest Cacheプラグインインストール
WordPress管理画面の「プラグイン」→「新規追加」をクリックします。
テキストボックスの「プラグインの検索」の所に「WP Fastest Cache」と入れて検索すると今なら1番最初に出てきます。
「今すぐインストール」ボタンを押してダウンロードが終わりインストールが完了したら「プラグインを有効化」をクリックします。
※この時点ではまだ キャッシュ機能は使えていません。
※念のため、インストールする前に ファイル・データベース等 全体のバックアップ(特に.htaccessファイル)を取っておく事をお勧めします。
WP Fastest Cacheプラグイン の設定
一度に全部チェックを入れるのではなく 1つ1つチェックして表示・動作を確認しながら進めていく方が安心です。
特に「Gzip 圧縮」「ブラウザキャッシュ」は サーバーに合わなかったり 他のプラグインで既に設定してるかもしれませんので注意してください。
※さくらのレンタルサーバーは全部チェックいれても大丈夫でした。
管理画面メニュー部分(左下)の「WP Fastest Cache」をクリックします。設定画面になるのでそこでまず「Language」を日本語にして保存します。
以下、各項目の説明です。
キャッシュ
WP Fastest Cacheプラグイン のキャッシュ機能をスタートさせるには「有効にする」にチェックを入れてください。
Preload
「Create the cache of all the site automatically」
ここにチェックを入れると事前にキャッシュを生成してくれます。
キャッシュの期間が切れると、切れてから初めて閲覧された時にキャッシュを生成します。しかしそのユーザーはキャッシュではない状態なので表示が遅くなります。
チェックをいれるとどのページをプリロードするか画面が出てきますので いちおう全部チェックを入れてください。
※カスタムポストには対応していません。
※ver0.8.5.6 ではプラグインをダウンロードする時期で、この項目があったり無かったりBeta版だったりしてましたが ver0.8.5.7からは使えるようになったようです。
ログインユーザー
「ログインユーザーに対してキャッシュを表示しない」
会員制などで、ユーザーにログインをさせて それによりコンテンツの表示を変更させている場合はこれにチェックを入れてください。
モバイル
「モバイルユーザーに対してキャッシュを表示しない」
WPtouchプラグイン等、モバイルアクセスで別のテンプレートを使っている又はコンテンツを変えている場合はこれにチェックを入れてください。
※ガラケーはモバイルユーザーとは判定されませんので ここにチェックを入れて「Ktai Style」等を使っていても PC(キャッシュ)画面表示になります。(対策例)
モバイルテーマ
「モバイルテーマのキャッシュを作成する」
※プレミアムのみです。
新しい投稿
「投稿や固定ページが公開されたときに全てのキャッシュファイルをクリアする」
チェックを入れてください。
HTML の圧縮
「HTML を圧縮してページサイズを小さくする」
これにチェックを入れると HTMLソース内の不要なスペースや改行等を簡易的に削ってくれます。
HTML の圧縮プラス
「HTML を強力に圧縮してページサイズを小さくする」
※プレミアムのみです。
CSS の圧縮
「CSS ファイルを圧縮する」
これにチェックを入れると CSS内の不要なスペースや改行・コメント等を削ってくれます。
Minify Css Plus
「More powerful minify css」
さらに高機能なファイル圧縮をします。
※プレミアムのみです。
CSS の結合
「CSS ファイルを結合してHTTPリクエスト数を減らす」
これにチェックを入れるとヘッダ部分で複数読み込まれているCSSファイルを結合して1つにしてくれます。これによりHTTPリクエストによる待機時間が節約できます。
ヘッダのHTMLを見ると元のCSSファイル読み込み部分がコメントアウトされ、結合したCSSファイルだけを読むようにしています。
Minify Js
「You can decrease the size of js files」
さらに高機能なファイル圧縮をします。
※プレミアムのみです。
JS の結合
「JavaScript ファイルを結合してHTTPリクエスト数を減らす (header)」
「CSS の結合」同様にjsファイルを結合して1つにしてくれます。
結合の具合やインラインのスクリプトとの前後関係によっては javascript が動かなくなる場合も考えられますので使用する場合は動作確認をしてください。
JS の結合プラス
「JavaScript ファイルを結合してHTTPリクエスト数を減らす (footer)」
※プレミアムのみです。
Gzip 圧縮
「サーバーから送信されるファイルをGzip圧縮する」
サーバーの仕様によってはGzip圧縮しない場合もありますので動作確認が必要です。
※.htaccess に Gzip圧縮用のコードを入れてるだけですので 別の独自の方法でやっている場合は不要です。
【参考 Gzip圧縮チェック】
Check GZIP compression http://checkgzipcompression.com/
ブラウザキャッシュ
「ブラウザキャッシュを利用してロード時間を短縮する」
ここにチェックを入れると.htaccessに明示的にブラウザキャッシュの期間(1ヶ月)が書かれます。
ブラウザキャッシュがあると再ロードの際にはPC側のキャッシュデータを使いますのでその分ロード時間が短縮されます。
※.htaccess に ブラウザキャッシュのコードを入れてるだけですので 別の独自の方法でやっている場合は不要です。
キャッシュの有効期限
次に「キャッシュの有効期限」タブをクリックしてキャッシュの有効期限を設定します。
例えば Add New Rule ボタンを押して「If REQUEST_URI」で全て、「Then ~ delete the files」は 「1時間に 1回」にして Save ボタンを押します。
※有効期限は利用度に応じて決めてください。
除外するページ
もし、特定のページを非キャッシュにしたい場合は「除外する」タブをクリックして条件を設定します。
例えば標準で入っているのは「wp-login.php」と「管理画面用の wp-admin 以下のアドレス全部」で設定しています。
使い方
確認
開いたページがキャッシュデータなのかどうかは、早いのですぐわかると思いますが 表示してるページのHTMLソースを見てください。
HTMLソースの一番下に
<!-- WP Fastest Cache file was created in ・・・
と入っていればキャッシュデータを使っています。
もし
<!-- need to refresh to see cached version -->
てなっていたらキャッシュデータを作ってなかったようですので(このロードでキャッシュを生成してます)リロードしてみてください。
※embed や AMP もキャッシュになってると思いますので見てみてください。
非キャッシュページ
もし投稿記事で「このページだけキャッシュさせたくない」場合は投稿記事本文内に以下のタグをいれてください。
<!--
[wpfcNOT
]--
>
こちらもHTMLソースの一番下に
<!-- wpfcNOT has been detected -->
となっていて確認できます。
【注意】
トップページやアーカイブページにこの投稿が表示されていてその抜粋表示にwpfcNOTコードが出てしまうとそのページも非キャッシュページになります。
非キャッシュにしたくない場合は wpfcNOTコードが出ないように 投稿文の最後に設置するか、
<!–more–>タグ(「続きを読む」表示)を入れてその後ろにwpfcNOTコードを設置してください。
キャッシュクリア
「新しい投稿」の所にチェックを入れていると記事を新規・更新した時は自動でキャッシュをクリアしてくれますので特に何もする必要はありません。テーマのテンプレートやCSSとかjs等を変更した時や他のプラグインをインストールした場合はキャッシュをクリアしときましょう。
管理画面のツールバー(管理画面上)の「WPFC」でキャッシュをクリアできます。
「Delete Cache」で トップページや投稿ページ等のキャッシュHTMLファイル、
「Delete Cache and Minified CSS/JS」は キャッシュHTMLファイルとキャッシュCSS/JSファイルを削除してくれます。
※キャッシュファイル自体は wp-content/plugins/cache/ に書き込まれています。
スポンサードリンク
もし、おかしくなった場合
他のプラグインと衝突してしまった場合やサーバーとの相性が悪かった場合など もし おかしくなった場合は「WP Fastest Cache」プラグインを停止してみてください。
停止すると「WP Fastest Cache」の設定がクリアされ、.htaccess の内容もリセットされます。
しかし停止してもだめな場合や管理画面に入れない場合は「WP Fastest Cache」プラグインをFTPで削除して、さらに .htaccess での以下の部分があれば削除してみてください。
WP Fastest Cache部分 # BEGIN WpFastestCache ~ # END WpFastestCache Gzip 圧縮部分 # BEGIN GzipWpFastestCache ~ # END GzipWpFastestCache ブラウザキャッシュ部分 # BEGIN LBCWpFastestCache ~ # END LBCWpFastestCache
※.htaccessだけ消しても「WP Fastest Cache」プラグインが残ってたら プラグイン側で判別してキャッシュ表示します。
※キャッシュデータは wp-content/cache/ 又は wp-content/plugins/cache/ フォルダ内にありますので不要な場合は FTPで cacheフォルダごと消してみてください。
※もし何回も「WP Fastest Cache」プラグインを有効化したり停止したりしていると不要な Cron が溜まってしまってあんまりよくありません。
1~2日ようすを見てからですが「WP-Cron Dashboard」プラグインで 「wp_fastest_cache~」の Cron で「*アクションフックに登録されていません。」と なっているのがあれば 削除してみてください。
※WPXサーバーは使えないそうです。
※Nginxはver0.8.5.7から使えるようになったみたいですがテストはしていません。
あとがき
簡単にキャッシュ機能が使えて、やめる時もプラグインを停止するだけなので安心して使えると思います。WordPressコア(本体)のメジャーアップデート作業の時とかは いちおう停止した方がいいのでこれは助かります。
※停止すると「WP Fastest Cache」の設定がクリアされますので有効化した際には再設定してください。
どうしてもガラケー等「Ktai Style」で対応したい場合
ガラケー等の国産独時のUSER_AGENTを追加します。
Version: 0.8.5.7 の場合
wp-content/plugins/wp-fastest-cache/wpFastestCache.php内の getMobileUserAgents()関数の
return "iphone|midp|sony|symbos|nokia|samsung|mobile|epoc|ericsson|panasonic|philips|sanyo|sharp|sie-|portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc|android|blackberry|playbook|ipad|ipod|iemobile|palmos|webos|googlebot-mobile|bb10|xoom|p160u|nexus|touch|SCH-I800|opera\smini|SM-G900R4|LG-|HTC|GT-I9505|WAP-Browser|Nokia309|Casper_VIA";
を
return "DoCoMo|J-PHONE|J-EMULATOR|Vodafone|MOT|MOTEMULATOR|SoftBank|emulator|DDIPOCKET|WILLCOM|KDDI|UP\.Browser|emobile|Huawei|IAC|Opera\sMobi|Windows\sCE|PDA|SL|PlayStation\sPortable|Nitro|Nintendo|mixi-mobile-converter|iphone|midp|sony|symbos|nokia|samsung|mobile|epoc|ericsson|panasonic|philips|sanyo|sharp|sie-|portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc|android|blackberry|playbook|ipad|ipod|iemobile|palmos|webos|googlebot-mobile|bb10|xoom|p160u|nexus|touch|SCH-I800|opera\smini|SM-G900R4|LG-|HTC|GT-I9505|WAP-Browser|Nokia309|Casper_VIA";
に変更すれば表示すると思います。他にも追加があれば 上記の例にならって USER_AGENT を追加してください。
ファイルを変更した後に「WP Fastest Cache の設定」で .htaccessを書き換えるために 空(カラ)更新 してください。
※これは「WP Fastest Cache」をバージョンアップする度に修正してくださいね。
【追記 2016/05/25】
Version: 0.8.5.8 でUAの判定方法が変更になりました。
wp-content/plugins/wp-fastest-cache/wpFastestCache.php内の get_mobile_browsers()関数の
$mobile_browsers = array( 'Vivaldi', '\bCrMo\b|CriOS|Android.*Chrome\/[.0-9]*\s(Mobile)?', '\bDolfin\b', 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+', 'Skyfire', 'Safari\/[.0-9]*\sEdge|Mobile\sSafari\/[.0-9]*\sEdge', 'IEMobile|MSIEMobile', // |Trident/[.0-9]+ 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile', 'bolt', 'teashark', 'Blazer', 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari', 'Tizen', 'UC.*Browser|UCWEB', 'baiduboxapp', 'baidubrowser', 'DiigoBrowser', 'Puffin', '\bMercury\b', 'Obigo', 'NF-Browser', 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger', 'Android.*PaleMoon|Mobile.*PaleMoon' );
を
$mobile_browsers = array( 'DoCoMo', 'J-PHONE', 'J-EMULATOR', 'Vodafone', 'MOT', 'MOTEMULATOR', 'SoftBank', 'emulator', 'DDIPOCKET', 'WILLCOM', 'KDDI', 'UP\.Browser', 'emobile', 'Huawei', 'IAC', 'Opera\sMobi', 'Windows\sCE', 'PDA', 'SL', 'PlayStation\sPortable', 'Nitro', 'Nintendo', 'mixi-mobile-converter', 'Vivaldi', '\bCrMo\b|CriOS|Android.*Chrome\/[.0-9]*\s(Mobile)?', '\bDolfin\b', 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+', 'Skyfire', 'Safari\/[.0-9]*\sEdge|Mobile\sSafari\/[.0-9]*\sEdge', 'IEMobile|MSIEMobile', // |Trident/[.0-9]+ 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile', 'bolt', 'teashark', 'Blazer', 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari', 'Tizen', 'UC.*Browser|UCWEB', 'baiduboxapp', 'baidubrowser', 'DiigoBrowser', 'Puffin', '\bMercury\b', 'Obigo', 'NF-Browser', 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger', 'Android.*PaleMoon|Mobile.*PaleMoon' );
というようにUAを追加してください。
参考
Wp Fastest Cache Blog
http://www.wpfastestcache.com/category/blog/