WordPress ホスティング&プラグイン

WordPress を高速かつ安全にする方法: パフォーマンスとプラグインのチェックリスト

WordPress の表示速度と安全性は、それを動かす基盤に完全に依存します。弊社がホスティングするすべての WordPress サイトに適用している実践的なチェックリストをご紹介します。キャッシュすべき要素、保護すべき項目、そしてプラットフォームの標準機能によって不要となるものと比較して、導入する価値のあるプラグインについて解説します。

WordPress の真価は、それを動かす基盤によって決まります

WordPress はその柔軟性ゆえにウェブの大部分を支えていますが、その柔軟性こそが動作の遅延やセキュリティの低下を招く原因でもあります。デフォルトのインストール状態では、1ページあたり数十回もデータベースへのクエリを実行し、閲覧する誰に対してもバージョンやスタック情報を公開し、パフォーマンスの低下と攻撃対象領域の拡大が静かに進行するまでプラグインを重ねて導入するよう促します。これらはいずれも WordPress 自体の欠陥というよりは、何の支援も提供しないインフラストラクチャ上で運用した結果にすぎません。

朗報なのは、同じ一握りの決定によってその大部分を解決できるということです。そしてそれらはコンテンツではなくスタックに関する決定です。適切なレイヤーで積極的にキャッシュを行い、データベースをホットパスから外し、真に価値のある少数のプラグインのみを実行し、すべてにパッチを適用した状態を維持し、問題が発生しても影響を封じ込められるようサイトを隔離してください。本記事は、プラットフォーム上のすべての WordPress サイトに適用している順序でまとめたチェックリストです。

プラグインだけでなく、サーバー側でキャッシュ

WordPress の速度を劇的に向上させる最大の要因は、大半のアクセスにおいて WordPress をまったく実行しないことです。標準的なリクエストでは、1バイトを送信する前に WordPress を起動し、プラグインを実行してデータベースにクエリを発行します。これに対してフルページキャッシュは、次のアクセス時に完成したページをウェブサーバーから直接配信するため、その起動処理全体を省略します。そのキャッシュがどこに存在するかも重要です。キャッシュプラグインは PHP の内部で動作するため、キャッシュが応答する前に PHP が起動してしまいますが、サーバーレベルのキャッシュはリクエストのより早い段階で応答し、サーバーが即座に消去できる形式でページを保持します。

当社がホスティングするすべての WordPress サイトはサーバーレベルの LSCache を備えた LiteSpeed Enterprise 上で動作し、独自のキャッシュプラグインが初期状態で WordPress を正しく接続します。プラグインは事前インストール済みで自動更新されるため、設定や最新状態の維持に手間がかかりません。LiteSpeed 以外のオリジンでは、同じプラグインがフルページヘッダーを出力せずに待機し、オブジェクトキャッシュが動作し続けるため、移行したサイトが中途半端な設定のまま放置されることはありません。チェックリストの実践的なルール: フルページキャッシュはサーバー上で1つだけに限定し、その上にもう1つのキャッシュプラグインを重ねて導入しないでください。競合の原因となります。

オブジェクトキャッシュとデータベース

すべてのリクエストが静的ページになり得るわけではありません。ログイン中のセッション、管理画面、検索、カート、パーソナライズされたフラグメントでは PHP を実行する必要があり、これらについてはアプリケーションをスキップすることからデータベースをスキップすることへと目標が移ります。サイトごとのオブジェクトキャッシュ (私たちの場合は Redis) は、繰り返されるデータベースの読み取り結果をメモリ内に保持するため、アクセスのたびに同じオプションや transients、ルックアップがデータベースに対して照会されることはありません。その効果は、フルページキャッシュでは対応できない部分、すなわち管理画面の高速化、カートの高速化、トラフィック時におけるデータベース負荷の大幅な軽減として確実に現れます。

重要な言葉は「サイト単位」です。共有オブジェクトキャッシュでは、アクセスが集中しているサイトや作りの悪いサイトが1つあるだけで、他のすべてのサイトのキャッシュデータを追い出し、隣接するサイトのデータベースリソースを枯渇させる可能性があります。サイト専用のキャッシュをサイトごとのデータベース制限と組み合わせることで、その影響範囲を局所化できます。チェックリストを作成する際は、ログインユーザーやショップを持つすべてのサイトにおいて永続オブジェクトキャッシュを必須として扱い、テナント間で共有されているホスティングには注意してください。

導入する価値のあるプラグイン — そしてプラットフォームが代替するもの

追加するプラグインはすべてリクエスト時に実行されるコードであり、いつか誰かが通り抜けるかもしれないドアでもあります。そのため、最大の効果を生む最小限のプラグインに抑えることが実直な目標となります。優れたホストは、それらのカテゴリ全体を不要にします。サーバーレベルのキャッシュ、マネージドオブジェクトキャッシュ、プラットフォームのバックアップがあれば、キャッシュプラグインや個別のオブジェクトキャッシュプラグイン、バックアッププラグインは不要です。これらの処理は WordPress の下層で実行する方が適切であり、上層で実行することは競合やオーバーヘッドを生むだけです。

実行する価値があるものとして残るのは、真の機能を追加するわずかなツール群です。貴サイトが機能するために実際に必要とするプラグインと、当社のプラットフォーム上で当社が構築しすべてのサイトに同梱する2つのリポジトリ水準のプラグインです。当社のキャッシュプラグインは、WordPress をサーバーキャッシュに接続し、スマートパージを処理するため、編集時にはクリアすべきページのみが消去されます。当社の footprint プラグインは、プラグインやテーマの更新によって密かに元に戻されないよう、デフォルトの WordPress インストールが発信する識別情報 (バージョンおよび generator タグ、検出エンドポイント、XML-RPC、ピンバック、powered-by ヘッダー) をデプロイごとに削除します。どちらも WordPress.org のプラグインディレクトリ基準に従って構築されており、無料で自動更新されます。

