WordPressサイトの動作が遅延しても、その原因は様々。突き止めるのは簡単ではありません。ウェブサーバーや関連設定、テーマやプラグインなど、多くの要素が関係しています。また、画像、動画、埋め込みなどの最適化されていないコンテンツが原因であることもあります。

それでは、パフォーマンスの問題の原因をどのように把握すればいいのでしょうか。

原因を一様に説明することはできません。複数の可能性が考えられます。そこで今回の記事では、ひとつひとつ見ていきましょう。

もちろんWordPressサイトの遅延を招く理由を解明するだけにとどまらず、WordPressサイトをスピードアップする方法もご紹介します。

それでは本題に入りましょう。

サイト速度の診断について動画での説明もご用意しています。


WordPressサイトの遅延の原因

ウェブ開発者の中には、WordPressの動作が遅いことを理由に、WordPressを完全に否定する人もいるかもしれません。たしかに「以前はそうだった」かもしれませんが、最新の技術を鑑みると、必ずしも正確な表現とは言えません。現在、多くの大手企業が自社サイトの構築と運営にWordPressを使用しています。

WordPressサイトのパフォーマンスについて言えば、あらゆる要素がそれに影響を与えます。特に重要なものが以下の通りです。

  • サイトのウェブホスティングプロバイダー
  • サーバーサイドの最適化(PHPのバージョン、キャッシュ、圧縮など)
  • WordPressテーマ
  • WordPressプラグイン
  • コンテンツ最適化(特に画像)
  • 外部HTTPリクエスト数
  • コンテンツ配信における専用リソースの使用(CDN、動画ホスティングなど)
一般的なWordPressサイトの構成要素
一般的なWordPressサイトの構成要素

ウェブホスティングプロバイダーが実施するサーバー最適化とは別に、自分自身で心がけることで、サイトを高速化することができます。その術については後ほど説明しますが、まずは、サイトの速度低下を招く原因を突き止めましょう。

WordPressサイトの遅延を診断する4つのステップ

ウェブサイトのテストから速度低下の原因を特定していきましょう。ホスティングサービス、サイト自体、またはその両方など、どこに原因があったとしても、丁寧な診断から始めることが重要です。具体的な手順をご紹介します。

ステップ1. ページ読み込み速度テストの実施

まずはサイトの読み込み速度を計測することをおすすめします。2秒以上かかると、ユーザーエクスペリエンスの観点から最適とは言えません。理想は、1秒以下での表示です。

GTmetrix、Pingdom Tools、Google PageSpeed Insightsなど、計測に使えるサービスは豊富に存在します。

ここでは、GTmetrixPingdomを使用して実演してみます。

まずはGTmetrixを使って、ウェブページをテストしてみましょう。アクセス元(またはあなたのサイトの訪問者)に最も近いサーバーロケーションを選択してください(補足:GTmetrixアカウントを作成すると、サーバー所在地の選択肢が増えます)。

GTmetrixのホームページ
GTmetrixのホームページ

このページから、WordPressサイトのトップ画面をテストしています。トップページには多くのコンテンツが配置されているため、テストをするのにうってつけです。

テストが完了すると、以下のようなGTmetrixのパフォーマンスレポートが表示されます。

GTmetrixを使って計測した結果
GTmetrixを使って計測した結果

GTmetrixは、多くの指標に基づいてウェブページを採点します。また、テスト中にページがどのように読み込まれたか、視覚的なタイムラインも表示されます。詳しく理解するには、スクロールして情報を確認してみましょう。

GTmetrixの「Summary」タブ
GTmetrixの「Summary」タブ

Summary」タブから、サイトのパフォーマンスに影響を与える主要な問題が確認できます。ここでは、最も大きな問題として、サーバーの応答時間が目に留まります。これに対するには、ホスティングプランのアップグレードや、別のサーバーへの移行が考えられます。とは言え、結論を急ぐ前に、他のすべての問題も解決することをお勧めします。

次に大きな問題が「Avoid an excessive DOM size(過剰なDOMサイズを避ける)」です。これは、ページビルダーを使用することで発生することがあります。また別の問題として「Avoid large layout shift(大きなレイアウトシフトを避ける)」がありますが、こちらは、ページビルダー、テーマに関連している可能性があります。

「Avoid enormous network payloads(膨大なネットワークペイロードを避ける)」は、画像、スクリプト、CSSファイルなどの容量の大きいアセットについての警告です。「Page details」セクションに、その概要が記載されています。ここでは、ページの総サイズとページリクエストの数がかなり多いことがわかります。

CDNを使用していないことも、WordPressサイトの速度低下の原因の一つとして考えられます。これについては、WordPress CDNを利用することのメリットについてのこちらの記事で詳しく説明しています。

Performance」タブをクリックすると、ブラウザとLighthouse Performanceで取得された詳しい数値を確認できます。

GTmetrixの「Performance」タブ
GTmetrixの「Performance」タブ

ご覧のように、このテストサイトでは、多くの問題が散見されます。レポートの「Structure 」と「Waterfall」タブを開くと、さらに詳しい情報が得られます。

