CreaTools LogoCreaTools
Tips

WordPressバックアップで「何を」「どこに」保存するか

2025-10-29

この記事が解決する状況

あなたの状況読むべきセクション
バックアップを取ったことがない何をバックアップするか
プラグインで自動バックアップしているが不安復元テスト必須チェックリスト
復元に失敗した経験がある復元失敗の地獄
バックアップの頻度がわからないバックアップ頻度の設計

バックアップは「取ること」より「戻せること」が重要。 復元できないバックアップは存在しないのと同じ。


復元失敗の地獄

実際にあった事故パターン。

事故1: DBはあるがファイルがない

状況: データベースは毎日バックアップ。いざ復元しようとしたら画像がない
原因: wp-content/uploads をバックアップ対象から外していた
結果: 3年分の画像が消失。再取得不可能なものも多数

事故2: バックアップはあるが復元できない

状況: UpdraftPlusで毎週バックアップ。サーバー障害で復元しようとしたら動かない
原因: 本番PHP8.0、復元先PHP7.4。互換性のないコードがあった
結果: PHPバージョンを合わせるまで2日ダウン

事故3: 「最新」のつもりが3ヶ月前

状況: 自動バックアップが動いているはず。復元したら古いデータ
原因: ディスク容量不足でバックアップが3ヶ月前から失敗していた
結果: 3ヶ月分の投稿と注文データが消失

事故4: バックアップごとサーバーと心中

状況: バックアップをサーバー内に保存。サーバーがクラッシュ
原因: 本体とバックアップが同じ場所
結果: 全データ消失。完全にゼロからやり直し

共通点:「取っているつもり」で、実際には復元できなかった。


何をバックアップするか

最低限必要なもの

対象内容場所
wp-contentテーマ、プラグイン、アップロード画像/wp-content/
データベース投稿、固定ページ、設定、ユーザーMySQL
wp-config.phpDB接続情報、各種設定ルート直下

この3つがあれば復元できる。1つでも欠けると復元できない。

よくある見落とし

見落とし結果
データベース未取得投稿・設定がすべて消失
wp-config.php未取得DB接続情報がわからず復元不可
uploads以外のメディアCDN上の画像が復元されない
プラグインの外部データS3に保存した画像が対象外

どこに保存するか

単一障害点を避ける

保存先リスク
サーバー内のみサーバー障害で本体もバックアップも消失
ローカルPCのみPC故障で消失
クラウドのみアカウント停止で消失

推奨: サーバー内 + クラウド(または物理的に別の場所)の二重保存。

保存先の組み合わせ例

パターン構成コスト
最小構成サーバー内 + Google Drive無料
推奨構成サーバー内 + Google Drive + ローカル無料
業務用サーバー内 + S3 + 別サーバー月500円〜

手動バックアップ

ファイル(SSH)

cd /path/to/wordpress
tar -czvf backup-files-$(date +%Y%m%d).tar.gz wp-content wp-config.php

データベース(mysqldump)

mysqldump -u ユーザー名 -p データベース名 > backup-db-$(date +%Y%m%d).sql

圧縮する場合:

mysqldump -u ユーザー名 -p データベース名 | gzip > backup-db-$(date +%Y%m%d).sql.gz

phpMyAdmin

  1. 対象データベースを選択
  2. 「エクスポート」タブ
  3. 形式: SQL、「実行」

プラグインでバックアップ

選定基準

要件確認ポイント
ファイル + DB両方片方だけでは不完全
クラウド保存対応Google Drive、Dropbox、S3
スケジュール設定手動だと忘れる
復元機能バックアップだけでなく復元も簡単か

プラグイン比較

プラグイン特徴判断
UpdraftPlus無料でクラウド保存・復元可能✓ 推奨
BackWPup高機能、ジョブ管理設定が複雑でも良ければ
All-in-One WP Migrationサイト移行向け移行目的なら

UpdraftPlusの落とし穴

落とし穴対策
無料版は増分バックアップ不可大規模サイトは有料版検討
クラウド認証が切れる3ヶ月に1回は認証確認
復元時にタイムアウトサーバーのPHP実行時間を延長

バックアップ頻度の設計

サイト種別ファイルデータベース
更新少ない企業サイト週1回週1回
ブログ(週数回更新)週1回毎日
ECサイト・会員サイト毎日毎日または毎時

判断基準: 「何日分のデータを失っても許容できるか」

保持世代の設計

世代保持期間理由
日次7日分直近の問題に対応
週次4週分1週間以上前に発生した問題に対応
月次3ヶ月分長期的な問題に対応

「3世代だけ」は危険。 問題発覚が遅れた場合、全世代が汚染されている可能性がある。


復元テスト必須チェックリスト

年に1回は必ず復元テストを実施する。

テスト環境の準備

項目確認
PHPバージョン本番と同じか
MySQLバージョン本番と同じか
ディスク容量バックアップを展開できる空きがあるか

復元テスト手順

  1. テスト用サーバー(またはローカル)を準備
  2. バックアップファイルをダウンロード
  3. ファイルを展開
  4. データベースをインポート
  5. wp-config.phpのDB情報を修正
  6. 動作確認

動作確認チェックリスト

確認項目方法
トップページ表示ブラウザでアクセス
管理画面ログイン/wp-admin/
投稿・固定ページ最新記事が存在するか
メディアライブラリ画像が表示されるか
プラグイン動作主要機能が動くか
お問い合わせフォームテスト送信

テスト結果の記録

復元テスト実施日: 2025-10-29
テスト者: 田中
結果: OK / NG
所要時間: 45分
問題点: なし / (問題があれば記載)
次回テスト予定: 2026-01-29

自動化(cron)

#!/bin/bash
BACKUP_DIR="/path/to/backups"
DB_NAME="wordpress_db"
DB_USER="db_user"
DB_PASS="db_password"
DATE=$(date +%Y%m%d)

# バックアップ実行
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db-$DATE.sql.gz

# 7日以上前のファイルを削除
find $BACKUP_DIR -name "db-*.sql.gz" -mtime +7 -delete

cron登録:

0 3 * * * /path/to/backup-script.sh

毎日3時に実行、7日分保持。


やってはいけないこと

NG理由
サーバー内だけに保存サーバー障害で全滅
「自動でやってるから大丈夫」と放置失敗に気づかない
復元テストをしないいざという時に動かない
パスワードをバックアップに含めないwp-config.phpは必須
「昨日のバックアップ」だけ保持問題発覚が遅れると全滅

トラブル対応

問題原因対処
phpMyAdminでインポートできないファイルサイズ上限コマンドラインでインポート
復元後に真っ白wp-config.phpのDB情報が違うDB名・ユーザー・パスワードを確認
画像が表示されないuploads未復元/wp-content/uploads/ を確認
プラグインエラーPHPバージョン違い復元先のPHPバージョンを確認

まとめ

  • バックアップ対象: wp-content + データベース + wp-config.php
  • 保存先: サーバー内 + クラウドの二重保存
  • 頻度: 「何日分失っても許容できるか」で決める
  • プラグインならUpdraftPlus
  • 年に1回は必ず復元テストを実施
  • 「取っているつもり」が一番危険

関連記事