WordPressサイトで問題が発生した際、解決するのに十分なデータが揃っていなければ厄介ですが、MyKinstaの「WordPressの解析」機能を使えば、さまざまな問題を調査・分析することができます。このページでは、分析機能の各要素について掘り下げた後、分析機能のデータを用いてWordPressサイトを改善および修正する方法について、いくつかの事例を取り上げてご紹介します。

MyKinstaの分析機能

MyKinstaの「ダッシュボード」画面では、リソースの使用状況、帯域幅(データ転送量)、訪問数、CDN使用状況(CDNを利用している場合)を一目で確認することができます。より詳細なレポートは、画面右上のユーザー名をクリックし、「企業の設定」>「分析」に移動するか、該当のサイトの「分析」画面(「WordPressサイト」>(サイト名)>「分析」)で確認することができます。

企業レベルの分析
企業レベルの分析
サイトレベルの分析
サイトレベルの分析

画面右上のドロップダウンメニューで、過去24時間、7日間、30日間、または現在の請求サイクル(現在の月)毎のデータ表示に切り替えることができます。

分析機能は、7つの要素で構成されます。以下、それぞれ詳しく見ていきます。

1. リソース

リソース」タブでは、総訪問者数、ディスク使用量、帯域幅の使用量、データ容量上位のリクエストと受信回数上位のリクエストの一覧を確認できます。

訪問数

「訪問数」のグラフは、サイトへの訪問数の合計が表示されます。グラフ上の特定のデータポイント(選択した時間枠に応じて日または時間)にカーソルを合わせると、そのデータポイントの訪問数と1つ前のデータポイントとの比較がパーセンテージで表示されます。ここで確認できるものは、正確なサイトの訪問数です。Google アナリティクスのフィルターやルールは適用されず、MyKinstaの独自ルール(ボットやエージェントのトラフィックの検出方法)に基づき、異なる数値が表示されます。

訪問数
訪問数

弊社ホスティングプランは、サイトの合計訪問回数に基づいています。訪問回数の算出方法についてはこちらをご覧ください。注意)「リソース」セクションの訪問数の合計は、MyKinstaの「ダッシュボード」に表示されるものと異なることがあります。これは、後者では常に請求サイクルの訪問数が表示されるためです。

ディスク使用量

「ディスク使用量」のグラフには、ストレージの上限と使用量が表示されます。注意)ディスク使用量は、過去24時間のデータを確認することはできません。画面右上のドロップダウンメニューから7日間、30日間、または現在の月を選択してください。

ディスク使用量
ディスク使用量

帯域幅

「帯域幅」には、サイトで使用したデータの総量が表示されます。サイト訪問者数に基づいてプランの料金をお支払いいただきますが、帯域幅の使用量の分析は、パフォーマンスに関する問題のトラブルシューティングに有用です。グラフ上の特定のデータポイントにカーソルを合わせると、各日にちの使用量の差などの比較データを確認できます。

帯域幅の使用量
帯域幅の使用量

CDNを利用すると、速度の向上だけでなく、サイトの帯域幅やリソース消費量の削減にもつながります。CDNの帯域幅は、非常に安価で、無料で利用できるものもあります。WordPress CDNのメリットと使用すべき理由についてはこちらをご覧ください。すでにCDNについてご存知であれば、弊社CDNの利用方法をご確認ください。

データ容量上位のリクエスト一覧

バイト(byte)は情報量の単位で、データ通信システムにおけるシリアル化されたデータストリームのバイナリビットの配列です。WordPressサイトでは、通常MB、GB、TBの単位が使用され、サイト上で転送されたバイト数の合計で帯域幅の使用量が決まります。「データ容量上位のリクエスト一覧」で、どのリクエストが最もサイト上で帯域幅を消費しているかを確認することができます。

データ容量上位のリクエスト
データ容量上位のリクエスト

受信回数上位のリクエスト一覧

「受信回数上位のリクエスト一覧」では、サイズに関係なく、サーバー上のサイトから最もリクエストされたリソースを確認できます。予想以上にサイトで帯域幅が使用されている場合、この一覧と上でご紹介した「データ容量上位のリクエスト一覧」は、トラブルシューティングと帯域幅の分析に役立ちます。大体すぐに問題となっているリクエストを特定することができます。