Pingdomでウェブサイトの速度を計測
Pingdomでウェブサイトの速度を計測

続いて、こちらも人気のサイトスピードテストツール「Pingdom Tools」です。ここでも同じサイトのトップページをテストしてみます。

Pingdomでは、独自のアルゴリズムでウェブページがテストできます、先ほどと同じように、計測の結果はあまり好ましいものではありません。

Pingdomでスピードテストを実施した結果
Pingdomでスピードテストを実施した結果

さらに下にスクロールすると、サイトのパフォーマンスを改善する方法が表示されます。クリックで、どこをどのように改善すればよいのかなど、詳しい情報が見られます。

Pingdomによるパフォーマンス改善案
Pingdomによるパフォーマンス改善案

スピードテストツールにはそれぞれ、独自のパフォーマンス指標があるため、その結果を他のものと直接比較することはできません。この理由から、どのサービスを選ぶにしても、少なくとも最初のトラブルシューティングの間は、1つに限定することをおすすめします。他のスピードテストツールは、後からいつでも試すことができます。

最後に、サイトの知覚的なパフォーマンスと実際のパフォーマンスの違いも考慮する必要があります。詳しくは、ウェブサイトのスピードテスト実施に関する解説をご覧ください。

ステップ2. ウェブサイトの負荷テスト

スピードテストツール「k6」
スピードテストツール「k6」

ウェブサイトに擬似的に負荷をかけることで、実世界に近いかたちで、サイト速度をテストすることができます。今回の説明では、ローカル環境で実行できるフリーかつオープンソースの負荷テストツールであるk6を使用することにします。

無料版のk6を使用するには、コマンドラインの知識が必要ですが、一度使い方を理解できれば、かなり強力な選択肢となります。(注:別の方法として、k6のプレミアムクラウドソリューションやLoader.ioといったシンプルなクラウドベースの負荷テストツールを使用することもできます)

k6 Reporter拡張機能を組み合わせることで、HTMLでの詳しい結果が確認可能になります。

k6を利用した負荷テスト(数値の確認)
k6を利用した負荷テスト(数値の確認)

上記の結果は、同じサイトを最大50人の仮想ユーザーで10分間負荷テストにかけた場合のものです。ダッシュボードには、その他にも役立つデータが表示されています。

k6を利用した負荷テスト(その他のデータ)
k6を利用した負荷テスト(その他のデータ)

リクエストのほとんどが失敗していることに注目してください。おそらく、サーバーがリクエストを処理できていないということです。

また、k6スクリプトで閾値や基準を設定することもできます(例:ページの読み込みが1.5秒未満、ユーザーがログインできるかどうか等)。これに関しての数値もダッシュボードで同様に確認可能です。

下の画像は、正確な条件を用いて実施した別のサイトの負荷テストの結果です。

k6を利用した負荷テスト(第2回戦)
k6を利用した負荷テスト(第2回戦)

リクエストが28回失敗しているのは大きな問題に見えるかもしれませんが、リクエストの総数を考えるとそこまでではありません。私のローカルマシンから出されたすべてのリクエストの0.25%に過ぎません。この結果から、このサイトのサーバーは、かなりの数の同時接続ユーザーに対してサービスを提供できることがわかります。

ステップ3. WordPressのテーマとプラグインを調べる

パフォーマンスの問題を発見するために、WordPressサイトのテーマとプラグインもテストする必要があります。中には、最適化が十分でないものもあります。

先のスピードテストのセクションでは、問題のあるテーマやプラグインをレポートから発見する方法に触れました。これとは別に、もっと直接的な検査方法もあります。テーマやプラグインを1つずつ無効にして、サイトのパフォーマンスの違いを確認していきましょう(スピードテスト、負荷テスト、またはその両方を実施)。

パフォーマンスの問題が解決しない場合は、テーマやプラグインをもう1つ無効にして、テストを再度実行します。ベテラン刑事のごとく、原因を突き止めるまでこの作業を続けます。

しかし、この方法は本番サイトではNGです。必ず、ステージングサイトを用意して実行するようにしましょう。ステージング環境があれば、自由に特定の機能を追加、変更、削除して、テストすることができます。

ほとんどのレンタルサーバー(特に安価な共用サーバー)では、この機能はデフォルトで提供されていません。そのため、ステージングサイトを自前でセットアップするか、WordPressステージングプラグインを使用する必要があります。

ちなみに、KinstaのWordPressホスティングでは、専用のステージング環境が、追加費用なしでもれなく付帯します。コントロールパネル「MyKinsta」にログインしサイトを選択したら、環境をワンクリックで「本番/Live」から「ステージング/Staging」に変更できます。

Kinstaのステージング環境
Kinstaのステージング環境

このステージングサイトは、サーバーの仕様やその設定に至るまで、事実上、本番サイトの完全なコピーとなります。安全な環境で、本番サイトに影響を与えることなく、ウェブサイトの改修やテストを実行することができます。

Kinstaでは、これとは別にプレミアムステージング環境もご用意しています。テストの要件に合わせて最大5つのステージング環境を追加で作成することが可能です。

