K4 復元 2026年6月13日

WordPressをバックアップから復元する手順|サーバー・プラグイン別の戻し方

XECIN WordPressバックアップ復元緊急復旧

更新やプラグインの操作でサイトが壊れた、あるいは改ざんされた——そんなときに頼りになるのがバックアップからの復元です。ただし、WordPressのサイト復元は「どこに・どの方式でバックアップを取っていたか」で手順がまったく変わります。やみくもにファイルを上書きすると、かえって状態を悪化させたり、新旧のデータが混在して二重に壊れたりします。まずは自分のバックアップの種類を見極め、それに合った手順を上から順にたどってください。

⚠️ 復元は「壊れる前の状態に戻す」操作のため、復元後に作った記事・受信したコメント・注文データなどは消えます。可能なら作業前に、今の(壊れている)状態のファイルとデータベースも別名でコピーしておいてください。判断に迷う・お客様のサイトで一刻を争う場合は、無理に操作せず復元代行の相談へ進むのが安全です。

まず確認:復元の前に把握すること

復元方法を選ぶ前に、次の3点を確認します。ここが曖昧なまま進めると、復元しても直らない・別の不具合が出る、という事態になりがちです。

  • どのバックアップがあるか — プラグイン(UpdraftPlus等)/レンタルサーバーの自動バックアップ/手動で取った .zip.sql/まったく無し、のどれか
  • いつ時点に戻したいか — 「正常に動いていた最後の日時」を決める。直近のバックアップが既に壊れた後のものだと、復元しても直りません
  • 全体を戻すか・一部だけ戻すか — サイトごと戻すのか、特定のファイル(テーマ・プラグイン)やDBの一部だけ戻すのかで難易度が変わります

バックアップの種類と復元方法の対応

WordPressのバックアップは「ファイル一式」と「データベース」の2つで1セットです。どちらか片方だけでは完全には戻りません。取得方法別に、対応する復元手順を整理します。