受信回数上位のリクエスト
受信回数上位のリクエスト

.

2. CDN使用状況

弊社CDNをご利用の場合は、「CDN使用状況」タブで、CDN帯域幅、リクエスト数上位のファイル、データ容量上位のファイル、データ容量上位のファイル拡張子を確認することがでいます。例えば、サイト上の特定のメディアファイルが帯域幅をすべて占めていることが予想される場合は、このタブで特定可能です。

「CDN使用状況」タブ
「CDN使用状況」タブ

帯域幅

「帯域幅」セクションには、サイトが使用したCDNデータの総量が表示されます。グラフ上の特定のデータポイントにカーソルを合わせると、各日にちの使用量の差などの比較データを確認できます。

CDN帯域幅の使用量
CDN帯域幅の使用量

リクエスト数上位のファイル一覧

「リクエスト数上位のファイル一覧」には、CDNで配信されるサイトのコンテンツの中で、最もリクエストの多いファイルが表示されます。帯域幅の大部分を占めているファイルを簡単に特定することができます。

CDNのリクエスト数上位のファイル
CDNのリクエスト数上位のファイル

データ容量上位のファイル一覧

「データ容量上位のファイル一覧」では、CDNで配信されるサイトのコンテンツの中で、一番大きなファイルが表示されます。最適化の余地がある大きなファイルを見つけるのに有用で、ファイルサイズとCDN帯域幅の使用量を見直すことができます。

データ容量上位のファイル
データ容量上位のファイル

.

データ容量上位のファイル拡張子一覧

「データ容量上位のファイル拡張子一覧」では、CDNで配信される上位のファイル拡張子が表示され、CDN帯域幅の大部分を消費するメディアの種類を分析することができます。

データ容量上位のファイル拡張子
データ容量上位のファイル拡張子

3. デバイス

デバイス」タブでは、サイトのトラフィックに関する情報が示されます。

PC/タブレット/モバイル

「PC/タブレット/モバイル」セクションでは、ユーザーがどのようなデバイスからサイトにアクセスしているかがわかります。例えば、以下のスクリーンショットでは、PCからのアクセスが86%以上を占めていることがわかります。

PC/タブレット/モバイルの割合
PC/タブレット/モバイルの割合

4. パフォーマンス

パフォーマンス」タブでは、PHP+MySQLの平均応答時間、PHPのスループット、ワーカープロセス数上限到達回数、AJAX使用状況、平均応答時間上位のPHP+MySQL、最大応答時間上位のアップストリームの分析を閲覧できます。

PHP+MySQLの平均応答時間

サイトにアクセスすると、ページに表示されるデータのコンパイルとクエリにPHPとMySQLが使用されます。このグラフは、キャッシュされていないすべてのリクエストに対するPHPとMySQLの平均応答時間を示します。

この値が高い、または最近急激な変化が見られる場合、サーバー周りの問題をお調べしますので、弊社カスタマーサポートまでご連絡ください。特に不具合が見当たらない場合は、パフォーマンスの問題の特定に役立つAPMツールをご利用ください。

PHP+MySQLの平均応答時間
PHP+MySQLの平均応答時間

PHPのスループット

スループットは、単位時間あたりのトランザクション数です。このセクションでは、サイトからのPHPスループット、つまり選択した時間枠で実行された総リクエスト数が表示されます。折れ線グラフは、時間または日単位(選択した単位によって異なる)でより詳しい内訳も確認可能です。

PHPのスループット
PHPのスループット

ワーカープロセス数上限到達回数

「ワーカープロセス数上限到達回数」のグラフは、PHPが割り当てられた最大ワーカプロセス数に達した頻度を示します。例えば、ご利用のプランに4つのワーカープロセスが付帯しているとします。サイトで4つの全ワーカープロセスが同時に実行され、受信したPHPリクエストにすぐ応答できなければ、ワーカプロセスの上限に達したとして、1回と数えられます。

弊社のホスティングプランには、特定の数のワーカープロセスが付帯しています。このセクションの分析は、サイトが継続的に上限に達しているかどうかを調べるのに便利です。

ワーカープロセス数の上限到達回数
ワーカープロセス数の上限到達回数

.

AJAX使用状況

Ajax(Asynchronous JavaScript and XML)は、クライアントサイド・スクリプトを使用して、ポストバックや更新なしでページの一部を更新できる技術です。

