一般的なWordPressサイトが1つの店舗だとすると、WordPressマルチサイトは複数の店舗が入るショッピングセンターに例えることができます。各サイトは独立した「店舗」として運営されますが、一元的に管理され、リソースは共有されます。WordPressマルチサイトの管理は、基盤となるサーバーインフラ選びを怠ると、頭痛の種になり得ます。

そこで今回は、Kinstaを利用してWordPressマルチサイトの管理を最大限に効率化する方法をご紹介します。いつ、どのように適切なソリューションを実装すべきか、具体的なシナリオを挙げながら見ていきます。まずは、マルチサイトの基本情報から始めましょう。

WordPressマルチサイトの始め方

標準的なWordPressサイトからマルチサイトへの移行は、ウェブプレゼンスの管理方法が変わる可能性があります。通常は単一のWordPressサイトのメンテナンスに業務が集中しますが、マルチサイトでは相互接続されたサイトのエコシステム全体を管理することになります。

この根本的な違いは、開発のワークフローやリソース管理のアプローチなどに影響を与えるため、この違いを理解することは、マルチサイトのアーキテクチャを計画する際に非常に重要です。

標準的なWordPressサイトは、それぞれに独自のデータベーステーブル、プラグイン設定、ユーザーベースを持ちますが、マルチサイトではネットワーク全体でこれらを共有します(重要な領域においては個々のサイトの独自性を維持することは可能)。

Kinstaのマルチサイトアーキテクチャ

Kinstaのアーキテクチャは、WordPressに最適化されたインフラストラクチャとGoogle Cloudの最速サーバー、およびプレミアムティアネットワーク上に構築されています。

CloudflareとGoogle Cloudを組み込んだKinstaのサーバーインフラストラクチャ
CloudflareとGoogle Cloudを組み込んだKinstaのサーバーインフラストラクチャ

また、隔離コンテナ技術により、他のサイトとリソースを共有することなく、独自の環境でマルチサイトを実行することができます。Google Cloudに加えてCloudflare統合も実装しており、CDNとエッジキャッシュもデフォルトで利用できます。

マルチサイトへの移行が適している状況

標準的なWordPressサイトを運営すべきか、マルチサイトを運営すべきかは、表面的には至ってシンプルです。

例えば、同じような設定や要件を共有する複数のクライアントサイトを管理するWeb制作会社であれば、WordPressマルチサイトへの移行は、ワークフローの効率化につながります。大学や教育機関でも、個別の運営権を提供しながらキャンパスや部署間で一貫したブランディングを維持できることから、マルチサイトが適しています。フランチャイズビジネスにも同様の利点があります。

とはいえ、マルチサイトが常に最善のソリューションになるとは限らず、異なるPHPバージョンを使用するサイトや、相反するプラグイン要件を持つサイトでは、別々の管理する方が理にかなっています。同様に、各サイトに独立した拡張要件がある場合や、複雑な構成のカスタマイズが必要になる場合は、個別に管理するのが得策です。

特定の用途を分析し、要件を評価することが重要です。リソースの共有、メンテナンスの必要性、スケーリングの要件などの要素を事前に考慮しましょう。

KinstaでWordPressマルチサイトを設定する方法

KinstaでWordPressマルチサイトを設定するには、設定の切り替えはもちろん、マルチサイトの構造を検討する必要があります。

まずは、コントロールパネルのMyKinstaで新規サイトを追加します。

MyKinstaで新規WordPressサイトをマルチサイト化
MyKinstaで新規WordPressサイトをマルチサイト化

「WordPressをマルチサイト化する」をクリックしたら、サイトの構造を選択します。Kinstaでは、サブドメインとサブフォルダの両方の構成をサポートしています。

  • サブドメイン(例:site1.example.com)─各サイトに独自性が必要になる大規模なマルチサイト向け
  • サブディレクトリ(例:example.com/site1 )─管理が比較的簡単な小規模なマルチサイト向け
WordPressマルチサイトの構成をサブドメインまたはサブディレクトリから選択
WordPressマルチサイトの構成をサブドメインまたはサブディレクトリから選択

選択したら「続行」クリックして、新規サイトの設定を続けます。その後は、ドメインの管理を行います。

ドメインの設定と管理

慎重な操作が必要になるマルチサイトのドメイン管理は、MyKinstaで簡単に行うことができます。

MyKinstaでドメインを管理
MyKinstaでドメインを管理

