- WordPress引越し
WordPressマルチサイトの引越し方法と注意点をプロが解説
「WordPressの簡単移行を試したら、マルチサイトは移行できませんと表示された」
「サーバー移転したら子サイトだけ表示されなくなった」
WordPressマルチサイトの引越しでは、通常のWordPressでは起きないつまずきがあります。
子サイトは1つのデータベースを共有しているため、一部だけ移したりドメインの置換を漏らしたりすると、ネットワーク全体が表示されなくなることもあります。
本記事では、累計3,500件以上のWordPress案件を担当してきたサイト引越し屋さんが、自分のサイトがマルチサイトかの見分け方、簡単移行が使えない理由、サブディレクトリ型とサブドメイン型で違う移転手順、移転後の確認項目を解説します。
「WordPressだけでなくメールアドレスの移行なども合わせて実施したい」
そんなときは私たちサイト引越し屋さんにお任せください。
専門のエンジニアが作業を代行いたします。
>>WordPress移転プランの詳細はこちら
WordPressがマルチサイトか見分ける方法
マルチサイトは、1つのWordPressとデータベースで複数のサイトを運用する機能です。制作会社や前任者が設定していると、運用している本人が気づいていないことも珍しくありません。
引越しの見積もりや作業範囲が変わるため、まずは次の3つの方法で確認してください。
管理画面に「参加サイト」「ネットワーク管理」があるか見る
WordPressにログインし、画面上部の管理バーを確認します。マルチサイトの場合は「参加サイト」というメニューがあり、その中に「サイトネットワーク管理」と子サイトの一覧が並びます。「サイトネットワーク管理>サイト」を開くと、ネットワークに属する全サイトのURLとサイトIDが確認できます。
「2つのサイトを同じ管理画面でログインしている」という状態なら、ほぼ確実にマルチサイトです。ただし、サイト一覧には普段更新していない言語サイトや記念サイトが残っていることがあります。
サイト引越し屋さんが過去に対応した案件でも、2サイトの移転依頼の作業中に3つ目の子サイト(日本語版)が見つかったことがありました。一覧は全件を書き出し、「移す/移さない」を事前に決めておきましょう。
wp-config.phpのマルチサイト用の設定を確認する
管理画面に入れない場合は、FTPやサーバーのファイルマネージャーでwp-config.phpを開きます。ネットワークを作成したWordPressには、通常次のような定数が書かれています。
define( 'WP_ALLOW_MULTISITE', true ); define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false ); define( 'DOMAIN_CURRENT_SITE', 'example.com' ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 );
MULTISITEがtrueならマルチサイトとして稼働中です。WP_ALLOW_MULTISITEだけがある場合は、機能を有効にしただけでネットワークは未作成の可能性があります。
また別の確認方法として、phpMyAdmin等でデータベースを確認する方法もあります。データベース側では、wp_blogs・wp_site・wp_sitemetaテーブルや、wp_2_postsのように番号付きのテーブルがあればマルチサイトです。
サブディレクトリ型かサブドメイン型かを確認する
引越しの手順はマルチサイトの型で変わります。SUBDOMAIN_INSTALLがfalseならサブディレクトリ型、trueならサブドメイン型です。
| 型 | 子サイトのURL例 | 引越しで特に注意する点 |
|---|---|---|
| サブディレクトリ型 | example.com/en/ | .htaccessのマルチサイト用ルール 子サイトと同名のフォルダをサーバーに作らない |
| サブドメイン型 | en.example.com | 移転先サーバーでのサブドメイン(またはワイルドカード)設定とDNSレコード |
子サイトに別ドメインを割り当てている「ドメインマッピング」の構成もあります。その場合は、子サイトごとにドメインのDNS切り替えとSSL設定が必要になります。
===
「やっぱりWordPress引越しを自力でやるのは難しそう…」と感じる場合は、WordPressのサーバー移転代行サービスを利用するのも一つの手です。
→クリックしてサービス詳細を見る
サーバーの簡単移行や移行プラグインがマルチサイトで使えない理由
通常のWordPressなら、サーバー会社の簡単移行機能や移行プラグインで引越しできることが多いです。
しかし、マルチサイトは移行ツールの対象外になっていることがほとんどです。
その理由と、「移行できません」と表示されたときの考え方を解説します。
「本機能はマルチサイトを使用したWordPressの移行を行うことはできません」と表示されたら
エックスサーバーの「WordPress簡単移行」は、公式マニュアルで移行元が「マルチサイト機能を使用している場合」はエラーになると明記しています(エックスサーバーマニュアル:WordPress簡単移行)。
同じマニュアルでは、.htaccessや/wp-content以外に置いたファイルも移行されないとされています。マルチサイトは.htaccessに専用のルールが必要なため、仕組みの上でも簡単移行とは相性が悪いといえます。
弊社でも、「簡単移行でこのメッセージが出たが、マルチサイトを運用した覚えがない」というクリニックから、ご相談を受けたことがありました。このように、運用者が意識していなくても表示されることがあります。
メッセージが出たら何度も再実行せず、前の見出しの方法で構成を確認してください。他社の簡単移行機能も対応範囲は各社のマニュアルで確認が必要です(参考:Z.comやConoHa WINGのWordPress簡単移行機能)。
移行プラグインはマルチサイト対応が有料拡張のことが多い
代表的な移行プラグインのAll-in-One WP Migrationは、マルチサイトのネットワーク全体を移す機能を「Multisite Extension」という有料拡張として提供しています(プラグイン公式ページ)。
無料版のまま実行すると、子サイトのデータが欠けたり、移行先でネットワークが崩れたりするおそれがあります。商用利用や拡張機能の扱いは、All-in-One WP Migrationの利用規約の解説もあわせて確認してください。
マルチサイトは全サイトが1つのDBを共有している
ツールが対応しづらい根本的な理由は、データの持ち方にあります。ユーザー情報(wp_users)やネットワーク設定(wp_site・wp_sitemeta)、サイト一覧(wp_blogs)は全サイト共通です。一方、投稿や設定はwp_2_posts・wp_2_optionsのようにサイトIDごとのテーブルに分かれています。
メディアも、親サイトはwp-content/uploads/直下、子サイトはwp-content/uploads/sites/(サイトID)/に分かれます。テーマやプラグインは全サイトで共有です。
このようにツールの場合は「1サイト分のデータを丸ごと移す」前提のため、共有部分とサイト別の部分を正しく扱えません。
マルチサイトを引越す前に決める5つのこと
マルチサイトの引越しは、作業に入る前の決め事で難易度と費用が大きく変わります。弊社では、次の5点をお客様と合意してから見積もりを確定しています。自分で移す場合も、この順番で整理しておくと手戻りを防げます。
①移す子サイトを全件洗い出す
「サイトネットワーク管理>サイト」の一覧をもとに、全子サイトのURL・サイトID・更新頻度・移すかどうかを表にします。
弊社の案件では、「2サイトを移してほしい」というご依頼の作業中に、サブディレクトリ型の日本語サイトが見つかったことがあります。担当者の方も「すっかり失念していた」とのことで、追加のお見積もりで一緒に移転しました。
マルチサイトでは、子サイトも親サイトと同じサーバー・DBで動いています。そのため、移さなかった子サイトは、旧サーバーを解約した時点で表示されなくなります。不要な子サイトは、移転前に「削除する」と決めて管理画面から整理しておきましょう。
②マルチサイトのまま移すか、分離するか
引越しは「マルチサイトを続けるか」を見直す機会でもあります。AWS上のサブドメイン型マルチサイトを新しい環境へ移すご相談では、弊社から次の2案を提示しました。
| 案 | 内容 | 向いているケース |
|---|---|---|
| ①マルチサイトのまま移行 | サブドメイン型の構成を維持して新環境へ移す。URLはそのまま | ユーザーやテーマを共通で管理したい |
| ②分離して移行 | サイトごとに独立したWordPressを構築。URLは維持 | サイトごとに担当や更新頻度が違う、プラグインの制約をなくしたい |
分離は自由度が上がる一方、サーバーやインスタンスがサイト数分必要になり、作業量も増えます。
③ドメインも変わるか
ドメインがそのままなら、DBのURL置換は基本的に不要です。
一方、ドメインやサブドメインが変わる場合は、後述のwp_blogs・wp_site・wp_sitemetaと全子サイトのoptionsテーブルまで書き換えが必要です。WordPress公式ドキュメントも、ネットワーク作成後のドメイン変更は「より複雑」だと注意しています(Before You Create A Network)。
④移転と同時にWordPress・PHPをバージョンアップするか
移転先サーバーのPHPが新しいと、古い子サイトのテーマやプラグインが動かないことがあります。弊社の案件でも、子サイトだけWordPressのバージョンが低く、移転先のPHP 8.3に合わせてバージョンアップ込みでお見積もりしたことがあります。
判断の目安は、「子サイトごとに別の独自テーマを使っているか」です。テーマがサイト数分あると、PHPのバージョンアップでエラーが出る箇所もその分増えます。
移転と同時に行う場合も、「旧環境のまま移す→表示確認→バージョンアップ」の順にすると、不具合の原因が移転なのか更新なのかを切り分けられます。
⑤移転先サーバーがマルチサイトの型に対応しているか
サブドメイン型は、移転先で子サイトごとのサブドメインを同じ公開フォルダに向けられるかが重要です。公式ドキュメントも、サブドメイン型はWordPressを公開フォルダのルートで動かすべきだとしています。
レンタルサーバーではサブドメインごとにフォルダが自動で分かれることが多く、契約前にサブドメイン方でのマルチサイト運用かの確認は欠かせません。
また、「1サーバー1WordPress」前提のクラウドのパッケージなどでは、マルチサイト用と通常用で構成が分かれていることもあります。複数サイトを同じサーバーで動かす方法の違いは、WordPressを複数インストールする3つの方法でも解説しています。
===
サイト引越し屋さんのWordPress引越しサービスには、万が一の移転事故に備えた補償も付いているため安全に移転が可能です!
→クリックしてサービス詳細を見る
マルチサイトを別サーバーへ引越す手順
マルチサイトの引越しは、基本的には「ファイルとDBを丸ごと手動で移す」方法で行います。通常のWordPressと同じ部分はWordPress引越し方法5選に譲り、ここではマルチサイトだからこそ必要な作業に絞って解説します。
全体の流れ
- 移転元のファイル一式とDBをバックアップする
- 移転先サーバーにドメイン・サブドメインとDBを用意する
- ファイル一式(wp-config.phpと.htaccessを含む)をアップロードする
- DBをインポートし、ドメインが変わる場合は置換する
- wp-config.phpのDB接続情報とマルチサイト定数を移転先に合わせる
- hostsファイルで移転先を見る状態にし、全子サイトを確認する
- DNSを切り替え、反映後にもう一度全子サイトを確認する
DBの書き出しと取り込みは、子サイトのテーブルを含めてDB全体を対象にします。phpMyAdminでの操作はphpMyAdminのエクスポート・インポート方法を参照してください。
ファイルの移行で漏れやすいもの
マルチサイトで漏れやすいのは次の3つです。
- wp-content/uploads/sites/(サイトID)/:子サイトの画像。容量が大きく、転送の中断で一部だけ欠けることがある
- .htaccess:マルチサイト用のリライトルール。無いと子サイトや管理画面が404になる
- wp-content/sunrise.php:ドメインマッピングを使う場合に置かれるファイル。wp-config.phpのSUNRISE定数とセットで確認する
移転元と移転先で、uploads/sites/配下のフォルダ数と容量を比べると、漏れを早く見つけられます。
ドメインが変わる場合のDB置換箇所
ドメインやパスが変わる場合、通常のWordPressのようにwp_optionsで2箇所を直すだけでは動きません。最低限、次の箇所をすべて新しい値にそろえます。
| 場所 | 項目 | 内容 |
|---|---|---|
| wp-config.php | DOMAIN_CURRENT_SITE・PATH_CURRENT_SITE | ネットワークのドメインとパス |
| wp_site | domain・path | ネットワーク本体のドメインとパス |
| wp_sitemeta | siteurl | ネットワークのURL |
| wp_blogs | domain・path | 全子サイトのドメインとパス(1サイト1行) |
| wp_options | siteurl・home | 親サイトのURL |
| wp_(サイトID)_options | siteurl・home | 各子サイトのURL |
| 各サイトのposts・postmetaなど | 本文・画像URL | 記事内の旧URL |
本文や設定値にはシリアライズされたデータが含まれるため、SQLファイルをテキストエディタで一括置換するのは避けます。
WP-CLIが使える場合は、search-replaceコマンドに–networkを付けると、ネットワークの全テーブルを対象にできます(wp search-replace)。まず–dry-runで件数を確認してから実行します。
wp search-replace 'old.example.com' 'new.example.com' --network --url=old.example.com --dry-run wp search-replace 'old.example.com' 'new.example.com' --network --url=old.example.com
wp_blogsやwp_siteのdomain列には「https://」が付かないため、スキームなしのドメイン名で置換するのがポイントです。マルチサイトでは、wp-config.phpとDBのドメインが食い違うとWP-CLI自体が起動できません。
置換はwp-config.phpを旧ドメインのまま、–url=’旧ドメイン’を付けて実行し、終わってからDOMAIN_CURRENT_SITEを新ドメインに直す順番が安全です。
サブディレクトリ型は.htaccessをマルチサイト用にする
サブディレクトリ型では、example.com/en/のような子サイトのURLをWordPressに渡すルールが.htaccessに必要です。通常のWordPress用の.htaccessのままだと、親サイトは表示されても子サイトの管理画面やCSSが読み込めません。
公式ドキュメントのWordPress 3.5以降のサブフォルダ型のルールは次のとおりです(developer.wordpress.org:.htaccess)。
# BEGIN WordPress Multisite
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
移転先に子サイトと同じ名前の実フォルダ(例:/en/)があると、このルールよりフォルダが優先されて子サイトが表示されません。サーバーがNginxの場合は.htaccessが使えないため、サーバー側の設定が必要です。
サブドメイン型はサブドメイン設定とDNSを子サイト分用意する
サブドメイン型は、子サイトの数だけ移転先サーバーの設定が必要です。
- サーバー:各サブドメインを追加し、公開フォルダを親サイトと同じWordPressに向ける
- DNS:サブドメインごとのAレコード、またはワイルドカード(*.example.com)を移転先に向ける
- SSL:サブドメインごとの証明書か、ワイルドカード証明書を設定する
公式ドキュメントでは、新しい子サイトを管理画面からすぐ作れるようにするにはワイルドカード方式が必要とされています。
弊社でも、子サイトを追加しようとサブドメインを作ったものの、ネームサーバーが別会社のままで「外部サーバーを参照しています」と診断されたご相談がありました。
サブドメイン型では、DNSをどこで管理しているかまで含めて移転計画に入れてください。
移転後に確認する項目とよくある不具合
マルチサイトの移転後確認は、「親サイトが表示されたからOK」では不十分です。子サイトは個別に壊れるため、全子サイトを同じ項目で確認します。hostsファイルでの事前確認とDNS切り替え後の本番確認の2回行うのが理想です。
全子サイトで確認するチェックリスト
弊社が納品時にお客様へお伝えしているチェックポイントに、マルチサイト特有の項目を加えたものです。子サイトの数だけ繰り返してください。
- トップページと下層ページが正しく表示される(画像・CSSの欠けがない)
- 各子サイトの管理画面にログインできる
- サイトネットワーク管理画面を開ける(子サイトは開けても、ここだけ入れないことがある)
- 「サイトネットワーク管理>サイト」の一覧で、全子サイトのURLが新しい値になっている
- 記事を投稿でき、画像をアップロードできる(uploads/sites/(サイトID)/に保存される)
- お問い合わせフォームが送信でき、宛先のメールアドレスに届く
- SSLが全子サイトで有効で、保護されていない通信の警告が出ない
- 旧ドメインからの301リダイレクトが子サイトごとに効いている(ドメイン変更時のみ)
サイトの機能とは別に、メールサーバーも一緒に移す場合は、フォームの宛先アドレスが移行対象に入っているかも確認します。
弊社の案件でも、切り替え直前にフォーム宛のアドレスが移行リストにないことに気づき、お客様へ確認したことがあります。
マルチサイトの移転後に多い症状と原因
移転後に不具合が出たら、症状から原因を絞り込めます。弊社が最初に見る箇所をまとめました。
| 症状 | よくある原因 | 最初に見る箇所 |
|---|---|---|
| 「データベース接続確立エラー」が全サイトで出る | wp-config.phpのドメインとwp_site・wp_blogsが食い違う | DOMAIN_CURRENT_SITEとwp_blogsのdomain列 |
| 親サイトは出るが子サイトが404 | .htaccessが通常のWordPress用のまま | .htaccessのルールと同名フォルダの有無 |
| 子サイトだけ画像が表示されない | uploads/sites/配下の転送漏れ、本文内の旧URL | フォルダ容量の比較と本文のURL |
| 管理画面が旧ドメインへ飛ぶ | wp_(サイトID)_optionsのsiteurl・homeが未置換 | 該当サイトIDのoptionsテーブル |
| サブドメインの子サイトだけ表示されない | サブドメインのDNS・サーバー設定・SSLの不足 | DNSレコードとサーバーのサブドメイン設定 |
| 「サイトネットワーク管理」だけ開けない | wp_site・wp_sitemetaの置換漏れ、テーブルの一部欠損 | wp_site、wp_sitemetaのsiteurl |
移転後にセキュリティ対策を入れ直す場合も、マルチサイトに対応していないプラグインがあります。弊社では、ログイン画面の画像認証プラグインを入れられなかったマルチサイトで、代わりに管理画面へベーシック認証をかけて二重ログインにした例もあります。
サイト引越し屋さんの対応事例
マルチサイトの引越しでは、「ご依頼時に把握していた構成」と「実際の構成」が違うことがよくあります。弊社が対応した事例から、判断のポイントが分かりやすい3件を紹介します。
事例1 2サイトの依頼中に3つ目の子サイトが見つかった企業サイト
英語と日本語のサイトを運営する企業から、サーバーの契約満了に合わせてWordPress2サイトとメールを移転したいとご依頼をいただきました。データ移行の途中で、サブディレクトリ型の子サイト(日本語版)が存在し、合計3サイトあることが分かりました。
「移転しなければ旧サーバー解約後に表示されなくなる」とお伝えしたところ、担当者の方も失念していたとのことで、追加のお見積もりで移転対象に含めました。納品時は子サイトも含めて「表示・ログイン・画像アップロード・投稿・メール送受信・フォーム送信」の確認をお願いしています。
事例2 簡単移行で「マルチサイトは移行不可」と表示されたクリニック
リニューアルを機にサーバーとドメイン管理をまとめて移したいクリニックからのご相談です。
移転先サーバーの簡単移行を試したところマルチサイトのエラーが出て行き詰まり、ご相談をいただいたという経緯があります。サブドメインで作った新サイトを本番ドメインに切り替える作業も含まれていました。
弊社では、マルチサイトとして移すと複数サイト分の費用になる可能性をお伝えしたうえで、新サイトを先に本番公開してから1サイトとして移す順番をご提案しました。ドメイン移管の完了を待って移転と本番化を行い、納品後はテストサイトと本番サイトを見比べて移行漏れがないことを確認しています。
事例3 子サイトだけWordPressが古かった専用サーバーの企業サイト
専用サーバーで複数のサイトを運営する企業から、サブディレクトリ型マルチサイト(2サイト)と別サイトをマネージドサーバーへ移すご依頼です。事前調査で、子サイトのWordPressだけバージョンが低いことが分かりました。
移転先のPHPは8.3だったため、バージョンアップを含めたお見積もりを提出しました。切り替え前にhosts設定でお客様にも動作を確認していただき、DNS切り替えは社内の担当部署が行う形で完了しています。
専用サーバーやVPSからの移転はレンタルサーバー同士と手順が異なるため、事前調査で作業内容を確定させてから着手しています。
まとめ
WordPressマルチサイトの引越しは、サーバーの簡単移行や無料の移行プラグインが使えないことが多く、手動での作業が基本になります。
まず管理画面の「参加サイト」やwp-config.phpでマルチサイトかどうかと型を確認し、全子サイトを洗い出してください。そのうえで、マルチサイトのまま移すか分離するか、ドメインやバージョンを同時に変えるかを決めます。
作業では、サブディレクトリ型なら.htaccess、サブドメイン型ならサブドメイン設定とDNSが要注意です。ドメインが変わる場合はwp_blogs・wp_site・wp_sitemetaと各子サイトのoptionsまで置換が必要です。
移転後は親サイトだけでなく、全子サイトの表示・ログイン・メディアをチェックリストで確認しましょう。子サイトの数や構成が分からない場合は、事前調査から専門業者に任せるのが確実です。
「WordPressだけでなくメールアドレスの移行なども合わせて実施したい」
そんなときは私たちサイト引越し屋さんにお任せください。
専門のエンジニアが作業を代行いたします。
>>WordPress移転プランの詳細はこちら
この記事を書いた人
サイト引越し屋さん編集部
累計対応実績3,500案件以上、日本で最も利用されているサーバー移転&保守代行サービス『サイト引越し屋さん』のマーケティング部です。 サイト引越しに関わる技術情報をはじめ、WordPressやその他のWebサービスに関するノウハウを発信しています。 全日本SEO協会所属。
本サイトにてご提供している情報については、最新かつ正確な情報を提供するよう努力していますが、情報の正確性や完全性を保証するものではございません。また、コンテンツには一部プロモーションが含まれております。本サイトの情報を利用することによって生じたいかなる損害に対しても、当社は責任を負いかねます。情報をご利用される際は、ご自身の判断と責任において行っていただきますようお願い致します。