WordPressに関して言えば、速度テストの「admin-ajax.php」でよく見られます。WordPressは、投稿の自動保存、ユーザーセッション管理、通知などの管理機能のコアにAjaxを採用しています。Ajax呼び出しは、/wp-adminにあるadmin-ajax.phpファイルを通して行われます。

WordPressのAjaxで最も一般的な課題は、プラグインによるAjax使用率の急増とバックエンドのCPUに関するの問題です。これに関する詳細は、WordPressサイトのadmin-ajax使用率に関する記事をご覧ください。

admin-ajax.phpの読み込み時間を表す滝グラフ
admin-ajax.phpの読み込み時間を表す滝グラフ

「AJAX使用状況」では、admin-ajaxリクエスト数が表示され、特定の期間にAjax使用率が急増していないかどうかを確かめることができます。棒グラフの1つを選択すると、その特定の期間のAjaxリクエスト数が表示されます。使用状況が急に増えるの原因を絞り込むには、上で先ほどご紹介した記事のヒントをお役立てください。

Ajaxの使用状況グラフ
Ajaxの使用状況グラフ

平均応答時間上位のPHP+MySQL一覧

この一覧では、PHPMySQLの応答時間が上位にあるパスを確認することができます。この数値は一過性である可能性があるため、横にある「最大応答時間上位のアップストリーム一覧」と比較して分析を行うのががベストプラクティスです。

平均応答時間上位のPHP+MySQL
平均応答時間上位のPHP+MySQL

最大応答時間上位のアップストリーム一覧

アップストリーム時間は、Nginx(およびアップストリームサーバー)がリクエストを処理し、レスポンスを送信するのにかかる時間です。このセクションには、リクエストに対するPHPとMySQLのアップストリーム時間(合計)が上位のパスが表示されます。

最大応答時間上位のアップストリーム
最大応答時間上位のアップストリーム

5. レスポンス

レスポンス」タブでは、レスポンスの統計データ、レスポンスコード、500番台と400番台エラー、リダイレクトの内訳、そしてリクエスト数上位の404エラーを確認することができます。

レスポンスコードの内訳

「レスポンスコードの内訳」には、リクエストされたリソースに対して送信されたHTTPステータスコードの内訳が表示されます。レスポンスコードは、HTTPステータスコードとも呼ばれ、必ずしも悪いものとは限りません。例えば、 HTTPステータスコード200は、「OK/成功」を意味し、ウェブページやリソースが正常に動作した際に送信されます。その他のコードについては、後ほど詳しく見ていきます。

レスポンスコードの内訳
レスポンスコードの内訳

レスポンス統計データ

「レスポンス統計データ」には、リダイレクトの総数、エラー数、成功率、エラー率が表示されます。エラー率は、基本的にどのWordPressサイトでもわずかに見られ、まったく正常です。

レスポンス統計データ
レスポンス統計データ

500番台エラーの内訳

「500番台エラーの内訳」は、サーバーで発生した500番台のステータスコードの総数を示しています。以下、各エラーコードの概要です。

  • 500Internal Server Error/サーバー内部エラーサーバー内部でエラーが発生したことを単に意味する一般的なコードです。サーバーで問題が発生し、リクエストされたリソースが配信されない状況を示します。
  • 502Bad Gateway/不正なゲートウェイ─このエラーコードは、あるサーバーが別のサーバーから無効なリクエストを受信したことを意味します。また、クエリまたはリクエストに時間がかかりすぎることで、サーバーによりキャンセルまたは強制終了され、データベースへの接続が切断されるケースもあります。このエラーの解決方法はこちらをご覧ください。
  • 503Service Unavailable/サービス利用不可 ─サーバーが現在リクエストを処理できないことを意味します。その時点でリクエストを完了することはできません。このコードは、リクエストを処理できない過負荷のサーバーにより返されることがあります。このエラーの解決方法はこちらをご覧ください。
500番台エラーの内訳
500番台エラーの内訳

400番台エラーの内訳