外部ドメインマッピングを利用すると、マルチサイト内の各サイトに異なる(独自)ドメインを設定することができます。これは複数のクライアントサイトを管理する必要がある代行業に特に有用です。また、様々な製品やサービスにそれぞれ異なるブランドイメージを与えている企業にもこれが適しています。

Kinstaでは、外部ドメインマッピングの技術的な側面が自動的に処理されます。また、SSL証明書の管理やドメインの所有権の確認も非常にシンプルです。

WordPressマルチサイトのドメインマッピング
WordPressマルチサイトのドメインマッピング

この操作は以下の2ステップで完了します。

  1. WordPressマルチサイト管理画面の「サイト」>「すべてのサイト」で「編集」をクリックして、ドメインをマッピングします。「サイトアドレス(URL)」フィールドのURLを独自ドメインに変更します。
  2. MyKinstaで、メインのマルチサイトの「ドメイン」画面を開きます。「ドメインを追加」をクリックして「ドメイン」フィールドを埋めて、「ドメインの追加」をクリック。所有権を確認します。

また、ドメインの所有権を確認するため、DNSレコードをも更新します。最後に、MyKinstaの「ツール」画面に移動して、「HTTPS接続」の「利用する」をクリックします。注意点として、全てのトラフィックをプライマリドメインにリダイレクトすると、マルチサイト内の他のサイトにアクセスできなくなる可能性があるため、「すべての本番ドメインでHTTPS接続を強制」を選択して、「HTTPS接続を設定」をクリックします。

Nginxリバースプロキシの実装

KinstaのNginxリバースプロキシ機能は、WordPressマルチサイトの設定に柔軟性を与えます。独自のルーティングルールが必要な場合や高度なロードバランシングを実装したい場合に有用です。リバースプロキシで以下のようなタスクを実現できます。

  • マルチサイトの異なる部分間でトラフィックを効率的に誘導する
  • 特定のセクションに対して独自のキャッシュルールを実装する
  • SSL終了をエッジで処理する
  • 複雑なルーティングシナリオを管理する

WordPressマルチサイトの場合、リバースプロキシは単一のドメインから複数のサイトにサービスを提供する仕組みになります。例えば、example.kinsta.cloudというサブドメインを使用するサブサイトでは、mysite.com/example(または他のバリエーション)にマッピングするリバースプロキシを実装することができます。

リバースプロキシは、Kinstaのコア機能ではありませんが、アドオンで簡単に追加可能です。

MyKinstaでリバースプロキシアドオンを追加
MyKinstaでリバースプロキシアドオンを追加

すべての設定とドメインマッピングを終えたら、続いてはWordPressマルチサイトのパフォーマンスを最適化しましょう。

マルチサイトのパフォーマンスを最適化する方法

パフォーマンスの最適化は、WordPressマルチサイト管理にとって特に重要な側面になります。最適化は複数のサイトに同時に影響する可能性があり、他のサイトのエンゲージメントに影響を与えることがあります。

Kinstaではこのような点を考慮し、マルチサイト全体で最適化されたパフォーマンスを維持するための包括的なツールを提供しています。

Kinstaの高性能キャッシュスタック

Kinstaには、WordPressの単一サイトおよびマルチサイト両方をサポートする高性能キャッシュシステムを実装しています。キャッシュには以下の4種類があります。

  • サーバーレベル(またはローカル)のページキャッシュ
  • エッジキャッシュ
  • Redisキャッシュ
  • 組み込みのCDN(コンテンツデリバリネットワーク)キャッシュ

これらのキャッシュには、MyKinstaからアクセスできます。システムは複数のレベルで動作し、マルチサイトの各サイトで個別に設定を行うことができます。また、サイトをキャッシュするのにサードパーティのプラグインは不要です。

キャッシュの処理はサーバーサイドで行われ、MyKinstaからクリアすることができます。WordPressサイトは、PHPのOPcache拡張機能を使用して、バイトコードキャッシュを含む専用のキャッシュを活用できます。

エッジキャッシュは、世界各地へのサイト配信をさらに高速化してくれる技術です。Cloudflare統合の一環として提供しているこの機能は、訪問者がページをリクエストすると、訪問者に最も近いサーバーからページを読み込むことができます。MyKinstaでは、モバイルキャッシュのクリア、全ロケーションのキャッシュのクリア、指定した個々のURLに対するキャッシュのクリアなどの操作を簡単に実行可能です。

MyKinstaの「エッジキャッシュ」タブ
MyKinstaの「エッジキャッシュ」タブ