ステップ4. アプリケーションパフォーマンス監視(APM)の使用

スピードテストや負荷テストと組み合わせるかたちでAPMを使うことで、ウェブサイトの診断を包括的に実施可能です。

優れたAPMを使用すれば(ステージングサイトを立ち上げて、どのプラグインやテーマを無効にするかを一つずつ推測する代わりに)サイト上で何も変更することなく、パフォーマンス低下の原因を特定することができます。APMは、時間のかかっているトランザクション、データベースクエリ、外部リクエスト、WordPressフック、プラグインなどを追跡・分析するのに便利です。

MyKinstaでKinsta APMを有効化する
MyKinstaでKinsta APMを有効化する

一般的に、APMの使用は初心者に優しいものではありません。経験の開発者であっても、効率的に活用するには、ある程度のトレーニングが必要になります。さらに、ほとんどのツールでライセンスが必要なため、コスト面も考慮しなければなりません。

おすすめのAPMツールについてはこちらでご紹介しています。無料のQuery Monitor WordPressプラグインを使用するのも一つの手です。

また、Kinstaでは、ホスティングプランに付随するかたちで無料のKinsta APMをご用意しています。WordPressサイトのために特別に設計されたパフォーマンス監視ツールで、WordPressサイトに関わるあらゆるパフォーマンス面での問題の特定を支援します。

この機能を実証するために、あえて最適化されていないサイトを用意しました。MyKinstaで、このサイトのKinsta APMをオンにしてみます。そして、Kinsta APMのデータを取得するために、負荷テストを実施。その結果がこちらです。

Kinsta APMの「トランザクション」タブ
Kinsta APMの「トランザクション」タブ

トランザクション」タブには、監視期間中に最も時間がかかったリクエストが表示されます。ここからサイトの最適化に着手することをおすすめします。このサイトの例では、「wp-cron.php」に最も時間がかかっていることがわかります。これは、WordPressコア、テーマ、または任意のプラグインに起因する可能性があります。

WP-Cronを無効にして、システムのcronに置き換えることで、サイトのパフォーマンスを向上するという手があります。

次は、Kinsta APMの「WordPress」タブです。ここでは、最も遅いWordPressのプラグインとフックを見つけることができます。

Kinsta APMの「WordPress」タブ
Kinsta APMの「WordPress」タブ

不要なプラグインや、重複する機能を持つプラグインが見つかったら、WordPressサイトから削除することができます。例えば、この例では2つのお問い合わせフォームプラグインと、このウェブサイトでは不要と思われるポートフォリオプラグインが確認できます。

Kinsta APMで時間のかかっているWordPressフックを確認
Kinsta APMで時間のかかっているWordPressフックを確認

このタブをさらに下にスクロールすると、最も時間のかかっているWordPressフックを見つけることができます。

Kinsta APMの最も便利な機能の1つが、遅延の見られるWordPressフックの追跡です。フックの特定の項目をクリックすると、そのトランザクションの例を見ることができます。

Kinsta APMで時間のかかっているフックのトランザクションを見る
Kinsta APMで時間のかかっているフックのトランザクションを見る

どのプラグイン、テーマ、フックがパフォーマンスのボトルネックになっているかを知ることが、問題解決の出発点となります。その後、サイトパフォーマンスを向上させ、ページの表示時間を短縮するための適切な処置を講じることができます。

読み込みの遅いWordPressサイトを改善する17の方法

ここまでは、問題の特定や一般的な診断についてご紹介しました。続いては、収集した情報に基づいて、対処を行いましょう。それでは、遅延の見られるWordPressサイトを高速化する術をひとつひとつご紹介します。

以下のリンクから各セクションに飛ぶことができます。

1. WordPressサイトの更新を怠らない

WordPressサイトを維持する上で欠かせないのが、まめに更新をすること。当たり前のことのように思えるかもしれませんが、それでも念を押しておく価値はあります。

WordPressのアップデートには、セキュリティパッチ、最新の機能、パフォーマンス面での改善などが盛り込まれるものです。

サイトの自動更新は、wp-config.phpファイルで有効にすることができます。サイトの安全性を保つためにも、できるだけ早い段階でWordPressの最新バージョンに更新しておくことをお勧めします。

同様に、有効なプラグインやテーマもすべて更新を怠らないようにしましょう。1年以上更新されていないプラグインやテーマがあれば、再検討の余地ありです。WordPressでは豊富に選択肢が用意されていますので、優れた代替品が高い確率で見つかります。

2. ウェブサイトの画像を最適化する

HTTP Archive(2022年3月1日)によると、WordPressサイトのページの重さの中央値は2408 KBで、そのうち画像はほぼ1117 KB(ページ全体の46.38%)を占めているとのことです。

WordPressサイトの画像についての統計データ(出典:HTTP Archive)
WordPressサイトの画像についての統計データ(出典:HTTP Archive)

サイズの大きな画像は、ウェブサイトの速度を低下させ、到底理想的とは言えないユーザーエクスペリエンスを生み出します。だからこそ、手動で、またはプラグインを使用し自動で、画像を最適化することをお勧めします。