バックアップの取得方法含まれるもの復元手順難易度
UpdraftPlus(プラグイン)ファイル+DB(分割保存)管理画面から復元(手順1)やさしい
All-in-One WP Migration(プラグイン)サイト一式(.wpress管理画面でインポート(手順1)やさしい
BackWPup(プラグイン・無料版)ファイル+DB(.zip内に.sql手動復元が必要(手順3)
レンタルサーバーの自動バックアップサーバーが保持する世代管理画面から復元/取得(手順2)サーバーによる
手動(FTPで.zip+phpMyAdminで.sql自分で取得した一式手動復元(手順3)やや高い
バックアップが無い復元以外の選択肢(後述)

管理画面(/wp-admin)にログインできるかどうかも分岐点です。ログインできるならプラグインでの復元が最短です。ログインすらできない場合は、手順2・手順3のサーバー/手動での復元になります。

手順1 プラグインで取ったバックアップから復元する

管理画面にログインでき、バックアッププラグインを使っていた場合はこれが最も安全です。

UpdraftPlus の場合

  1. 管理画面の 「設定」→「UpdraftPlus Backups」 を開く
  2. 「Existing backups(既存のバックアップ)」 欄に、取得済みのバックアップが日時順に並びます
  3. 戻したい日時の行で 「Restore(復元)」 をクリック
  4. 復元する構成要素(Plugins / Themes / Uploads / Others / Database)にチェックを入れる。サイトごと戻すなら全部、テーマだけ戻したいならThemesのみ、と選べます
  5. 画面の指示に従って進めると、自動でファイルとDBが書き戻されます

Google DriveやDropboxなど外部ストレージに保存していた場合も、同じ画面の「Rescan remote storage」で一覧に取り込んでから復元できます。サーバーを引っ越した先で復元する場合は、.zip 群を wp-content/updraft/ に置いてから再スキャンします。

All-in-One WP Migration の場合

このプラグインは .wpress という独自形式でサイト一式を1ファイルに固めます。復元は 「All-in-One WP Migration」→「インポート」 から .wpress ファイルを読み込むだけです。ただし無料版にはアップロード容量の上限があり、サイトが大きいと「ファイルサイズが上限を超えています」と弾かれます。その場合は上限を引き上げる拡張機能を入れるか、後述の手動復元に切り替えます。

⚠️ インポートは現在のサイトの内容を上書きします。実行後にログイン情報も復元時点のものに変わるため、復元元のユーザー名・パスワードを控えておいてください。

BackWPup(無料版)の場合

BackWPupの無料版には「ワンクリック復元」機能がありません(復元機能は有料版のみ)。無料版で取得したバックアップ(.zip)から戻すには、ZIPを展開してファイルをFTPで戻し、中に入っているデータベースの .sql をphpMyAdminでインポートする——つまり手順3の手動復元と同じ作業になります。「BackWPupで取ったのに復元ボタンが無い」のはこのためです。

手順2 レンタルサーバーの自動バックアップから復元する

プラグインを入れていなくても、契約しているレンタルサーバー側が自動でバックアップを保持していることがあります。プランやオプションによって有無・世代数・復元方法が異なるため、代表的な3社をまとめます。正確な仕様・操作は必ず各社の管理画面とマニュアルで確認してください(仕様は変更されることがあります)。

サーバー自動バックアップ復元の方法(管理画面)注意点
さくらのレンタルサーバ「バックアップ&ステージング」機能で複数世代を自動保持コントロールパネル →「バックアップ&ステージング」から対象世代を選んで復元プランにより利用可否が異なる。ステージングで内容を確認してから本番へ反映できる
エックスサーバーWeb領域・MySQLを自動で一定期間分保持(無料)サーバーパネル →「バックアップ」からWeb・MySQLの自動バックアップデータを取得し、ファイルは復元、MySQLはインポートで戻すデータの「取得」と「サイトへの反映」は別作業。取得後の戻しは手順3に準じる
ロリポップ!「バックアップオプション」(有料)で7世代を自動保持ユーザー専用ページのバックアップ画面から復元リクエストを送る無料プランは対象外のことが多い。復元はリクエスト単位での申請制

サーバーの自動バックアップは「全体をまるごと特定日時に戻す」用途に向いています。一方、サイトが改ざん(マルウェア混入)された場合は、感染前の世代まで戻さないと再発します。直近のバックアップが既に感染後だと、復元しても再び不正ファイルが復活するため、世代を1つずつさかのぼって確認します。

手順3 手動でバックアップから復元する(FTP+phpMyAdmin)

管理画面に入れない、またはプラグインに復元機能が無い場合の最終手段です。WordPressは「ファイル一式」と「データベース」の2つを戻せば復元できます。

3-1 ファイルを戻す(FTP)

FTPソフト(FileZilla等)やサーバーのファイルマネージャで、バックアップした wp-content(テーマ・プラグイン・アップロード画像)を中心にサーバーへアップロードします。サイトごと戻すなら、wp-config.php を除く WordPress 一式を上書きします。

⚠️ wp-config.php現在のサーバーのDB接続情報が書かれた重要ファイルです。別サーバーのバックアップから上書きすると接続情報がずれて「データベース接続確立エラー」になります。原則として現在の wp-config.php は残してください。

3-2 データベースを戻す(phpMyAdmin)

  1. サーバー管理画面から phpMyAdmin を開く
  2. 対象のデータベースを選び、既存のテーブルを一度削除(または空のDBを用意)
  3. 上部の 「インポート」 タブから、バックアップの .sql ファイルを選んで実行

SSHが使えるサーバーやVPSなら、コマンドで戻す方が確実で速い場合があります。

# データベースに .sql を流し込む(既存データは置き換わる)
mysql -u DBユーザー名 -p データベース名 < backup.sql

WP-CLIが入っていれば、サイトのディレクトリで次のコマンドでもインポートできます。

wp db import backup.sql

3-3 サイトURLが変わる場合

ローカルや別ドメインで取ったバックアップを本番へ戻すと、DB内に旧URLが残り、画像が表示されない・リンク切れが起きます。WP-CLIの search-replace で一括置換します(必ずDBのバックアップを取ってから実行)。

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid

バックアップが無い・復元できないとき

「バックアップを取っていなかった」「取っていたが壊れていて戻せない」というケースは少なくありません。この場合、復元以外の選択肢を検討します。

  • サーバー側の自動バックアップを再確認 — 自分では取っていなくても、手順2のとおりサーバーが保持していることがあります。まず管理画面のバックアップ項目を確認してください
  • Googleキャッシュ・Wayback Machineから文章を回収 — 画像やレイアウトは戻りませんが、記事本文はインターネットアーカイブ等から手作業で拾える場合があります
  • 破損箇所だけを修復する — DBの破損ならデータベース接続確立エラーの対処、表示が真っ白なだけなら別の原因切り分けで、復元せずに直ることもあります
  • 専門業者にデータ救出を依頼する — サーバーにファイルとDBさえ残っていれば、バックアップが無くても現状からの復旧・サルベージが可能なケースがあります

特に改ざん・マルウェア感染で、いつから感染していたか分からない場合は、自力での復元はおすすめしません。感染後のバックアップに戻すと再発し、感染前まで戻すと最近の更新が全て失われます。どの世代に戻すべきかの見極めには専門的な調査が必要です。

復元後に必ず確認すること

復元はファイルを書き戻して終わりではありません。以下を順に確認してください。

  • トップページと /wp-admin の両方が開くか — 片方だけ直っていることがあります
  • 画像が表示されているか・リンク切れが無いか — URLのずれ(3-3)が残っていないか
  • プラグインが有効化されたままで競合していないか — 一度すべて停止し、1つずつ有効化して原因を切り分けると安全です
  • WP_ALLOW_REPAIR など一時的に追記した行を消したか — 修復作業で追記した設定はセキュリティ上必ず削除します
  • 改めてバックアップを取り直す — 復元できた直後の正常な状態を、今度はプラグイン+サーバーの二重で保存しておきます

よくある質問

復元すると、今ある記事やコメントは消えますか?

はい。バックアップは「取得した時点」の状態です。復元するとその時点に巻き戻るため、バックアップ取得後に追加された記事・コメント・受注データは失われます。どうしても残したいデータがある場合は、復元前に現在のDBを書き出し、復元後に該当部分だけを手作業で戻す必要があります。

バックアップファイルが壊れていて復元できません

ZIPが展開できない、.sqlのインポートが途中でエラーになる場合、バックアップ自体が破損しています。別の世代(少し前の日時)のバックアップがあればそちらを試します。複数の保存先(プラグイン・サーバー・外部ストレージ)に取っていれば、いずれかが無事なことが多いため確認してください。すべて壊れている場合は「バックアップが無いとき」と同じ対応になります。

引っ越し(サーバー移行)のための復元と何が違いますか?

基本の作業(ファイル+DBを戻す)は同じですが、移行ではドメインやサーバー名が変わるため、wp-config.php の接続情報の書き換えと、DB内URLの一括置換(3-3)が追加で必要になります。手順はサーバー移行ガイドを参照してください。

自分で復元するのが不安です

データベースやファイルの上書きは、誤るとサイトのデータを完全に失うリスクがあります。「お客様に見せている最中」「ECで注文が入っている」といった場面では、無理に操作せず、専門家による復元・データ救出をおすすめします。当社ではバックアップの有無にかかわらず、現状からの復旧サポートを行っています。