エッジキャッシュは、特に異なる地域からサービスを提供するマルチサイトで特に重宝されます。エッジキャッシュをCDNキャッシュと組み合わせて、画像、CSS、JavaScriptファイルなどの静的アセットを処理し、世界260+のCloudflare PoPを利用して、訪問者の所在地を問わず、常にページの読み込みを高速化することができます。

CDNに関しても、MyKinstaでキャッシュのクリア、画像最適化、除外ルールの設定などの操作を簡単に行えます。

MyKinstaの「CDN」タブ
MyKinstaの「CDN」タブ

データベースのオブジェクトキャッシュ機能も標準搭載されていますが、Redisキャッシュを使用すると、オブジェクトキャッシュが生成した値を保存することができます。Redisキャッシュもアドオンとして追加可能です。

アプリケーションパフォーマンス監視(APM)ツールの活用

パフォーマンステストは、WordPressマルチサイト管理に欠かせない作業です。何百ものサイトを管理する可能性があることを考慮すると、マルチサイト全体そして個々のサイトパフォーマンスを迅速かつ正確に評価するワークフローを確立することが重要です。

Kinstaのアプリケーションパフォーマンス監視(APM)ツールは、ワーカープロセス、データベースクエリ、およびAJAX呼び出しを監視し、フロントエンドに影響が出る前にボトルネックを特定して対処するのに役立ちます。

Kinstaのアプリケーションパフォーマンス監視(APM)ツール
Kinstaのアプリケーションパフォーマンス監視(APM)ツール

パフォーマンスツールは多数ありますが、Kinstaでは、別なツールにアクセスすることなく、MyKinsta上でAPMツールを起動して、主要な指標を確認することができます。データベースクエリ、遅いWordPressフックやプラグインなど、サイトのあらゆる側面を監視し、トランザクションリクエストの内訳を取得します。

Kinsta APMで確認できる最も遅いトランザクション
Kinsta APMで確認できる最も遅いトランザクション

簡単に遅いデータベースクエリを特定できる点は、多くのサイトがデータベースリソースを共有するWordPressマルチサイトにとって特に重要です。特定したクエリを最適化することで、マルチサイト全体のパフォーマンスを改善することができます。

APMツールはすべてのサイトにメリットがあります。たとえば、WooCommerceストアでは、APIリクエストの影響を通じて決済プロセスの速度を監視することができます。特定の時間帯にサイト速度が低下しているなどの情報をすぐに把握可能です。

写真撮影の人気オンライン教育プラットフォームであるPHLEARNは、Kinstaの監視ツール使用することで、すべての会員に対してコンテンツを高速配信しており、潜在的な新規会員にも優れたユーザー体験(UX)をアピールできています。

WordPressマルチサイトを支えるKinstaのセキュリティ

WordPressマルチサイト管理では、もちろんセキュリティも非常に重要になります。セキュリティ違反は、マルチサイト内の多くのサイトに影響を与えかねません。

Kinstaでは業界をリードする最先端のセキュリティ技術を採用し、すべてのお客様のサイトをサーバーレベルで安全に保ちます。

Kinstaのセキュリティインフラの活用

Kinstaでは、セキュリティに対する真剣な取り組みを裏付けるため、SOC 2報告書の受領およびISO 27001認証の取得を行っています。これらの業界標準への準拠は、厳しいセキュリティプロトコルの維持に対するコミットメントを証明するものです。

Kinstaのトラストページでは、セキュリティ基準のコンプライアンスの詳細を確認できる
Kinstaのトラストページでは、セキュリティ基準のコンプライアンスの詳細を確認できる

Cloudflare統合によるセキュリティ機能も、サイトを悪意ある攻撃や脅威から保護します。具体的には、エンタープライズグレードの分散型サービス拒否(DDoS)攻撃対策、ウェブアプリケーションファイアウォール(WAF)、ボット保護などが組み込まれています。

Google Cloudのプレミアムティアネットワーク、Kinstaのトラストマーク、Cloudflareトップクラスのプロビジョニングによる保護より、手間をかけずにマルチサイトのセキュリティを徹底することができます。

監視とメンテナンス

APMツールを使用する以外にも、WordPressマルチサイト上のサイトに障害が発生しないようにする方法があります。例えば、Kinstaでは、3分ごとにマルチサイトの稼働状況を監視します。稼働率が低下すると、以下のようなメールで通知を受け取ることができます。

稼働率の低下を知らせるメール通知例
稼働率の低下を知らせるメール通知例

MyKinstaの分析機能とログを活用して、潜在的な問題を発見することもできます。

