重いワードプレスサイトを2倍軽くする!実践した方法を紹介(上級者向け)
ワードプレスは適当に使うと、重い。
粗悪なレンサバではすぐ503エラーになるので、軽さを目指すべし。
粗悪なスマホでもサクっと表示させるのだ。
今回は手持ちのサイトで一番重く感じるサイトを軽くしてみることにした。
※計測は「Query Monitor」というプラグインを使用
※5回測定した数値の平均値
スタート状態
ページ生成時間 | 0.195秒 |
---|---|
クエリー時間 | 0.071秒 |
メモリ使用量 | 14.26MB |
これはワードプレスとしてもやや重たい数値です。
重いと有名なプラグインの「All In One SEO Pack」を使用。
記事のランダム表示も2回やってます。
記事数は約1000なので、ランダム表示が特に重たい処理になる。
参考として、当サイトの数値を貼ります。
ページ生成時間 | 0.071秒 |
---|---|
クエリー時間 | 0.017秒 |
メモリ使用量 | 7.00MB |
重さに影響あるプラグインは「All In One WP Security」のみ。
セキュリティだけはプラグインに頼るしかない。
1、リビジョンを削除してみる
ググると「リビジョン削除で軽くなる!」と書いてあることが多かった。
MySQLのクエリー的にそれはないだろうと思っていましたが、やってみる。
(リビジョンは記事の過去ログとして保存されるデータ。4000ほどあった)
実施後 | 前回 | |
ページ生成時間 | 0.185秒 | 0.195秒 |
クエリー時間 | 0.067秒 | 0.071秒 |
メモリ使用量 | 14.26MB | 14.26MB |
・・・誤差の範囲かな。。
ほぼ変化無しと判断します。
他にも「オーバーヘッドを無くすと軽くなる!(最適化)」と書いているサイトもありましたが、
そもそもオーバーヘッドが全く無いので、実践不可。
したがって、データベースをいじって軽くすることは難しいという結論に。
2、ランダム表示をキャッシュする
ランダム表示は「全記事」と「指定したカテゴリー」の二つをやっていました。
このうち、「全記事」のみをキャッシュ化します。
実施後 | 前回 | |
ページ生成時間 | 0.095秒 | 0.185秒 |
クエリー時間 | 0.021秒 | 0.067秒 |
メモリ使用量 | 13.65MB | 14.26MB |
さすがにキャッシュをすると軽くなります。
これにて2倍以上軽くなりました。
カテゴリの方もキャッシュ化すると、もう少し軽くできる。
※やり方はこちらの記事参照
速度は十分なのですが、メモリ使用量が多すぎる。
もっと少なくするためには、プラグイン削除か。
3、All In One SEO Packを削除
利用していた機能は、タイトルの書き換え、カノニカル、noindexの3つ。
こんなもの、わざわざプラグインを使う必要はないのですが、手抜き。
したがって、手動で設定して削除した。
実施後 | 前回 | |
ページ生成時間 | 0.085秒 | 0.095秒 |
クエリー時間 | 0.021秒 | 0.021秒 |
メモリ使用量 | 11.52MB | 13.65MB |
うん、なぜかこのプラグインはメモリを多く使っています。
2MBの削減は大きいので、できる限りは使わないのが良いだろう。
その他、サイトマップ作成プラグインなどいろいろ削除しましたが、ほぼ変わらず。
これにて検証打ち切り。
結果
結果 | 最初 | 減少率 | |
ページ生成時間 | 0.085秒 | 0.195秒 | 56.5% |
クエリー時間 | 0.021秒 | 0.071秒 | 70.4% |
メモリ使用量 | 11.52MB | 14.26MB | 10.9% |
2倍の高速化を達成!
ほぼランダム表示が原因ですが…
ちなみに、クエリー数は123個から39個になっています。
もう一つのランダム表示を減らせばあと10個くらい減るはず。
体感的にも表示がとても早くなったと感じます。
これ以上は求めないレベルに。
ランダム表示をされている方は是非キャッシュ化をしてみてください!
もちろん、ページ全体をキャッシュするのが一番ですが…
追記
気になるので、「現在のカテゴリの記事ランダム表示」を削除してみた。
結果は次の通り。
実施後 | 前回 | |
ページ生成時間 | 0.064秒 | 0.085秒 |
クエリー時間 | 0.008秒 | 0.021秒 |
メモリ使用量 | 11.47MB | 11.52MB |
ランダム表示を全て無くすだけで、この速さ。
「WP_Query」を一切使わないと、とても軽いです。
クエリー数も22になった。
本当に速さを極める場合、全てキャッシュ化するのが良いだろう。
そこまでやるのならやはり、Nginxでページごとキャッシュしますが…
以上、「重いワードプレスサイトを2倍軽くする!実践した方法を紹介(上級者向け)」でした。
ツイート是非ご感想・ご指摘等をください。