初心者必見!WordPressでマルチサイトを作る方法やメリット・デメリット等を徹底解説
みなさんこんにちは!エンジニアの高澤です!
今回は、WordPressでマルチサイトを作る方法やメリット・デメリット等を徹底解説していきたいと思います。
マルチサイトはWordPress標準で備わった仕組みですが、WordPressをマルチサイト化することによって、一つのWordPressで複数のサイトを作成したり管理したりすることができます。
ブロガーの方やウェブ担当者の方、またクライアントのWordPressをマルチサイト化しなければならないなどの開発者の方などの多くの方へ向けて、読み進めていただくだけで無理なくマルチサイト化できる手順を解説しております。
WordPressをマルチサイト化したい多くの方向けに情報を網羅して当記事は構成しておりますので、よろしければぜひご活用いただけましたら幸いです。
目次
WordPressのマルチサイトとは
WordPressのマルチサイトとは、一つのWordPressインストールで複数のサイトを管理できる機能のことを言います。

このマルチサイト機能を利用すると、1つの管理画面で複数のサイトを一括管理できるため、複数のブログやWebサイトを運営する際に便利です。
一括管理の具体例としては、管理画面がいい例かと思います。
普通は複数のサイトをWordPressで立ち上げる場合、サイトごとにWordPressをインストールしてサイトを立ち上げることになりますが、その分ログインしなければならないログインページが増えてしまいます。
つまり、サイトごとにログインするとなると、いちいちログインIDとパスワードを入力してログインしなければならないわけです。サイトごとにIDとパスワードを管理するのも大変かもしれません。
このような場合に、マルチサイトと言う仕組みが役に立てる可能性があるわけです。
ただし、一見複数のサイト運営に最適なのではないかと思われますが、マルチサイトのデメリットには要注意です。
WordPressをマルチサイト化する場合、今後の展望や運営方針などを鑑みて、必ず事前に確認してからマルチサイト化することをおすすめいたします。
WordPressのマルチサイト化するメリット・デメリット
マルチサイト化するにあたって、メリットとデメリットを知っておくことは非常に重要です。
メリットとデメリットを知っておけば、ご自身のWordPressサイトをマルチサイト化すべきかどうかを判断できたり、会社のサイトでマルチサイト化を導入する際にプレゼンすることができたりなど色々と判断材料になります。
ここではメリットとデメリットについて詳しく解説いたしますので、必ず、必ず(大事なことなので2回言いました)ご確認いただくようお願いいたします。
WordPressのマルチサイト化するメリット
WordPressのマルチサイト化するメリットは以下になります。
- 一つの管理画面で複数サイトを管理可能
- サブドメイン・サブディレクトリの選択が可能
- マルチサイト特有のカスタマイズができる
それぞれ解説いたします。
一つの管理画面で複数サイトを管理可能
WordPressのマルチサイト機能を利用すると、一つの管理画面から複数のサイトを管理できます。
通常、サイトごとに個別のWordPressインストールが必要ですが、マルチサイトでは共通のダッシュボードでユーザー管理やテーマ・プラグインの設定を統一できます。
これにより、更新作業の効率化や管理の一元化が可能になります。特に、企業や教育機関など、多数のサイトを運営する場合に便利です。各サイトごとに独立したコンテンツを持ちながら、管理者が全体をコントロールできる点が大きなメリットです。
サブドメイン・サブディレクトリの選択が可能
WordPressのマルチサイト機能では、サイトのURL構成として「サブドメイン(sub.example.com)」または「サブディレクトリ(example.com/sub)」のいずれかを選択できます。
これにより、運用目的に応じた柔軟なサイト管理が可能になります。例えば、異なるブランドや地域ごとにサイトを分けたい場合はサブドメインを、カテゴリ別に整理したい場合はサブディレクトリを選ぶと良いでしょう。
また、ドメインマッピングを活用すれば、異なる独自ドメインを設定することも可能です。
ドメインマッピングについては、以下のWordPress公式ページからご確認いただけますので、よろしければご活用ください。
これにより、1つのWordPressインストールで複数のサイトを効果的に運用でき、管理の効率化につながります。
マルチサイト特有のカスタマイズができる
WordPressのマルチサイトでは、通常のシングルサイトにはない専用のテンプレートタグを活用することで、独自のカスタマイズが可能です。
例えば、get_sites()関数を使用すればネットワーク内の全サイトを取得でき、特定のサイトの情報を表示できます。また、switch_to_blog()関数を使えば別のサイトのデータを一時的に取得し、restore_current_blog()関数で元のサイトに戻すことができます。
これにより、異なるサイトの投稿を一覧表示するなど、ネットワーク全体で連携したコンテンツ管理が実現できます。マルチサイト独自の機能を活用することで、効率的な運用と高度なカスタマイズが可能になります。
さらに、マルチサイト専用のプラグインを活用すれば、ネットワーク全体の分析や機能拡張が可能になります。これにより、大規模なサイトネットワークやフランチャイズのウェブサイト管理がスムーズに行えます。
以下は簡単にマルチサイトの子サイトを複製できるマルチサイト専用のプラグインであるNS Clonerプラグインです。
WordPressのマルチサイト化するデメリット
WordPressのマルチサイト化するデメリットは以下になります。
- プラグインがマルチサイトに対応していない場合がある
- サーバーへの負荷が大きくなる
- データベースの構成が複雑になる
それぞれ解説いたします。
プラグインがマルチサイトに対応していない場合がある
マルチサイト環境では、一部のプラグインが正常に動作しないことがあります。
筆者的にはこちらが非常に大きいデメリットと言えます。
特に、データベースを直接操作するプラグインや、サイトごとに独立した設定を必要とするプラグインは、マルチサイトに対応していない場合があります。
また、プラグインの有効化がネットワーク管理者の権限に依存するため、サイトごとに自由にプラグインを導入することが難しくなります。そのため、使用したいプラグインがマルチサイトに対応しているか事前に確認する必要があります。
サーバーへの負荷が大きくなる
マルチサイトでは、複数のサイトが1つのWordPressインストール上で動作するため、アクセスが集中するとサーバーの負荷が増大します。
特に、大量のトラフィックが発生するサイトを複数運営する場合、リソースの消費が激しくなり、サイトのパフォーマンスが低下する可能性があります。対策としては、高性能なサーバー環境を用意したり、キャッシュ機能を活用したりすることで負荷を軽減する必要があります。
データベースの構成が複雑になる
マルチサイトでは、通常のWordPressと異なり、各サイトごとにテーブルが作成されるため、データベースの構成が複雑になります。
例えば、投稿やユーザー情報などがサイトごとに分割されるため、手動でのデータ管理やバックアップの際に混乱を招くことがあります。
また、データベースの肥大化が進むと、サイトのパフォーマンスに影響を与えることもあります。そのため、適切なデータ管理と定期的なメンテナンスが求められます。
WordPressのマルチサイトの種類
WordPressのマルチサイトには、以下の2つの種類があります。
| 名前 | 例 | 内容 |
|---|---|---|
| サブディレクトリ型 | example.com/sub/ | 各サイトがサブディレクトリとして作成される。 特別なDNS設定は不要。 |
| サブドメイン型 | sub.example.com | 各サイトがサブドメインとして作成される。 |
それぞれ解説いたします。
サブディレクトリ型
サブディレクトリ型のマルチサイトでは、新しいサイトがメインサイトのドメイン配下のディレクトリ(例:example.com/site1/)として作成されます。
example.com/site1/
example.com/site2/
example.com/site3/この方式は、基本的なWordPressのインストール後に簡単に設定でき、特別なDNS設定は不要です。サイトのURLが統一されているため、管理がしやすく、同一のブランドや組織内での運用に適しています。
このサブディレクトリ型で構築する方がサブドメイン型より簡単なので、ドメインの形にこだわりがなければこちらを利用することをおすすめします。
サブドメイン型
WordPressのマルチサイト機能におけるサブドメイン型は、各サイトが独立したサブドメイン(例:site1.example.com)として作成される方式です。
site1.example.com
site2.example.com
site3.example.comこの設定では、DNSの「ワイルドカードサブドメイン(*.example.com)」を有効にする必要があります。
ワイルドカードサブドメインとは、「*.example.com」 のように設定することで、abc.example.comや xyz.example.comなど、事前に登録していないサブドメインでも自動的に有効化できるDNS設定のことを言います。
ワイルドカードサブドメインを有効にすることによって、管理者はネットワーク管理画面から新しいサイトを作成すると、自動的にサブドメインが割り当てられます。
ワイルドカードサブドメインの設定は、ご自身がお使いのレンタルサーバーで対応しているかどうか事前にご確認いただき、対応していなければ「サブディレクトリ型」をご利用ください。
以下レンタルサーバーのワイルドカードサブドメインに関するページを添付させていただきます。
https://ssl.sakura.ad.jp/jprs/dv-wildcard.html
https://jp.globalsign.com/ssl/products_price/wildcardssl.html
サブドメイン型は、各サイトを明確に区別できるため、大規模なサイトネットワークや異なるブランドを展開する場合に適しています。ただし、サーバーの設定によっては、追加のDNS設定が必要になることがあります。
サブドメイン型を検討する場合は、事前によく確認しておきましょう。
WordPressでマルチサイトの作り方
それでは早速、WordPressでマルチサイトの作り方について解説いたします。
WordPressをマルチサイト化するには、以下の手順が必要です。
- サイトのバックアップ
- すべてのプラグインを無効化
- wp-config.phpに定数を追加
- サイトネットワークをインストール
- wp-config.phpを編集
- htaccessを編集
- サイトネットワークの管理画面にログイン
それぞれ手順通りに解説いたしますので、読み進めながら作業を行なっていただければ無理なくマルチサイト化することができますのでご安心ください。
サイトのバックアップ
まずはサイトのバックアップをとりましょう。
マルチサイト化する手順の中で、サーバー内にあるPHPファイルや.htaccessファイルなどを編集したりすることになるため、エラーなどが起きても必ずいつでも戻せるようにしておくことが重要です。
ここでは、サイト全体のデータをまるっとバックアップをとります。
バックアップの方法として、All-in-One WP Migration and Backupプラグインをご利用いただくことをおすすめします。
All-in-One WP Migration and Backupは、WordPressサイトのデータを簡単にエクスポート・インポート・バックアップできるプラグインです。
All-in-One WP Migration and Backupは、クリック操作一つでサイト全体のバックアップデータを取得と復元が非常に簡単にできてしまいます。(一定のデータ容量を超えると有料になってしまいますのでご注意ください)
WordPressへログインし、下図のようにWordPress管理画面左メニューの「プラグイン」から「All-in-One WP Migration and Backup」で検索していただき、インストールして有効化してください。