MyKinstaの「分析」画面
MyKinstaの「分析」画面

さらに、MyKinstaではユーザーの活動も記録されます。

MyKinstaの「ユーザーの活動」画面
MyKinstaの「ユーザーの活動」画面

他にも、マルチサイト全体で動作し、悪意のあるIPアドレスをブロックできるIP制限ツールがあります。

MyKinstaのIP制限ツール
MyKinstaのIP制限ツール

また、Wordfenceのようなプラグインを使って、定期的なマルウェアスキャン(および除去)を実施することもできます。

WordPressマルチサイト管理─開発とデプロイメント

効率的な開発とデプロイメントのワークフローもまた、WordPressマルチサイト管理に欠かせません。Kinstaでは、ローカル開発環境ツールのDevKinstaも提供しています。

DevKinstaのロゴ
DevKinstaのロゴ

DevKinstaでは、ローカルマシンに本番サイトの設定を複製して作業し、本番サイトに変更内容を反映することができます。マルチサイトの場合は、インポートダイアログを通してサーバーからインスタンスを取り込みます。

MyKinstaからDevKinstaにWordPressマルチサイトをインポート
MyKinstaからDevKinstaにWordPressマルチサイトをインポート

これにより、インポートが行われる前にマルチサイトのディレクトリ構造を設定することができます。

DevKinstaでWordPressマルチサイトの種類を選択
DevKinstaでWordPressマルチサイトの種類を選択

数回のクリックで本番サーバーとの間で反映と取得を行うことができます。

ローカルマシンと本番環境間で反映と取得
ローカルマシンと本番環境間で反映と取得

マルチサイトのローカルから本番環境への反映プロセスにおいて重要になるのは、WordPressマルチサイト管理画面の「参加サイト」ページです。

WordPressマルチサイト管理画面の「参加サイト」ページ
WordPressマルチサイト管理画面の「参加サイト」ページ

また、ステージング環境とマルチサイトの変更をテストも重要になります。

ステージング環境におけるテスト

WordPressマルチサイトでの作業には、ステージング環境の存在も不可欠です。マルチサイトのステージング環境を構築するにはいくつかの方法がありますが、Kinstaでは、MyKinstaでワンクリックでステージング環境を作成できます。

MyKinstaでステージング環境を作成
MyKinstaでステージング環境を作成

プレミアムステージング環境は、最大5つまで作成することができ、設定のコピーを作成して変更をテストし、安全に本番環境に反映することができます。WordPressマルチサイトの管理にステージング環境を活用するには、バージョン管理を組み込むなど、高度なテクニックが多数あります。

デプロイメントの一般的なアプローチでは、GitHubやGitLab、またはBitbucketリポジトリに変更をプッシュし、サーバーサイドのスクリプトで変更を取得してサイトを更新します。マルチサイトの場合は、モノレポとマルチレポ(前者は1つのリポジトリで全サイトを管理、後者はサイトごとにリポジトリを分ける方法)の両方の設定から恩恵を受けることができ、バージョン管理を使用すれば、ステージング環境から本番環境へのデプロイもスムーズに行えます。

マルチサイトと変更のテストは、開発目標によって変わります。個々のサイトのテストは、おそらく単純な機能の確認か高度なユニットテストになります。

ワークフローのまとめ

開発とデプロイメントの作業は、ほぼすべてローカル環境とステージング環境で行うことになります。Kinstaでは、以下の手順を推奨しています。

  • マルチサイトがすでに稼働している場合は、DevKinstaを使用してローカルマシンに取り込みます。まだ稼働していない場合は、MyKinstaで新規サイトを作成してからローカルに取り込むか、DevKinstaで直接追加します。
  • ローカル環境で必要な変更を行います。変更内容は「feature」ブランチまたは「testing」ブランチにバージョン管理するのがおすすめです。
  • このプロセスには、ユーザビリティテストやその他の視覚的な確認が含まれる場合があり、これはワークフロー全体を通して行うことになります。
  • DevKinstaやGitリポジトリを通してステージング環境に変更を反映します(任意)。

マルチサイトを本稼働してからは、テストの自動化と監視パイプラインの設定を検討するかもしれません。また、規模を拡大する際に、マルチサイトがどのように機能するか、対応が可能かどうかも検討するのが賢明です。

Web制作会社のWordPressマルチサイト管理を効率化する方法

WordPress制作会社や代行業者は通常、独自のワークフローや要件から、マルチサイト管理に特別なソリューションが必要になります。例えば、チーム間でのコラボレーションに独自のアプローチを採用したいかもしれません。