「400番台エラーの内訳」は、サーバーで発生した400番台のステータスコードの総数を示します。各エラーコードの概要は、以下の通りです。

  • 401Unauthorizedまたはauthorization required/認証が必要─ターゲットリソースに有効な認証資格情報がない場合、これがサーバーから返されます。
  • 403Forbidden/拒否─リソースへのアクセスが禁止されていることを意味します。このコードは、ユーザーが表示する権限のないものにアクセスしようとしたときに返されます。とえば、ログインせずにパスワードで保護されたコンテンツにアクセスしようとすると、この403エラーが発生することがあります。
  • 404Not Found/未検出─要求されたリソースが見つかりませんでした、という意味の最も一般的なエラーメッセージです。このコードは、 要求されたリソースが存在しないことを意味し、サーバーはそれがかつて存在したかどうかすら知りません。
  • 405Method not allowed/未許可のメソッド─レンタルサーバー(オリジンサーバー)が受信したメソッドをサポートしているものの、ターゲットリソースがサポートしていない場合に返されます。
  • 429Too many requests/要求が多すぎる─指定された時間内にあまりにも多くのリクエストをユーザーが送信したときにサーバーから返されます(レート制限)。これは通常、WordPressデフォルトのログインページにブルートフォースで侵入しようとしているボットやスクリプトが原因になっています。この場合、WordPressのログインURLを変更することで、サイトを保護することができます。
  • 499Client closed request/クライアントによるリクエストの終了Nginxがまだ処理している間にクライアント側でリクエストが切断されると返されます。
400番台エラーの内訳
400番台エラーの内訳

リダイレクトの内訳

「リダイレクトの内訳」のグラフは、サーバー上で発生したリダイレクトの総数を示します。200のレスポンスコード同様、すべてのレスポンスコードが問題を示しているわけではありません。300番台のレスポンスコードは、通常、コンテンツが別の場所に移動したことを意味します。例えば、301リダイレクトなどは、URLやサイトの変更に伴うSEOに影響するため、非常に重要です。以下、各エラーの概要をご紹介します。

  • 301Moved Permanently/恒久的に移動─ウェブページやリソースが別のリソースに恒久的に置き換えられたときに返されます。このコードは、恒久的なURLリダイレクトに使用されます。
  • 302 Found/発見─要求されたリソースが予想された場所ではなく、一時的に別の場所で見つかったことを示します。
  • 304Not Modified/未更新─ブラウザキャッシュに保存されているリソースが変更されていないことをブラウザに通知します。以前にダウンロードしたリソースを再利用し、ページの配信を高速化するのに使用されます。
リダイレクトの内訳
リダイレクトの内訳

リクエスト数上位の404エラー一覧

「リクエスト数上位の404エラー一覧」は、訪問者や自動ボットがリクエストするサイトに存在しないリソースのうち、最もリクエストの多いリソースのトラブルシューティングに有用です。

リクエスト数上位の404エラー
リクエスト数上位の404エラー

404エラーが多く見られる場合は、通常、SEOとユーザビリティの観点から、サイトを調査して問題を解決することが推奨されています。また、Google Search Consoleのクロールエラーで確認することも可能です。

Google Search Consoleの404エラー
Google Search Consoleの404エラー

6. キャッシュ

キャッシュ」タブでは、キャッシュ推移、キャッシュ比率、リクエスト数上位のキャッシュバイパスを一覧で確認することができます。

キャッシュ推移

弊社サーバーでファイルまたはリソースが要求されると、HTTPレスポンスヘッダー(X-Kinsta-Cache)に値が送信され、キャッシュのステータスが表示されます。

HTTPレスポンスヘッダーのHIT(X-Kinsta-Cache)
HTTPレスポンスヘッダーのHIT(X-Kinsta-Cache)

キャッシュのステータスは、以下4種類です。

  • HIT:リソースが弊社サーバーのキャッシュから配信されていることを意味します。通常、これが理想的なステータスです。
  • BYPASS:ルールまたは干渉によってリソースのキャッシュが妨げられていることを示します。弊社では、一部のコンテンツがキャッシュされないようにルールを設けています。例えば、管理画面へのログイン時に適切な機能を確保する目的で、/wp-login.phpページはキャッシュされません。
  • MISS:このステータスは、コンテンツがまだキャッシュされていないことを意味しますが、最初のリクエストの後にキャッシュされるようになります(2回目のリクエストで「HIT」に)。サイトのキャッシュをパージすると、訪問者がすべてのコンテンツをゼロから読み込まなければならないため、全体のキャッシュはクリアしないことをお勧めします。Kinsta MUプラグインを使用すると、自動的にサイトの特定のコンテンツのみがパージされるため、残りのキャッシュを保持することができます。弊社でのキャッシュの処理方法についてはこちらをご覧ください。
  • EXPIRED:キャッシュされたコンテンツの有効期限が切れ、サーバーから新たにコンテンツが呼び出されたことを示します。

