さくらのレンタルサーバーでWordPressが遅かった時の対策

目次

問題点

さくらのレンタルサーバー(スタンダートプラン)で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のモジュール版とキャッシュの力って偉大だなあと思った。

以上。お試しあれ。