使い方は当記事では割愛しますが、プラグインをインストールして設定ページを見ていただければすぐにわかるかと思います。
作業の中でも随時必要なバックアップをとる場面があるため、その際も必ず指示に従って、説明通りにバックアップをとりましょう。
すべてのプラグインを無効化
バックアップが完了したら、次は現在使用されているプラグインを全て無効化(停止)します。
下図のようにWordPress管理画面左メニューの「プラグイン」の「インストール済みプラグイン」からプラグイン一覧の各項目の左側にあるチェックボックスをチェックしていただき、セレクトボックスから「無効化」を選択して「適用」ボタンをクリックしてください。

完了したら、下図のように全て無効化されていることと思います。これでOKです。

wp-config.phpに定数を追加
次は、wp-config.phpに以下の定数を追加します。
/* マルチサイト機能を有効化する設定 */
define( 'WP_ALLOW_MULTISITE', true );以下のように適当な箇所にコピー&ペーストしてください。

WP_ALLOW_MULTISITE定数は、WordPressのマルチサイト機能を有効化するための定数です。
ちなみにwp-config.phpとは、WordPressの設定を管理するためのファイルで、データベース接続情報やセキュリティ設定が記述された非常に重要なファイルです。
このファイルの場所は、FTPソフトであるFileZillaなどをお使いいただき、下図のWordPressの本体ファイルのトップ階層(トップディレクトリ)になります。(今回はFileZillaを使って解説いたします。無料で高機能でかつ最もメジャーなFTPソフトです。おすすめです。)