画像の最適化には、非可逆的、可逆的な圧縮があります。ほとんどの画像編集ソフトで、最適な画像の圧縮具合を実現するために、品質の調整が行えます(または自動で行われます)。また、非可逆圧縮を選べば、多くの場合、画像の質を適度に維持しながら、大幅にファイルサイズを削減可能です。

画像ファイル形式を選ぶことが非常に重要です。PNGはコンピュータで作成したグラフィックに適しており、JPEGは写真に利用するのが一般的です。GIF、SVG、JPEG XR、WebPなど、他にも多くの画像フォーマットがあります。すべてのブラウザで普遍的にサポートされているものもあれば、そうでないものもあるので、よく調べてから選ぶ必要があります。

WordPressのメディア設定で画像サイズを指定する
WordPressのメディア設定で画像サイズを指定する

WordPressはデフォルトでレスポンシブ画像に対応しています。好みの画像サイズを設定し、あとはWordPressに処理を任せることができます。また、Imsanityのような無料のWordPressプラグインを使用して、大きな画像を設定したサイズに自動でスケールダウンすることも可能です。

WordPressの画像最適化プラグインとしては、Imagifyなどの名前がよく挙がります。ウェブサイトの画像最適化についての詳しい説明はこちらをご覧ください。

3. プラグインの使用をほどほどに(必要最低限に)

プラグインは、ある意味でWordPressとそのコミュニティの生命線です。WordPress.orgに掲載されている5万4,000以上の無料プラグインと、その他サイトで販売、公開されているものを利用すれば、あらゆる機能が簡単に実現できます。

とは言え、最適化に難のあるWordPressプラグインを使用すると、サイトのパフォーマンスが低下してしまう可能性があります。

だからこそ、サイトで利用するプラグインの性能をしっかりと確認する必要があります。さらに重要な点として、プラグイン開発者が、他のプラグインと干渉を引き起こさないように配慮しているかどうかもチェックしたいところです。

Kinstaが厳選したWordPressプラグイン一覧
Kinstaが厳選したWordPressプラグイン一覧

様々なユースケースに対応したおすすめのWordPressプラグインもご紹介しています。SEOプラグインSNSプラグインお問い合わせフォームプラグインECプラグインなど、きっと役に立つものが見つかるはずです。

どんなに多くのプラグインをインストールしても、この記事のステップ3やステップ4を参照することで、問題のあるプラグインを特定することができます。

4. 高速なWordPressテーマを選ぶ

高速なWordPressテーマの選択は、ウェブサイトのパフォーマンスとユーザーエクスペリエンスにとって非常に重要です。レイアウト、ナビゲーションメニュー、色合い、フォント、画像の配置など、テーマの特徴は訪問者による第一印象を左右します。

また、うまく最適化されていないと、いかにきれいなサイトができても、使い心地の面で問題となる可能性があります。

人気のWordPressテーマ「Hello Elementor」
人気のWordPressテーマ「Hello Elementor」

WordPressのテーマを選ぶ前に、ウェブサイトに求められる機能をすべてリストアップしてください。そして、要件に合うテーマを調べて比較します。

高い評価と優れたカスタマーサポートを誇る信頼できる開発元のみを選ぶようにしましょう。また、頻繁に更新されていないテーマも避けることをお勧めします。

無料テーマでも有料テーマでも、最初に特定したサイトの目標を達成できるものを選ぶようにしましょう。WooCommerceテーマを含む数十のWordPressテーマをテストし、最もパフォーマンスの面で優れたものを以下の記事でご紹介しています。

シンプルで軽量であることが重要です。「なんでも網羅」しているものよりも、目的やトピックを絞り込んだテーマを選ぶことをお勧めします。不必要に肥大化しているものは避けるのが得策です。例えば、機能的で美しくとも、中途半端なページビルダープラグインを搭載したテーマはたくさんあります。

すでにWordPressサイトをお持ちであれば、ステージングサイトを立ち上げ、そこでテーマのテストをするようにしましょう。

5. キャッシュの設定によるウェブサイトの最適化

各種ウェブサイトのキャッシュの説明をした図
各種ウェブサイトのキャッシュの説明をした図

キャッシュは複数の層で構成される複雑な技術です。キャッシュについての説明はこちらで解説しています。簡単に言えば、ウェブサイトを高速化するために、頻繁に利用するデータを保存し、簡単に呼び出せる(使いまわせる)ようにする技術です。

WordPressにはPHPとMySQLが使用されており、キャッシュを経由しないと、その両方が肥大化する可能性があります。煎じ詰めれば、サイトの速度は、サーバーとキャッシュの組み合わせで改善していく必要があるということです。

ほとんどのWordPress専用マネージドホスティング(Kinstaを含む)で、サーバーレベルのキャッシュが実装されています。Kinstaではさらに、エッジキャッシュなどの高度な機能も提供しており、サイト訪問者にページを素早く配信できます。

ご利用のサーバーでこれが提供されていない場合には、無料のWordPressキャッシュプラグイン(例:WP Super CacheW3 Total Cache)を使用する手もあります。

