1. TOPTOP
  2. Webサービス
  3. Google

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その6(WP Super Cacheの活用)

reduce_server_response_time_page_insights_0

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その3(スケールアップ後のInsights評価確認)

先日、エコテキブログで使っているサーバーを、「さくらのVPS 512MBプラン」を「さくらのVPS 2GBプラン」に変更しました。するとGoogleが提供するPageSpeed Insightが表示するサーバーの応答時間が、0.78秒から0.4秒程度になりました。

ただしGoogleが推奨するサーバーの応答時間は0.2(200ミリ)秒以下です。この基準を満たすために、WordPressのプラグインであるWP Super Cashe(新しいタブで開く)を活用した例をご紹介します。

“query_cashe_type=1″が登録できない

MySQLのチューニング〜PageSpeed Insightsが表示する「サーバーの応答時間を短縮する」の対応準備〜 MySQLTunerとSHOWクエリの活用

当初はWP Super Casheを使う予定はありませんでした。上記の記事でMySQLのチューニングを準備していたように、MySQLの設定ファイルを書き換えることでデータベースキャッシュを削減し、サーバーの応答速度を上げようとしていました。

# vi /etc/my.cnf
i
# 
[mysqld] ←ブロックに追記
query_cashe_size=32M
query_cashe_limit=2M
query_cashe_min_res_unit=2M
query_cashe_type=1 
:wq
# systemctl restart mysqld.service ←ここで黒い画面が固まる

ですが、クエリーキャッシュの設定について記述すると、システムの再起動ができません。

# view /etc/log/mysqld
...
2018-08-20 15:53:53 21114 [Note] InnoDB: 5.6.36 started; log sequence number 
2018-08-20 15:53:53 21114 [ERROR] /usr/sbin/mysqld: unknown variable 'query_cashe_type=1'
2018-08-20 15:53:53 21114 [ERROR] Aborting
...
# mysql –version
mysql Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using EditLine wrapper

MySQLの設定ファイルで原因を探っているとクエリをキャッシュする、“query_cashe_type=1″の設定が使えない(unknown variable)ことが分かりました。MySQL5.6.36であれば、”query_cashe_type”は使えると思っていたのですが。

WP Super Cacheのイメージ

そこで登場するのが、WordPressのプラグインであるWP Super Cacheです。WP Super Cacheは、WordPressが行う処理をすべてキャッシュしてくれます。

WP Super Cacheを使わない場合

クライアントPC(50,000cache) → データベース(50,000cache)
クライアントPC(50,000cache) ← データベース(50,000cache)

仮にクライアントPCからデータベースに50,000キャッシュが送られるとしましょう。WP Super Cacheを使わない場合、データベースはキャッシュせず、そのままクライアントPCに50,000キャッシュを返します。

WP Super Cacheを使わない場合

クライアントPC(50,000cache) → データベース(50,000chasheが)
クライアントPC(50,000cache) ← WP Super Cache(25,000cache) ← データベース(25,000cache)

WP Super Cacheを使うと、クライアントPCからすでに送られたキャッシュについては、データベースを通さず、そのままクライアントPCにキャッシュを返すことになります。WP Super Cacheを使っていないときと比べて、25,000回データーベースへの問い合わせ作業が減ることになります。

WordPressのシステムにおいて、MySQLの問い合わせ作業(クエリ)は非常に負担になると言われています。その負担を削減することはサーバーの応答速度を上げることに大きく貢献します(なお25,000回という数字はイメージです)。

WP Super Cacheの設定とパフォーマンスの確認

では実際にWP Super Cacheをインストールして有効化してみましょう。

WP Super Cacheの設定

reduce_server_response_time_pagespeed_insights_6_1

WordPressの管理画面から”WP Super Cache”の設定メニューをクリックします。簡易画面が表示されますので、”キャッシング利用(推奨)”にチェックを入れて、”ステータスを更新”をクリックします。

なお、WP Super Cacheを日本語化すると、上記のような警告文が表示されます。この警告文をよく確認した上で、WP Super Cache利用の検討をしましょう。自分の場合は、プラグインをインストールして初めて警告文が表示されました。したがって警告文を無視して利用しました。

パフォーマンスの確認

reduce_server_response_time_pagespeed_insights_6_3

mysql> SHOW STATUS LIKE 'Qcache%';

MySQLの画面に入って、SHOWクエリで現在のクエリキャッシュの利用状況を確認します。上記の画像は、WP Super Cacheを利用する前後でクエリキャッシュがどれぐらい変化しているかを表しています。

プラグインの利用前はMySQLに41,450cacheが存在しましたがプラグインを利用すると、キャッシュが25,016cacheまで減少しました。今回の場合、約16,000cacheがWP Super Cacheによって引き受けられたと推測されます。

PageSpeed Insightsの評価

reduce_server_response_time_pagespeed_insights_6_4

当エコテキブログでWP Super Cacheをインストールすると、PageSpeed Insightsでは、モバイル・パソコンともに「サーバーの応答時間」が最適化済みの提案となりました。サーバーの応答時間は、Googleが推奨する0.2秒以下になっていると考えられます。

モバイル

reduce_server_response_time_pagespeed_insights_6_5

モバイルは直近のスコア(新しいタブで開く)と比べ6ポイント上昇し、82点になりました。初めてのPageSpeed Insightsの最適化達成です。

パソコン

reduce_server_response_time_pagespeed_insights_6_6

パソコンは直近のスコア(新しいタブで開く)と比べ2ポイント下落し、72点になりました。