wp-config.phpは、記述でミスをするとエラーになって、サイトの画面が真っ白になる可能性があるため、注意して扱ってください。
不慣れな方は、編集する前に複製していただいてバックアップを取ることをおすすめいたします。
追加していただいたwp-config.phpをFTPソフトから上書きアップロードしていただければ完了です。
このタイミングで下図のように「550 wp-config.php: 許可がありません」のような転送エラーになる方は、パーミッションの設定をしましょう。
パーミッションとは、ファイルやディレクトリの読み取り・書き込み・実行の権限を管理する設定です。この権限が付与されてなければ何も操作できませんが、セキュリティ上とても重要です。

下図のようにwp-config.phpを右クリックして、「パーミッションの変更」をクリックします。

パーミッションの変更画面が開くので、所有者のパーミッション「読み取り」「書き込み」「実行」など全てチェックを入れて、属性値を「777」にしましょう。(セキュリティに気をつけたい方は777でなくてもいいかもしれません。)

パーミッションを変更したら、再度wp-config.phpをアップロードしてみてください。
サイトネットワークをインストール
次は、サイトネットワークをインストールします。
WordPress管理画面を開いてください。開いたら、下図のように管理画面左メニュー「ツール」に「サイトネットワークの設置」と言う項目が追加されているのが確認できます。
「サイトネットワークの設置」をクリックしてください。

