サイトからのおしらせ(クリックで一覧)

WordPress 0.777秒! ~KUSANAGI超素人セッティング

この記事は約6分で読めます。
kusanagiのイメージキャラクター草薙 沙耶 ©PRIME STRATEGY
kusanagiのイメージキャラクター草薙 沙耶 ©PRIME STRATEGY

この記事の続きです。

kusanagiのセッティング完了しました。
色々なトラブルがありました。
上記記事がIT関連で初めてはてな新着エントリに載った直後500エラーを食らうという不運もありました(なお、自ら招いた人災です)。
本日までに何度サーバー作り直したかわかりません。

しかし苦労した甲斐はありました。

KUSANAGI for ConoHaで1秒切り(0.777秒)の画像

質問者の写真

フィーバー!?
 

0.777秒、見た瞬間びっくりしました(二重の意味で)
トップページ限定ではありますけど、概ね0.7~1.1秒で安定してます。
投稿ページでも2秒前後。
モバイルはともかくPCなら、ほぼストレスなく巡回できると思います。

ただしPageSpeed Insights の数字はさほどでもないです。

 

さほどでもないどころか、KUSANAGI移行前と比べて……

質問者の写真

スコアが下がってる!? それも5~10だなんて……
 

対策とるまではさらに10近く低かったです。

GTmetrixも……

 

やっぱり5~6ほど下がってます。
しかも、こちらだと3.5秒も掛かってる。
(記事全体を計測するからですが、それでも掛かりすぎ)

どうしてこうなるのか? 体感では歴然とした差があるのに。
まあベンチの数字よりも実用の使い勝手、これで良しとしておきます。

【2020/2/14追記】

なぜスコアさがったかは、こちらの記事をお読みいただければわかります。

当時のPSIはあくまでもスコアを改善しうる指標であって速度の指標じゃないということです。

私のセッティング

1 fcache(FastCGI)をONにする

絶対ONにする、とにかくONにする

NginxにおけるFastCGIは圧倒的な効果があります。
KUSANAGIですと、次のコマンドで実装できます。

# kusanagi fcache on

Apacheを使っていても自動的にNginxへ切り替わります。
FastCGIの具体的な効果はあちこちで書かれているので割愛します。

キャッシュの削除(2020年2月14日改稿)

ページ単位のキャッシュ削除は管理バーからできます。
全部を消去したい場合は黒い画面から次のコマンドを打ち込みます。

# kusanagi fcache clear

bcacheとfcacheは両方ONにしていいの?

私の環境では、fcacheとbcacheを両方ONにすると、モバイル側のキャッシュがおかしくなる現象が発生しました。

どうもパージされた後に新しいキャッシュが生成されていないようで。
しかもbcache使おうと使うまいと、数字も体感も全く変わりませんでした。
突き詰めれば原因見つけられるんでしょうけど、面倒なので放置することにしました。

ここからは素人考えなんですけど……
bcacheって、FastCGIのないApacheで使うとき用じゃないですかね?
単純にキャッシュのキャッシュって感じでおかしくなる気がするんですけど。

(null)

この説明を読むと、

特徴1 ページキャッシュを使わなくても速い

特徴2 ページキャッシュ(bcache)を使うともっと速い

特徴3 ページキャッシュ(fcache)を使うとさらに速い

特徴1が2や3と同時に成立しない以上、「この3つからどれかを選びなさい」と言ってるんじゃないかなあと。
この理解で「間違ってるよ!」という場合は教えていただけると幸いです。

【2020年2月14日 追記】

現在ではエラー無くbcacheを使えますが、やはり使っていません。
あまり効果が見られないので切ってます。
恐らくアクセスのいっぱいあるサイトなら効果あるのでしょう。

bcacheの代わりに他のページキャッシュプラグインを使った場合

物は試しと実験してみました。

WP Fastest Cache がNginx対応らしいので入れてみましたが、逆に遅くなりました。

体感で明らかにわかり、計測するまでもないくらい。
一方でPageSpeed InsightsやGTmetrixのスコアは変わらず。
全く入れる意味がないので外しました。
他のキャッシュプラグインは試してませんが、同じじゃないですかね?

2 Autoptimize以外の高速化プラグインを全て外す

Autoptimize はhtml、js、cssを圧縮や結合してくれるプラグイン。

Luxeritasみたいな圧縮結合機能がついているテーマを除けば必須のプラグインです。
(手作業でやることもできますが、メンテナンス性が落ちます)

他の高速化プラグインは全てアンインストールしました。
無駄なリソース食わすだけなので。

3 KUSANAGIプラグインの翻訳をONにする

中身は有名な高速化プラグイン001 Prime Strategy Translate Accelerator と同じです。
(作ってる会社が同じ)。

既に上記プラグインをインストールしている場合は外して下さい。

4 ブラウザキャッシュの期限を設定する

デフォルトでは期限が設定されていないのでgoogle先生から「ブラウザキャッシュを活用しなさい」と怒られます。
そこで次のページを参考にして設定しました。

etc/nginx/conf.dにある【あなたのプロファイル名】_ssl.conf(SSL化している場合)から次の行を見つけて

	location ~* \.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {
		access_log off;
	}

バックアップをとり、一行加えて書き換えます(数字は任意の物を)。

	location ~* \.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {
		access_log off;
		expires 30d;
	}

これでgoogle先生から怒られなくなり、スコアが7ほど上がりました。

【2020年2月14日 追記】

現在のPSIでは30日だと怒られます……が、十分じゃないですかね?

5 画像を圧縮する

元々やってはいたのですが、一応。

KUSANAGIには画像最適化機能がついています。
一般的なjpg、pngはこれで圧縮できます。
性能も他の有名画像圧縮プラグインと変わりません。

むしろ問題は「圧縮に何を使うか」ではなく「圧縮率をいくつにするか」。
WordPressのデフォルトが82。
これでは高すぎるということで75程度を勧めているところが目立つようですが。
写真メインのサイトでもないなら50で十分だと思います。
(50以下になると、画質劣化の割にサイズが小さくならない)

【2020年2月14日 追記】

現在のPSIではwebp配信を求めてきます。
KUSANAGIでもできますので、設定を推奨します。

まとめ

実はほとんど何もしていないことにお気づきでしょうか?

作業といえるのはブラウザキャッシュの設定くらい。
むしろ触らない・減らす、この方向でセッティングしました。
KUSANAGIは導入さえしてしまえば、あとは楽。
これで1秒切れるのだからありがたいです。

皆様もテストだけでも試してみてください。
ConoHa for KUSANAGIなら1日30円程度で爆速ぶりを体感できます。

この記事を書いた人:天満川 鈴

広島市内のパチンコホール勤務。
3号機時代からのパチンカス。

ADHD、精神障害者手帳3級所持。

慶應義塾大学商学部→国家一種経済職→公安調査庁。
在職時は国際テロ、北朝鮮を担当。

「小説家になろう」の底辺作者。
朝鮮総聯へのスパイ工作を描いた小説「キノコ煮込みに秘密のスパイスを」はアマチュア小説ながら週刊誌報道され、話題となった。