ユーザー管理

MyKinstaのユーザー管理機能を使用して、各プロジェクトに必要に応じてチームメンバーを招待することができます。

MyKinstaのWordPressマルチサイトにユーザーを招待
MyKinstaのWordPressマルチサイトにユーザーを招待

複数のユーザーが1つのプロジェクトで作業する場合、アクセス権限と構造を整理することが重要です。企業アカウント全体または特定のサービス(データベース管理など)へのアクセス権をユーザーごとに適宜付与することができます。マルチサイトおよび個々のサイトにクライアントを招待するための最低限のアクセス権限も用意されています。

分析とレポート

Kinstaの分析ツールは、トラフィックの異常を特定するだけでなく、トラフィックがどのようにマルチサイト、ひいてはクライアントサイトにヒットするかを把握するのにも役立ちます。「訪問数」チャートに目を通すだけでも、1日にどれだけのトラフィックがあるかを簡単にチェックできます。

MyKinstaのダッシュボードでも簡単に訪問数を確認可能
MyKinstaのダッシュボードでも簡単に訪問数を確認可能

MyKinstaの「分析」画面では、訪問数はもちろん、PHPの応答時間、PHP+MySQLの平均応答時間、PHPメモリ上限到達回数、AJAXの使用状況、エラーコードの内訳といった、高度な指標が表示されます。

地理的なデータの分析も、多くの点で価値があります。国際的なクライアントや多言語サイトを運営するクライアントは、トラフィックが世界のどこから来ているのかを把握したいはずです。これは、「位置情報とIP」タブで確認可能です。

MyKinstaの分析画面「位置情報とIPタブ」
MyKinstaの分析画面「位置情報とIPタブ」

特定の地域からのトラフィックが多いことがわかれば、CDNの設定を調整したり、より近いデータセンターの使用を検討したりすることができます。分析ツールで取得できるデータは、サービスの改善、クライアントサイトのコンテンツ配信とサーバーロケーションの最適化に役立ちます。

サイト管理

WordPressマルチサイトの技術的な側面を管理するのに役立つ堅牢なツールも多数組み込まれています。例えば、マルチサイトのPHPバージョンは簡単に変更可能です。

MyKinstaではPHPバージョンの変更も簡単
MyKinstaではPHPバージョンの変更も簡単

ステージング環境で異なるPHPバージョンの互換性をテストしたり、パフォーマンスへの影響を監視したり、変更を処理(またはロールバック)したりなど、活用方法はさまざまです。

パフォーマンス監視には、APMツールの「最も遅いデータベースクエリ」セクションも役に立ちます。

APMツールで最も遅いデータベースクエリを監視
APMツールで最も遅いデータベースクエリを監視

WordPressマルチサイトの基本的な設定を変更する際には、サイトのバックアップを作成するべきです。Kinstaのバックアップには、データベースを含むマルチサイトの完全なスナップショットが含まれます。

データベースの移行は、特にマルチサイト化されたサイトに関連する不必要なテーブルがある場合、困難になることがあります。これには、MyKinstaの「ツール」画面で検索と置換ツールを使用することができます。

MyKinstaの検索と置換ツール
MyKinstaの検索と置換ツール

ドメイン名、テーブル接頭辞、WordPressがデータベースにハードコードしているその他の要素に関連するエントリは、よく変更が必要になります。

最後に、ドメインネームシステム(DNS)の管理は、異なるドメインを持つ複数のサイトを管理している場合は特に、できる限り手厚いサポートが欲しいところです。

MyKinstaの「DNS」画面
MyKinstaの「DNS」画面

Kinstaでは、堅牢なDNS管理を行うことができます。このプレミアムDNSサービスは有料オプションではなく、全てのプランで無料でご利用いただけます。Amazon Route 53を統合し、エンタープライズグレードの信頼性、グローバルなDNS伝播、高度なルーティング機能などを提供しています。

まとめ

WordPressのマルチサイト管理には、綿密な計画と適切なツールが必要です。Kinstaを選択すれば、そのアーキテクチャとインフラにより、マルチサイト管理の負担を軽減することができます。DevKinstaと組み込みのステージング機能を中心に開発とデプロイメントのパイプラインを構築し、分析やAPMツールのような、MyKinstaの豊富な監視およびセキュリティ機能をフル活用してみてください。

Steve Bonisteel Kinsta

Kinstaのテクニカルエディター。救急車や消防車を追いかける記者としてキャリアをスタート。1990年代後半からインターネット関連の技術情報を担当している。