WordPress を安全かつ最新の状態に保つ

WordPress のセキュリティ侵害の多くは巧妙な手口によるものではなく、古い脆弱性に起因しています。既知の公開された脆弱性を抱えた古いコア、テーマ、またはプラグインこそが、サイトが被害を受ける圧倒的に多い原因です。そのため、常に最新の状態を保つことは最も価値のあるセキュリティ対策であり、同時に最も退屈な作業であるため、後回しにされがちです。マネージドホスティングはお客様のその負担を軽減するべきです。WordPress を支える基盤スタックにパッチを適用し、テスト用のステージング環境とロールバック用のバックアップを提供することで、コアやプラグインの更新を安全に適用できるようにします。

最新性の維持だけでなく、境界が確実に保護されることも期待されます。訪問者に発見される前に感染を検知するデフォルトで有効なマルウェアスキャン、侵害されたサイトが他のサイトに干渉しないための分離環境、エッジでの DDoS 保護、そして証明書が自動更新される全領域での TLS です。これらは基本的な衛生管理 (強力な認証情報、最小特権アクセス、不要になったプラグインの削除) に代わるものではありませんが、インフラが脆弱なリンクではないことを意味します。チェックリストにおける、あらゆるホストに対する質問はシンプルです。セキュリティはデフォルトで備わっているものですか、それとも購入が必要なパッケージですか ?

WooCommerce と決してキャッシュしてはならないページ

ストアは、積極的なキャッシュが最大の効果をもたらす場所であると同時に、安易に行えば最悪の被害をもたらす場所でもあります。カタログ、商品、カテゴリーのページは最もトラフィックが多く、最もキャッシュしやすいページであり、これらをフルページキャッシュから配信することは、ストアの表示速度向上のためにできる最善の施策です。しかし、カート、注文手続き、アカウントのページは個人情報を含むため、共有キャッシュから配信してはなりません。そうしてしまうと、買い物客が他人のカートを見ることになり、ストアの機能不全とプライバシー侵害の両方を引き起こします。

両方を実現する方法は、ページをキャッシュし、動的パーツの部分に穴を開ける (ホールパンチングを行う) ことです。Edge Side Includes はリクエストごとにカートのフラグメント、ミニカートの合計、アカウントの状態をレンダリングし、ページの残りの部分はキャッシュから配信されます。また、cart、checkout、my-account、および nonce や session のページはデフォルトで除外されます。最新性の維持は、商品、価格、または注文が変更された際に実行されるスマート自動パージによって処理されるため、古い価格が残ることはありません。WooCommerce を実行している場合、チェックリストの中で完璧にしておくべき部分がこれです。キャッシュによる高速なストアフロント、ユーザーごとのライブカート、個人情報は一切キャッシュしないことです。

よくある質問

WP Rocket のようなキャッシュプラグインはまだ必要ですか ?

いいえ。フルページキャッシュは Web サーバー上で LiteSpeed の LSCache によって処理され、独自のキャッシュプラグインが WordPress をそれに接続してスマートなパージを処理し、その背後でサイトごとの Redis オブジェクトキャッシュが動作します。その上に2つ目のフルページキャッシュプラグインを追加すると、通常は効果を発揮するどころかサーバーレベルのキャッシュと競合するため、不要であり推奨もされません。

プラットフォームによって不要になるプラグインはどれですか ?

キャッシングプラグイン、個別のオブジェクトキャッシュプラグイン、バックアッププラグインはすべて、ここでは不要です。それらの処理は、サーバーレベルのキャッシュ、サイトごとに管理されたオブジェクトキャッシュ、プラットフォームのバックアップによって、WordPress の下位レイヤーで実行されるためです。これらを削除することで、競合や攻撃対象領域が減少します。実行する価値が残るのは、サイトの機能として真に必要なプラグインと、プレインストール済みで提供される当社の無料のキャッシュおよび footprint プラグイン2つだけです。

キャッシュによって、WooCommerce のカートやログイン済みページが破損することはありますか ?

いいえ。カート、チェックアウト、マイアカウント、および nonce やセッション関連のページはデフォルトでキャッシュから除外されており、Edge Side Includes によって、キャッシュされたページ上でもカートのフラグメントと合計金額がリアルタイムに維持されます。購入者はストアフロントをキャッシュから高速に読み込みながら、常に自身の買い物かごの確認と正常な決済が可能であり、スマート自動パージ機能により商品、価格、または注文の変更時に対象ページが即座に消去されます。

私が管理することなく、どのようにして WordPress の安全性を維持していますか ?

当社は WordPress の基盤となるスタックにパッチを適用し、ステージングとワンクリック復元によりコアおよびプラグインの更新を安全に適用できるようにし、マルウェアスキャンと DDoS 保護をデフォルトで有効にして実行し、1つの侵害が拡散しないよう各サイトを隔離し、TLS 証明書を自動的に発行および更新します。これにより、インフラストラクチャが弱点となるリスクは排除されますが、強力な認証情報の使用や未使用プラグインの削除といった基本的な管理はお客様ご自身の責任となります。

14日間無料でお試しください

最初のサイトを14日間無料でお試しいただけます — クレジットカードは不要です。既存のサイトやネットワークを移行されますか ?移行は無制限で完全無料です。

無料で始める