Kinstaのサイト(キャッシュありとなしの比較)
Kinstaのサイト(キャッシュありとなしの比較)

キャッシュを有効にしていない状態でも、上記のサイトは適度に最適化されているため、高いパフォーマンスを発揮しています。しかし、キャッシュを有効にすると、そのパフォーマンスは23%も向上していることがわかります。何千人ものユニークビジターにサービスを提供するとなると、この違いはより大きなものになるでしょう。

6. 外部HTTPリクエスト(+APIコール)を削減

WordPressサイトのテーマとプラグインには、さまざまなリソースへの外部リクエストが含まれることがあります。一般的に、このリクエストは、スタイルシート、フォント、スクリプトなど、外部でホストされているファイルを読み込むためのものです。

CSSはレンダーブロックを引き起こすリソースとなる可能性がある
CSSはレンダーブロックを引き起こすリソースとなる可能性がある

分析、SNSでの共有などの機能を追加することもあるかもしれません。

もちろん、ほどほどに使用することは問題ありません。しかし、多用するとサイトの速度が低下する可能性があります。HTTPリクエストの数を減らし、その読み込み方法を最適化することで、サイトの高速化を進めることができます。

詳しくは、HTTPリクエストを少なくする方法をご覧ください。

7. ウェブサイトのスクリプトとスタイルシートを圧縮

コード圧縮により、コードから不要な要素を削除することができます。WordPressサイトでは、主にJSスクリプトCSSスタイルシートを圧縮することを意味します。

通常、人間(つまりウェブ開発者)の利便性を意識した部位が圧縮の対象となります。例えば、コードのコメントです。このような要素は、機械(またはウェブブラウザ)にとっては必要ありません。

ウェブサイトのコードを圧縮することで、JavaScriptとCSSファイルのサイズを削減できます。これにより、ブラウザでの解析がスムーズになり、読み込みが速くなります。

WordPressのパフォーマンスプラグインのほとんどで、これを簡単に実行できます。人気の選択肢として無料のAutoptimizeなどがあります─この記事の執筆時点で、100万以上のアクティブインストール件数を誇ります。

Kinstaをご利用であれば、コード圧縮のためにプラグインをインストールする必要はありません。MyKinstaから直接この操作を行うことができます。

MyKinstaの「コード圧縮」を使用する
MyKinstaの「コード圧縮」を使用する

Kinstaのコード圧縮は、Kinsta CDNの動力源にもなっているCloudflareのエッジネットワークで行われ、そこで効率的にキャッシュされます。訪問者に最も近いエッジサーバーからファイルが配信されることで、サイトのサーバーリソースの消費をおさえることも可能です。詳しくは、コード圧縮についての説明をご覧ください。

またCloudflareとの統合の一環として、エッジキャッシュも導入しています。これによりページのキャッシュデータがCloudflareの広範なグローバルネットワークのデータセンター(260+)に保存されます。

エッジキャッシュは、Kinstaのすべてのプランに無料で付帯します。別途プラグインをインストールする必要はありません。キャッシュにより、WordPressサイトのHTMLコンテンツ配信速度を平均50%以上削減することができます。

8. 各ページで必要なスクリプトだけを読み込む

WordPressのテーマやプラグインのリソースの多くは(一部のページでは必要ないにも関わらず)すべてのページで読み込み実行されます。例えば、お問い合わせフォームのプラグインは、それがあるページ(例:「お問い合わせ」ページ)だけでなく、すべてのページで読み込まれている可能性があります。

このスクリプトを圧縮することで、サイトのパフォーマンスが向上する可能性がありますが、そもそも不要な場所で読み込まれないようにするのが理想的です。

この作業には、無料のプラグイン「Asset Cleanup」が使用できます。このプラグインを有効化すると、ページで読み込まれているすべてのアセットが表示されます。そして、特定のページに必要のないCSSやJSファイルを除外し、肥大化を抑制できます。

