目次
問題点
さくらのレンタルサーバー(スタンダートプラン)でWordPressサイト運営をしているが、異常に遅い。
Google Speed Insightの結果は下記。
大きな問題点は3つ。
- レンダリングを妨げるリソース
- テキスト圧縮
- サーバー応答時間
対策
レンダリングを妨げるリソースの除外
レンダリングの妨げ要因は下記。
- 無駄なJavaScriptの読み込み
- 無駄なCSSの読み込み
やったこと
- WordPress管理画面にていらないプラグインを削除
- W3 Total Cacheプラグインにて、JSとCSSのMinifyを有効(Enable)に。Minify Cache MethodはOpcodeにする
こうすると、jsとcssを圧縮した上で、一箇所で読み込むようになり、無駄な遅延がなくなる。
テキスト圧縮
- W3 Total Cacheプラグインにて、HTML Minifyを有効(Enable)に。
サーバー応答時間
大きな問題点は2つあった。
- キャッシュ等が全く効いていない
- PHPをCGI版で動かしている(モジュール版より遅い)
ChromeのディベロッパーツールでTTFB(サーバー応答時間)を測定したところ、だいたい4sほどかかっていた。サーバーが最初の1バイトを返すまでの時間が4sもかかってたらそりゃユーザー離脱するわ。
サーバー/ブラウザでのキャッシュを有効化する
W3 Total Cacheプラグインにて、各種キャッシュを有効化した。
PHPをモジュール版で動かした(超重要)
さくらのレンタルサーバーがクソ遅いとTwitterでぼやいていたら、さくらの中の人からアドバイスをいただいた。
さくらのコントロールパネルから、PHP7.3のCGI版からPHP7.3のモジュール版へ変更した。
対策後のスコアと応答速度
劇的に速くなった。スコアは27→82に。
サーバー応答時間は4s弱かかっていたのが100msを切るぐらいに。
さくらのレンタルサーバーを高速化した時のポイントまとめ
下記をやるとだいぶ速くなる。
- Javascript, CSSの圧縮
- テキストの圧縮
- サーバー/ブラウザキャッシュの有効化
- PHPをCGI版からモジュール版に変更する(超重要)
lazy loadも行うとスコアは90を超えたが、たまに画像が表示されなくてむかつくので導入を見送った。
あとは、画像圧縮プラグインのSmushで画像を圧縮したり、S3+CloudFrontを使って画像をCDNで配信することで画像の読み込みも爆速化できる。まあそれをしなくても大分サクサクになったので、今回はやめておいた。PHPのモジュール版とキャッシュの力って偉大だなあと思った。
以上。お試しあれ。