「キャッシュ推移」のグラフでは、サイトで生成されたレスポンスヘッダーの各キャッシュステータスの合計数を確認できます。

キャッシュステータスの推移
キャッシュステータスの推移

キャッシュ比率

「キャッシュ比率」でも、レスポンスヘッダーの各キャッシュステータスの合計数を確認することができます。

キャッシュ比率
キャッシュ比率

リクエスト数上位のキャッシュバイパス一覧

「リクエスト数上位のキャッシュバイパス一覧」は、サイトのキャッシュをバイパスする上位リクエストを示します。一覧に表示されているパスが、キャッシュをバイパスする必要があるかどうかを確かめるのに便利です。以下のスクリーンショットは、WordPressのcronジョブ(WP-Cron)の動作に欠かせない/wp-cron.phpがキャッシュされていないことを示しています。

リクエスト数上位のキャッシュバイパス
リクエスト数上位のキャッシュバイパス

7. 位置情報とIP

位置情報とIP」タブでは、サイト訪問者の上位の国と都市、そしてIPアドレスを確認し、それぞれのデータに関するインサイトを得ることができます。

リクエスト数上位の国一覧

「リクエスト数上位の国一覧」は、訪問者のIPアドレスの国別分析で、現在選択しているデータセンターが適しているかを判断するのに役立ちます。以下のスクリーンショットの例では、ほとんどのアクセスが米国から来ており、サイトを米国のサーバーに設置するのが得策であることがわかります。

弊社のWordPress専用マネージドホスティングでは、世界各地に設置されたGoogle Cloud Platformのデータセンター37箇所から、お好きな場所をお選びいただけます。詳細については、ネットワークレイテンシと適切なデータセンターの選択に関する記事をご覧ください。

リクエスト数上位の国
リクエスト数上位の国

リクエスト数上位の都市一覧

「リクエスト数上位の都市一覧」は、訪問者のIPアドレスの都市別分析が表示されます。

リクエスト数上位の都市
リクエスト数上位の都市

リクエスト数上位のクライアントIP一覧

「リクエスト数上位のクライアントIP一覧」は、リクエストが特に多いIPアドレスを確認することができ、帯域幅が急に大量消費された場合などに有用になります。

リクエスト数上位のクライアントIP
リクエスト数上位のクライアントIP

このデータを活用する事例として、あるWordPressのECサイトで過去7日間のクライアントIPの上位10件を分析したところ、不審な動きが見られました。そのほとんどから1万件以上のリクエストが送信されており、このようなIPアドレスが多数ありました。この場合は、DDoS攻撃またはブルートフォース攻撃を受けている可能性が高く、上位のIPアドレスをいくつかGoogleで検索してみると、ほとんどがプロキシIPアドレスであることが判明。つまり、何者かがトラフィックを隠そうとしていた可能性が高いということです。

Google検索結果のプロキシIPアドレス
Google検索結果のプロキシIPアドレス

弊社のCloudflare統合には、ファイアウォールに加えて、無料のDDoS(分散型サービス拒否)対策も含まれます。さらなる対策が必要であれば、弊社カスタマーサポートまでお気軽にお問い合わせください。必要に応じて、IPアドレスをブロックすることも可能です。

別の方法として、お客様自身でCloudflareアカウントを設定するか(Cloudflareのウェブアプリケーションファイアウォールを有効にして、より詳細なルールを設定)、Sucuriなどのウェブアプリケーションファイアウォールを利用することもできます。

その他の注意事項

上記でご紹介した分析データは、30日間保持されます。弊社への移行後は、「ダッシュボード」と「分析」画面を定期的に確認することをお勧めします。原因不明のトラフィックの急増や何かしらの異変を発見したら、すぐに弊社カスタマーサポートまでお知らせください。ログを詳しく調査し、原因を特定するお手伝いをさせていただきます。