「Asset CleanUp」プラグインを使用
「Asset CleanUp」プラグインを使用(出典:WordPress.org

このプラグインは、キャッシュと組み合わせて使用すると効果的です。ウェブサーバーによるページの繰り返し生成を最小限におさえることができます。

9. 遅いWordPress管理画面の高速化

一般的に、バックエンドの最適化はフロントエンドから始まります。フロントエンドを高速化すると、バックエンドのパフォーマンスの問題も解決することがほとんどです。

とは言え、WordPressの管理画面の動作が重い場合には、それの逆が実施できます。バックエンドのパフォーマンスの問題を解決することで、訪問者にとってのサイト高速化を実現できる可能性があります。

プラグインを大量にインストールすることでウェブサイトの速度が低下する可能性があるため、このケースでは、サーバーレベルのAPMが非常に便利です。

Kinsta APMで最も時間のかかっているトランザクションを発見する
Kinsta APMで最も時間のかかっているトランザクションを発見する

Admin-Ajaxの使用率が高いことは、WordPressサイトにおける一般的な問題の一つです。しかし、WordPressの管理画面における動作遅延は、バックアップやWP-Cronなどのバックグラウンドのタスクが原因であることもあります(先ほどの例と同じです)。また、管理画面に多くのバナーを追加するようなプラグインが原因かもしれません。

Kinsta APMを使用すれば、推測に頼る必要がなくなります。サイト全体の正確なデータを観察し、パフォーマンスの問題を特定することができます。

Kinsta APMを使用してWordPressのパフォーマンスのボトルネックを見つけるさまざまなユースケースを公開していますが、WordPress管理画面における動作遅延の解決もこれに該当します。上記のリンク先では、Kinsta APMを使用してWordPress管理画面のパフォーマンスに関連したボトルネックを見つける方法をご紹介しています。

Kinsta APMの優れた特徴の1つとして、どんなタイプのWordPressサイトにも使うことができます。WooCommerceサイトと同じように、WordPressマルチサイト、会員制サイト、LMSサイトの問題点を特定するのに有用です。

10. サーバーの設置場所と構成に関する注意事項

ウェブサーバーの設置場所とその構成は、サイトの表示速度に大きく影響します。

例えば、ウェブサーバーが米国にあると、ヨーロッパやインドからの訪問者にとっては、米国からの訪問者よりもウェブサイトの読み込みが遅くなります。

そのような遅延を低減するポイントが以下のとおりです。

Kinstaでは、Google Cloudを採用しています。データセンターの数は現在、37に達し(随時追加予定)、個別のサイトごとに訪問者に最も近い場所を選択することができます。

Google Cloudの所在地を示した地図
Google Cloudの所在地を示した地図(出典:Google

サイトに世界中からアクセスがある場合には、コンテンツデリバリネットワーク(CDN)を選択することで、その速度をさらに向上させることができます。KinstaのCDNにはCloudflareを採用しています(詳細は次のセクションで説明します)。

次はサーバーの構成です。考えるべき点はいくつかあります。どのようなハードウェアとソフトウェアスタックを使用しているのか。高速なWordPressホスティングのために設計されているかどうか。

サーバーのリソースは、多くのウェブサイト間で共有されているでしょうか。

予測不可能なトラフィックの急増があった場合、サーバーリソースが自動で拡張できるかどうか。それともその都度新しいプランにアップグレードしなければならないのか。

これらすべてを、ホスティングサービスの選択時に注視する必要があります。積極的にこのような疑問を投げかけ、比較していくことが重要です。

Kinstaでは、サーバーハードウェアからソフトウェアスタックに至るまで、最高の技術のみを使用しています。GCPのコンピューティング最適化C2仮想マシンを採用し、比類のないシングルスレッド性能を確保─ほとんどのWordPress関連のプロセスはシングルスレッドです。Google Cloudによれば、「Compute Engineのコアあたりで最高のパフォーマンスを提供」するとされています。

このマシンに、Nginxウェブサーバー、8.3、LXDコンテナ、MariaDBといった最先端のソフトウェアを組み合わせることで、ウェブサイトの高速表示が実現します。

11. コンテンツデリバリネットワーク(CDN)を利用する

ウェブサイトを高速化する簡単な方法として、高速で信頼性の高いCDNの利用が挙げられます。

CDNは、コンテンツを訪問者に直接配信することで、ウェブサーバーの負担を軽減することができます。CDNは、画像、スタイルシート、フォント、スクリプト、動画など、サイトのコンテンツのコピーをホストし配信するサーバーのネットワーク(POPとも)です。

Cloudflare CDNは、Kinstaのすべてのウェブサイトをサポート
Cloudflare CDNは、Kinstaのすべてのウェブサイトをサポート

ウェブサイトの種類に関係なく、少なくとも何らかのCDNを使用しパフォーマンスを高速化することを推奨します。

Kinsta + Cloudflare = より速く、より安全なサイト
Kinsta + Cloudflare = より速く、より安全なサイト

Kinstaでは、無料のCloudflare統合で、すべてのサイトを保護しています。エンタープライズレベルのファイアウォールとDDoS保護を提供するだけでなく、高性能HTTP/3 CDNでウェブサイトを高速化します。

Kinsta CDNの速度は、ご自身の目でご確認ください。驚くほど高速です。

補足)人気のオープンソースJavaScriptライブラリ(例:jQuery、D3.js、three.js、Web Font Loader)を使用している場合には、Google Hosted Libraries CDNを使用し、配信速度を高めることができます。

12. 不要なURLリダイレクトを削除する

サイトの記事やページを更新する中で、URL構造に変更が生じる可能性があります。そんな状況で便利なのが、URLリダイレクトです。しかし、WordPressのリダイレクトのベストプラクティスに従わないと、サイトのユーザー体験や検索エンジン最適化(SEO)に悪影響が及ぼされる可能性があります。

URLリダイレクトの設定が不適切だと、リダイレクトの連鎖が引き起こされることがあります。運が悪いと、無限に続くリダイレクトのループになることも。このような問題は多くの場合、ページの読み込み時間の増加につながります。

URLリダイレクトの設定を誤ると、404「Page not found」エラーが発生することがあります。404エラーが大量に発生すると(このレスポンスは通常キャッシュされず)サイトのパフォーマンスにも影響を与える可能性があります。

MyKinstaには分析画面があり、ここからリダイレクトや404エラーの正確な量を確認することができます。

MyKinstaの分析画面─404エラー、リダイレクトの内訳を確認
MyKinstaの分析画面─404エラー、リダイレクトの内訳を確認

もちろん、それが表示された場合の対処法(対症療法)として、クリエイティブな404エラーページをデザインすることはできます。しかし、根本的な問題の解決にはなりません。

Kinstaの「Page not found」ページ
Kinstaの「Page not found」ページ

不要なリダイレクトを作らないためのポイントは以下の通りです。

  • 適切なURLプレフィックスを使用する(HTTPまたはHTTPS)
  • URLから「www」サブドメインを保持または削除する(混在させない)
  • URLに投稿IDやページIDを使用しない
  • URLのパス全体を指定するようにする
  • トップレベルドメイン(TLD)が1回のリダイレクトで解決するようにする(もちろんリダイレクトがないのが理想的ではあります)

WordPressには、リダイレクトを設定する方法がいくつもあります。そのうちの1つが、John Godleyによる無料かつ人気のRedirectionプラグインです。

WordPressの「Redirection」プラグイン(無料)
WordPressの「Redirection」プラグイン(無料)

Kinstaをご利用であれば、MyKinstaからリダイレクトを管理することができます。ルールがサーバーレベルで実装できるため、理想的な手法です。これはまた、インストールするプラグインが1つ減ることを意味します。

MyKinstaでリダイレクトルールを追加する
MyKinstaでリダイレクトルールを追加する

管理したいサイトに移動し、「リダイレクト」タブをクリックします。次に、大きな「リダイレクトルールの追加」ボタンをクリックして、リダイレクトの追加を行います。

正規表現を使ってリダイレクトを調整することができる
正規表現を使ってリダイレクトを調整することができる

お使いのサーバーでApacheが使用されている場合、リダイレクト設定のために.htaccessファイルを編集する必要があります。そのようなケースでは、.htaccess Generatorを使用し、リダイレクトルールを生成することができます。

13. WordPressの混合コンテンツ(HTTPS/SSLエラー)を解決

WordPressサイトでのHTTPS利用は、もはや必須の要件です。しかし、HTTPからHTTPSへの移行の際には問題が発生することがあります。中でもよくあるのが、「混合コンテンツ」エラーです。

ページでのHTTPとHTTPSの混在が確認されると、上記の警告が表示されます。安全性の確保されていないリソースを読み込むことで、セキュリティ上の問題だけでなく、潜在的なパフォーマンスの問題が引き起こされることもあります。

ウェブサイトでこのエラーが発生した場合、Why No Padlockのような無料ツールを使って、どのリソースが安全でない状態で読み込まれているかを確認することができます。

その後、検索と置換を実行することで、問題の解決にあたりましょう。例えば無料で使えるプラグイン「Better Search Replace」などがあります。Kinstaでは、MyKinstaから直接検索と置換を実行できます。

MyKinstaの「検索と置換」ツールを使用する
MyKinstaの「検索と置換」ツールを使用する

検索と置換を行うだけで、混合コンテンツについての警告はすべて解決できるはずです。とは言え、これでも解決できない場合には、おそらくハードコーディングにより記述したスクリプトがあり、それを見つけて手作業で書き換えていく必要があります。または、これを行うことができる開発者を雇用するのも一つの手でしょう。

14. WordPressのデータベースを定期的に最適化

WordPressサイトのデータベースには、重要な情報が保存されます。これを定期的にメンテナンスしないと、サイトの動作が遅くなることがあります。

例えば、WordPressのデータベースには、数年前にサイトを立ち上げたときの情報が残っていることがあります。投稿やページのリビジョン、下書き、ゴミ箱に入れたコメント、削除した投稿などなど。これらは、時に役立つ情報かもしれませんが、そのままにしていると、容量を圧迫するまでに膨れ上がる可能性があります。

したがって、WordPressのデータベースをこまめに最適化することが重要です。これが、ウェブサイトのパフォーマンスの向上につながります。

また、プラグインやテーマによっては、その設定をしやすくするために、wp_optionsテーブルにデータを追加して、設定を自動で読み込むものもあります。しかし、あまりに多くのデータを自動で読み込むと、ページの応答時間が遅くなることがあります。

WordPressのデータベース最適化には、さまざまなテクニックが使用できます。その1つが、phpMyAdminAdminerを使って、古くなったデータベースの項目を削除していくことです。または、WP-OptimizeWP-SweepAdvanced Database CleanerなどのWordPressデータベース最適化プラグインを使用することもできます。

「Advanced Database Cleaner」プラグインを使用する
「Advanced Database Cleaner」プラグインを使用する

Kinstaでは、お客様のサイトのデータベースを自動で最適化しています。通常、週に1回の実行となり、お客様のデータベースの状態を継続的に整えます。自動での実行により異常が見つかった場合には、担当のエンジニアにその旨が通知され、問題の究明が行われます。

15. クラウドベースのWordPressセキュリティサービスを選ぶ

毎日何千ものWordPressサイトがハッキングされていると言われています。だからこそ、セキュリティはWordPressサイトにとって重要な問題であり、常に気を配っておく必要があります。

例えばファイアウォールが利用でき、具体的には以下の2つを通してこれを確保できます。

  1. 実績のある安心のウェブホスティングを選ぶ
  2. 別途サードパーティセキュリティサービスを使用する

最初の選択肢は明確です。信頼できるWordPressホスティングを選ぶことで、サイトのセキュリティ強化策のほとんどを任せることができます。

これが何らかの理由で利用できない場合には、以下の選択肢があります。

  1. WordPressのセキュリティプラグインを使う(例:Wordfence)
  2. DNSファイアウォールを利用する(例:Cloudflare)

WordPressのセキュリティプラグインは、常時または定期的にスキャンを行うため、その分のウェブサイトのリソースが消費されます。

これに代わるものとして、Cloudflareのようなクラウドベースのセキュリティサービスを利用することもできます。ボット、DDoS攻撃、プロキシトラフィックに対する保護を実装可能です。

Kinstaでは、Cloudflareとの統合により、サーバーレベルのセキュリティとクラウドベースのファイアウォールの両方によって、お客様のサイトを守っています。エンタープライズレベルのファイアウォールを、Kinstaをご利用のすべてのサイトでご利用いただけます。

さらに、二要素認証(2FA)とIP制限をサポートしています。また、1分以内に6回ログインに失敗したIPアドレスをブロック。さらに、接続は暗号化されたもの(SFTP、SSH、HTTPS)のみに対応し、すべての新規WordPressサイトで強力なパスワードの設定を義務化。ハッキング対処保証もご用意しています。

16. PHPを最新バージョンに切り替える

WordPressは、サーバーサイドのプログラミング言語であるPHPを主体に動いています。そのテーマやプラグインでさえも、主にPHPで書かれています。

一般的に、新しいPHPバージョンは古いものよりも高速です。Kinstaでは、サポートされている最新のPHPバージョンの使用をお勧めしています。パフォーマンスの面で優位であり、安全性も高いのが特徴です。

毎年恒例のPHPベンチマークでは、PHP 8.1がPHP 8.0よりも47.1%高速であることが判明しています。PHP 7.2と比較すると、さらに高速で、1秒間に50%以上のリクエストを処理することができました。

WordPress 5.9-RC2 PHPベンチマーク
WordPress 5.9-RC2 PHPベンチマーク

この記事の執筆時点で、ほとんどのWordPressプラグイン、テーマ、開発ツールがPHP 8.1をサポートしていません。本番サイトの環境をPHP 8.1にバージョンアップする際には、ステージング環境で十分にテストを行うことをお勧めします。

まだPHP 7.xをお使いであれば、PHP 8.0に切り替えるだけでも大きな変化を確認できるはずです。

Kinstaはすべての環境でPHP 8.1をサポートしています。バージョンアップ前にPHP 8.1でサイトを十分にテストすることができます。お使いのサーバーにこの機能がない場合には、ホスティングサービスを見直すちょうどいい機会かもしれません。

17. 信頼できるWordPress専用マネージドホスティングを利用する

上記の手順をすべて試しても、WordPressサイトの動作が遅い場合には、信頼できるWordPress専用ホスティングに切り替えることをお勧めします。

通常、WordPress専用マネージドホスティングには、WordPressサイトを効率的に、安全に、そして手間無く運用できるあらゆる機能が搭載されています。技術的なノウハウは気にすることなく、大事なビジネスの根幹に専念することができます。

WordPress専用マネージドホスティングは通常、共用サーバーやDIY型のサーバーよりも高い費用がかかるものですが、それに見合う価値が付帯します。有名なWordPress専用マネージドホスティングには、KinstaWP EngineFlywheelPressablePagelyなどがあります。

どれを選択するにしても、きちんと調べて、ウェブサイトの要件と照らし合わせることが重要です。ほとんどのWordPress専用マネージドホスティングで無料のサイト移行が提供されており(Kinstaを含む)、ダウンを心配することなく簡単にサイトを移行できます。

Kinstaでは、Kinsta APIも提供しています。WordPressサイトの作成やサイトリストの取得など、Kinstaのサービスとシームレスにやり取りすることができます。

まとめ

WordPressサイトの遅延を解決するには、多くの手順が必要になりますが、決して諦めるべきではありません。サイトを高速化することで、SEO、ユーザーエクスペリエンス、コンバージョン率の向上が見込めます。誰もが高速なウェブサイトを好むものです。

サーバーの乗り換えを行う前に、この記事にあるすべての点について改善を実施することをお勧めします。また、サーバー切り替えの際には、ホスティングサービスの性能や機能をよくチェックしておくのが賢明です。

WordPressサイトの遅延が解決できたという方は、是非ともコメント欄でその成果を教えてください。また 、WordPressサイト高速化についてのこちらの記事もご覧ください。

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.