すると、下図のように「WordPressサイトネットワークの作成」と言う画面が開くので、「サイトネットワーク名」と「サイトネットワーク管理者のメールアドレス」を入力してください。
入力できたら、「インストール」ボタンをクリックします。

ちなみ補足ですが、上図では「サイトネットワークの詳細」の直下に「サブディレクトリへのインストール」と表示されておりますが、下図のようにサイトネットワーク内のサイトアドレスとして「サブドメイン」と「サブディレクトリ」が選択できるパターンもありますので(むしろこちらがデフォルトかもしれません)、お好きな方を選択してください。

当記事の解説ではWordPress本体をサーバーにてディレクトリにインストールしてサイトを立ち上げているため、強制的にサブディレクトリ型のマルチサイトとして作成することになっております。
話を戻して、「インストール」ボタンをクリックすると、下図の画面が表示されます。

次からは、上図の画面に記載されているコード2点をそれぞれwp-config.phpと.htaccessファイルにコピー&ペーストします。
wp-config.phpを編集
先ほど定数を追加するのに編集した、wp-config.phpに追加でコードを追加します。
下図の赤枠のコードをwp-config.phpの適当な箇所にコピー&ペーストしてください。

下図のようなイメージでOKです。

編集が完了したら、FTPソフトからwp-config.phpを上書きアップロードしましょう。

アップロードが完了したら、パーミッションを元に戻しておきましょう。
先ほど説明した手順通りにFTPソフトからwp-config.phpを右クリックして、元のパーミッションに戻しましょう。

これでセキュリティ強度は元に戻ります。
htaccessを編集
次は、.htaccess(ドットエイチティーアクセス)ファイルにコードを追加します。
.htaccessとは、Apacheサーバーでリダイレクトやアクセス制限などの設定を行う構成ファイルのことを言います。隠しファイルになっているので、デスクトップ上で見えなかったりするのでご注意ください。
この.htaccessファイルの場所は、wp-config.phpの時と同じくFTPソフトをお使いいただき、下図のWordPressの本体ファイルのトップ階層(wp-config.phpと同じ場所)になります。

.htaccessは、記述でミスをするとエラーになって、サイトの画面が真っ白になる可能性があるため、注意して扱ってください。
編集する前に複製していただいて必ずバックアップを取ることをおすすめいたします。
バックアップまで済んだら、下図の赤枠のコードを.htaccessの特定の箇所にコピー&ペーストしてください。

.htaccessの以下の箇所を…

下図のようなイメージで書き換えていただければOKです。

コピペが完了したら、FTPソフトから.htaccessファイルを上書きアップロードしましょう。

アップロードまでできたら、.htaccessファイルの編集は完了です。
サイトネットワークの管理画面にログイン
編集が完了したら、サイトネットワークの管理画面にログインします。
下図の画面下の「ログイン」をクリックして、ログインし直します。

ログインし直していただくと、下図の管理画面が開きます。
一見シングルサイト(通常)の管理画面と同じに見えますが、画面左上のツールバーに「参加サイト」と言うメニュー名が新しく表示されています。

下図のように、「サイトネットワーク管理」と言うメニュー名が追加されていたりと、シングルサイトにはない機能が備わっています。

ここまでで、WordPressでのマルチサイトの作り方の手順は以上になります。お疲れ様でした!
WordPressのマルチサイトでサイトを追加する方法
WordPressのマルチサイト化ができたら、サイトを追加していきましょう。
管理画面ツールバーの「参加サイト」をホバーするとドロップダウンで「サイトネットワーク管理」が表示されて、サブメニューに「ダッシュボード」が表示されるので、クリックしましょう。

「新規サイトを作成」をクリックします。

新規サイトを追加ページが表示されるので、「サイトアドレス(URL)」に「/sub1/」のようにURLを入力し、「サイトのタイトル」にはサイトのタイトル、「管理者メールアドレス」にはご自身のWordPressを管理したいメールアドレスを入力してください。
入力が完了したら、「サイトを追加」ボタンをクリックします。

すると、画面上に「サイトを追加しました」と言う通知バーが表示されるかと思います。

管理画面左メニュー「すべてのサイト」をクリックすると、下図のように作成したサイトの一覧が表示されています。
たった今作成したサイトが追加されていればサイトの追加は完了です。

作成したサイトURLへアクセスすれば、サイトが表示されるかと思います。

これでサイトを追加する方法の解説は以上になります。お疲れ様でした!
ユーザーには特権管理者と言う権限が追加される
WordPressのマルチサイトでは、通常のシングルサイトにはない「特権管理者(Super Admin)」という権限が追加されます。

特権管理者は、ネットワーク全体の設定を管理できる最上位の権限を持ち、サイトの追加・削除、プラグインやテーマのインストール、全サイトのユーザー管理などを行うことができます。
各サイトの「管理者(Administrator)」は、特権管理者が許可した範囲内でのみ操作が可能です。特権管理者の権限を適切に設定することで、マルチサイト全体の安全性と運用の効率化を図ることができます。
WordPressマルチサイト特有のテンプレートタグ
こちらはエンジニア向けの内容になりますが、WordPressのマルチサイト化することによって、マルチサイト独自のテンプレートタグを使って機能を実装することができます。
ブロガーの方やウェブ担当者の方などは、「マルチサイト独自の実装ができる」と言うことをわかっていただければ、何か提案する時やエンジニアと仕様などの話をする際に便利なので、ざっくりとご確認いただくだけでもメリットがあるかと思います。
以下がWordPressマルチサイト化した場合に使用できるテンプレートタグをまとめた表になります。
よろしければ実装の際のご活用ください。
| テンプレートタグ | 説明 |
|---|---|
| get_current_site() | 現在のネットワークの情報を取得する。 |
| get_blog_details($blog_id) | 指定したサイト(ブログ)の詳細情報を取得する。 |
| switch_to_blog($blog_id) | 指定したサイトに切り替えてデータを取得する。 |
| restore_current_blog() | switch_to_blog()関数で切り替えたサイトを元に戻す。 |
| get_sites($args) | ネットワーク内のサイト一覧を取得する。 |
| is_multisite() | 現在のWordPressがマルチサイトかどうかを判定する。 |
| get_network() | 現在のネットワークの情報を取得する(WordPress 4.6以降)。 |
| get_networks($args) | ネットワーク一覧を取得する(複数ネットワーク対応時)。 |
| get_blog_option($blog_id, $option, $default) | 指定サイトのオプション値を取得する。 |
| update_blog_option($blog_id, $option, $value) | 指定サイトのオプション値を更新する。 |
| delete_blog_option($blog_id, $option) | 指定サイトのオプション値を削除する。 |
| wp_get_sites($args) | サイト一覧を取得する(非推奨、get_sites()を使用)。 |
| wpmu_delete_blog($blog_id, $drop) | 指定したサイトを削除する。 |
これらテンプレートタグを有効に使って、マルチサイトで実現したい機能を実装しましょう。
エンジニア視点でのマルチサイトへの意見
結論から言うと、理由がない限りはWordPressをマルチサイト化しなくて良いと思います。
理由は以下が言えるかと思います。
- マルチサイトに対応していないプラグインがある
- マルチサイト化するメリットがあまり感じられない
- 後々戻すのが大変だったり、実装も制限がある可能性がある
WordPressのマルチサイト化には多くのメリットがありますが、一方で注意すべき点も多々あり、例えば、すべてのプラグインがマルチサイトに対応しているわけではなく、特定のプラグインが正常に動作しない可能性があります。
また、サイトの規模や運用方法によっては、マルチサイトのメリットをあまり感じられないところがあります。筆者自身過去に一度、クライアントのサイトがWordPressをマルチサイト化しておりましたが、「プラグインが使えない!」だったり、結局シングルサイトに戻す、と言う話になったことがありました。
また、一度マルチサイト化するとシングルサイトに戻すのが難しく、実装にも制限が出る可能性があるため、慎重な判断が必要です。導入前に、ご自身のサイトにマルチサイト機能が必要かをよく検討することが重要です。
まとめ
今回の記事では、WordPressのマルチサイトについて、その設定方法やメリット・デメリットを詳しく解説しました。
WordPressの標準機能であるマルチサイトを活用することで、1つのインストールで複数のサイトを作成・管理できるようになります。
ブロガーやウェブ担当者の方、またクライアントのWordPressをマルチサイト化する必要がある開発者の方に向けて、無理なく導入できる手順を詳しく紹介しました。
この記事を参考にすることで、マルチサイトの仕組みを理解し、自身の運用に適した形で活用できるようになるはずです。
WordPressのマルチサイト化を検討している方は、ぜひ活用してみてください。
お気軽に皆さんのご要望をお聞かせください!
どんなに些細なことでも構いません!よろしければ記事や当サイトへの「こんな記事があったら仕事とかで役に立つな〜」や「こうだったらもっと役に立つのに!」といったようなご要望等をお気軽にお聞かせください!今後のサービス改善にお役立てさせていただきます!
例1)Reactの技術記事を書いてほしい!
例2)WordPressの使い方とかを初心者向けに解説してほしい!...など