はじめに
WordPressのローカル環境で作成したWebサイトを本番環境へ移行する作業は、Webサイト公開における最も重要な工程の一つです。適切な手順を踏まないと、データ損失・表示崩れ・SEO評価の低下など、深刻な問題が発生する可能性があります。
2025年現在、WordPress 6.7対応、PHP 8.3対応、最新のサーバー環境(HTTP/3、TLS 1.3)を考慮した移行方法が求められています。本記事では、初心者から上級者まで、確実かつ安全に移行できる完全ガイドを提供します。
📑 目次
移行前に確認すべき3つの重要事項
移行作業を開始する前に、以下の3つの事項を必ず確認してください。これらを怠ると、移行失敗のリスクが大幅に上がります。
1. サーバー環境の互換性確認
⚠️ 2025年推奨環境
- PHP バージョン: 8.1以上(推奨: PHP 8.3)
- MySQL バージョン: 5.7以上 または MariaDB 10.3以上
- WordPress バージョン: 6.4以上(推奨: WordPress 6.7)
- メモリ制限: 最低256MB(推奨: 512MB以上)
- SSL/TLS: TLS 1.3対応(推奨)
- HTTP バージョン: HTTP/2以上(推奨: HTTP/3)
確認方法: ローカル環境でWordPress管理画面 → 「ツール」 → 「サイトヘルス」で現在の環境を確認できます。本番サーバーの環境情報は、レンタルサーバーの管理画面またはサポートページで確認しましょう。
2. バックアップの取得(最重要)
移行作業では必ず予期せぬトラブルが発生します。データ損失を防ぐため、以下のバックアップを取得してください:
- ローカル環境の完全バックアップ: ファイル一式 + データベースダンプ
- 本番環境の既存データ(既にサイトがある場合): 上書きする前に必ずバックアップ
- 外部ストレージへの保存: 万が一に備え、Google Drive、Dropbox、外付けHDDなどに保存
💡 3-2-1バックアップルール
プロが推奨する「3-2-1ルール」を実践しましょう:
- 3つのコピー: 本番データ + ローカルバックアップ + 外部バックアップ
- 2種類のメディア: PC内蔵HDD + クラウドストレージ(または外付けHDD)
- 1つはオフサイト: 物理的に離れた場所(クラウド)に保存
3. 本番ドメインとURLの準備
移行後のURLは、ローカル環境(http://localhost/...)から本番ドメイン(https://example.com)に変わります。
確認事項:
- ドメイン取得済みか(お名前.com、ムームードメイン等)
- DNSレコードが正しく設定されているか
- SSL証明書が発行済みか(Let’s Encrypt、有料証明書等)
- サーバーにWordPressがインストール可能か(データベース作成権限)
移行方法の比較(手動・プラグイン・WP-CLI)
WordPressの移行方法は大きく分けて3つあります。それぞれの特徴・メリット・デメリットを理解して、最適な方法を選択しましょう。
| 移行方法 | 難易度 | 所要時間 | メリット | デメリット |
|---|---|---|---|---|
| 手動移行 (FTP + phpMyAdmin) |
⭐⭐⭐⭐ (やや難しい) |
60-120分 | • 完全なコントロール • プラグイン不要 • カスタマイズ可能 • 学習効果大 |
• 手順が複雑 • 作業ミスのリスク • 初心者には難しい |
| プラグイン移行 (All-in-One WP Migration等) |
⭐⭐ (簡単) |
15-30分 | • 初心者でも簡単 • ワンクリック移行 • 作業ミス減少 • GUI操作 |
• サイズ制限あり(無料版512MB) • プラグイン依存 • カスタマイズ困難 |
| WP-CLI移行 (コマンドライン) |
⭐⭐⭐⭐⭐ (上級者向け) |
10-20分 | • 最速 • 自動化可能 • サイズ制限なし • 大規模サイト対応 |
• コマンドライン操作必須 • 学習コスト高 • SSH接続必要 |
💡 おすすめの選び方
- 初心者・小規模サイト(512MB未満): プラグイン移行(All-in-One WP Migration)
- 学習目的・細かい制御が必要: 手動移行(本記事セクション4で詳細解説)
- 大規模サイト・自動化したい: WP-CLI移行(本記事セクション6で詳細解説)
手動移行の具体的手順(9ステップ)
ここからは、最も確実で学習効果の高い手動移行の具体的手順を、スクリーンショット付きで解説します。既存のスクリーンショットや画像はそのまま活用してください(WordPress投稿時に配置)。
⚠️ 作業前の最終確認
- ✅ ローカル環境のバックアップ完了
- ✅ 本番サーバーのデータベース作成権限確認
- ✅ FTPクライアント(FileZilla等)インストール済み
- ✅ テキストエディタ(TeraPad、VSCode等)準備済み
- ✅ 作業時間を60-120分確保
ステップ1: 本番環境にデータベースの作成
必要情報(メモしておく):
- データベース名: 例
wp_online_db - データベースユーザー名: 例
wp_user - データベースパスワード: 強固なパスワードを設定
- データベースホスト: 通常は
localhost(サーバーにより異なる)
データベース作成の手順:
まずは本番環境にWordPressのsqlデータを入れるデータベースを作成します。
レンタルサーバーや自前のサーバーのphpMyAdminにログインしたら「データベースを作成する」の画面を開きます。
今回はデータベース名として「wp_online_db」を入力し、utf8_general_ciを選択して作成ボタンを押します。
作成ボタンを押したら、特権をクリックして、 Add user accountをクリックして新しくユーザーを作ります。
User name: wp_user
Host name: localhost
パスワード: 任意の文字列
再入力:上記と同じ文字列
上記を入力したら、右下の実行をクリックします。
入力した情報は後で使いますので、データベース名と一緒にメモしておきましょう。
上記のように新しいユーザーが追加されました!と表示されたら成功です。
次はLocalで作成したWordPressから、sqlデータをエクスポートします。
ステップ2: ローカルDBからSQLデータをエクスポート
ローカル環境のphpMyAdmin(またはAdminer、Sequel Pro等)にアクセスし、WordPressデータベースをエクスポートします。
エクスポート手順:
- phpMyAdminにアクセス(通常
http://localhost/phpmyadmin) - 左サイドバーからWordPressデータベースを選択
- 上部メニューから「エクスポート」タブをクリック
- 「簡易 – 最小限のオプションのみ表示」を選択
- フォーマット: 「SQL」を選択
- 「実行」ボタンをクリックして、.sqlファイルをダウンロード
エクスポートの手順:
LOCALを起動させて、任意のWordPressを選択し、右上のボタンでスタート、SSLのタブでTRUSTをクリックしたら、DATABASEのタブを開きます。
ADMINERというボタンをクリックするとphpMyAdminがブラウザで開きます。
URLがwordpress-local.comとなっていますが、LOCALのバーチャルホストによってローカル環境でドメインが割り当てられている状態です。
左側にあるエクスポートをクリックしてください。
画面が切り替わったら、下記項目をチェックしてエクスポートしてください。通常はデフォルトのままエクスポートできると思います。
出力:保存
形式:SQL
データベース:ルーチン・イベント
テーブル:DROP+CREATE・トリガー
データ:INSERT
確認したらエクスポートのボタンをクリックしましょう。
ファイルがダウンロードされたらsqlデータのエクスポートは終了です。
💡 TIPS: エクスポートオプション
大規模サイト(データベース100MB以上)の場合は、「詳細」オプションで以下を設定すると安全です:
- 「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する」にチェック
- 「圧縮」を「gzip」に設定(ファイルサイズ削減)
ステップ3: SQLデータの修正(URL置換)
エクスポートしたSQLファイルには、ローカル環境のURL(http://localhost/...)が含まれています。これを本番環境のURL(https://example.com)に置換する必要があります。
置換方法:
- テキストエディタ(TeraPad、VSCode、Sublime Text等)でSQLファイルを開く
- 「検索と置換」機能を使用
- 検索:
http://localhost/your-site - 置換:
https://your-domain.com - 「すべて置換」を実行
- 上書き保存
🚨 重要な注意点
- シリアライズデータに注意: WordPressはデータをシリアライズ(連続化)して保存します。単純な置換では文字数が変わり、データが壊れる可能性があります。
- 安全な方法: 後述の「WP-CLIによる置換」または「Better Search Replaceプラグイン」の使用を推奨
- 手動置換する場合: 必ず置換前後でSQLファイルのバックアップを取ること
テキストエディタでのURL置換例:
※この作業は慎重に行ってください。シリアライズデータの破損リスクがあるため、可能であればWP-CLIまたはBetter Search Replaceプラグインの使用を推奨します。
ステップ4: SQLデータのインポート
本番サーバーのphpMyAdminにアクセスし、修正したSQLファイルをインポートします。
インポート手順:
- 本番サーバーのphpMyAdminにアクセス(レンタルサーバー管理画面からアクセス)
- 左サイドバーから先ほど作成したデータベース(例:
wp_online_db)を選択 - 上部メニューから「インポート」タブをクリック
- 「ファイルを選択」から修正したSQLファイルを選択
- フォーマット: 「SQL」を確認
- ページ下部の「実行」ボタンをクリック
⚠️ インポートサイズ制限
phpMyAdminには最大アップロードサイズ制限があります(通常2-50MB)。SQLファイルがこれを超える場合は:
- 方法1: SQLファイルを分割してインポート
- 方法2: SSH接続でコマンドライン経由インポート:
mysql -u ユーザー名 -p データベース名 < ファイル名.sql - 方法3: サーバーの
php.iniでupload_max_filesizeを一時的に増やす
インポートの手順:
本番サーバーのphpMyAdminを開いて、作成したデータベースを選択し、インポートをクリックします。 ファイルを選択で先ほど修正したSQLのデータを選択します。
ファイルが選択されたことを確認したら、画面を少しスクロールして、左下にある実行をクリックしすればデータベースのインポートは終了です。
ステップ5: wp-config.phpの修正
WordPressのデータベース接続情報が記載された wp-config.php ファイルを、本番環境用に修正します。
wp-config.php編集の手順:
フォルダ内の wp-config.php をテキストエディタで開き、データベース接続情報を本番環境用に修正します。
C:\Users\ユーザー名\Local Sites\wordpress\app\public
修正箇所(4箇所):
// ローカル環境(修正前)
define('DB_NAME', 'local_db');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
// 本番環境(修正後)
define('DB_NAME', 'wp_online_db'); // ステップ1で作成したDB名
define('DB_USER', 'wp_user'); // ステップ1で作成したユーザー名
define('DB_PASSWORD', 'your_strong_password'); // ステップ1で設定したパスワード
define('DB_HOST', 'localhost'); // サーバーにより異なる(例: mysql123.example.com)
💡 セキュリティ強化(推奨)
wp-config.phpに以下のセキュリティ設定を追加しましょう:
// ファイル編集を無効化
define('DISALLOW_FILE_EDIT', true);
// デバッグモードをOFF(本番環境では必須)
define('WP_DEBUG', false);
// セキュリティキーを強力なものに変更
// https://api.wordpress.org/secret-key/1.1/salt/ で生成
ステップ6: ファイルのアップロード
ローカル環境のWordPressファイル一式を、FTPクライアントで本番サーバーにアップロードします。
アップロード手順:
- FTPクライアント(FileZilla、Cyberduck等)を起動
- 本番サーバーに接続(FTPホスト、ユーザー名、パスワードを入力)
- 本番サーバー側:
public_html/(またはドキュメントルート)を開く - ローカル側: WordPressフォルダを開く
- すべてのファイル・フォルダを選択してアップロード
- アップロード完了まで待機(大規模サイトは30分〜数時間)
⚠️ アップロード最適化
- wp-config.phpは最後にアップロード: 途中でサイトが見える状態を防ぐ
- タイムアウト対策: FTPクライアントのタイムアウト設定を長めに(300秒以上)
- 転送モード: 「自動」または「バイナリ」を選択(ASCIIモードは避ける)
- 既存ファイルの扱い: 「すべて上書き」を選択
FTPアップロードの手順:
今回はサーバーと接続するのにFFFTPを使います。インストール方法は公式ページに記載があるので省きます。
レンタルサーバーや自前のサーバーのFTP接続情報を入力してサーバーとFTP接続します。
FTPの情報は基本的にユーザー名、パスワード、ホスト名と、環境によってはポート番号などが挙げられます。
入力する項目は少ないので、間違いのないように入力すれば接続できます。
接続されたら、左側のローカルフォルダは作業用にWordPressを移動したフォルダを選び、右側はアップロードするドメインのフォルダを開いて、全てのファイルをアップロードしましょう。 これにはかなり時間が掛かりますので、ゆっくりと待ちましょう。
ステップ7: 表示確認
ブラウザで本番ドメインにアクセスし、サイトが正しく表示されるか確認します。
確認項目:
- ✅ トップページが正しく表示される
- ✅ 内部リンクが正しく機能する(404エラーがない)
- ✅ 画像がすべて表示される(画像パスが正しい)
- ✅ CSSが適用されている(デザイン崩れがない)
- ✅ 管理画面(
/wp-admin/)にログインできる - ✅ プラグインが正常に動作する
🚨 表示されない場合
「データベース接続エラー」または「Internal Server Error」が表示される場合:
- 原因1: wp-config.phpのDB接続情報が間違っている → ステップ5を再確認
- 原因2: .htaccessの設定ミス → 一時的に.htaccessをリネームして確認
- 原因3: パーミッション設定ミス → 後述のセクション9で対処
表示確認:
ステップ8: .htaccessの修正(必要に応じて)
.htaccessファイルは、Webサーバーの動作を制御する重要なファイルです。ローカル環境と本番環境でパスが異なる場合は修正が必要です。
修正が必要なケース:
- パーマリンク設定がカスタム構造の場合
- リダイレクト設定がある場合
- セキュリティヘッダーを設定している場合
基本的な.htaccess設定:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
💡 セキュリティ強化の.htaccess設定
セキュリティを強化したい場合は、以下を追加しましょう(詳細はセクション9で解説):
- HTTPS強制リダイレクト
- 管理画面へのアクセス制限
- wp-config.phpへの直接アクセス禁止
- ディレクトリリスティング無効化
.htaccess編集方法:
WordPressルートディレクトリの .htaccess ファイルをテキストエディタで開き、上記の設定を確認・修正します。ファイルが存在しない場合は、新規作成してください。
※ファイル名の先頭にドット(.)があるため、非表示ファイルとして扱われます。FTPクライアントで「隠しファイルを表示」設定を有効にしてください。
ステップ9: 最終確認とSEO設定
移行作業の最終段階として、以下を確認・設定します。
最終確認チェックリスト:
- ✅ すべてのページが表示される(404エラーチェック)
- ✅ 問い合わせフォームが正常に送信される
- ✅ 検索機能が動作する
- ✅ モバイル表示が正常
- ✅ ページ速度が許容範囲(Google PageSpeed Insights で確認)
SEO設定:
- ✅ Google Search Console に新しいドメインを登録
- ✅ サイトマップ(sitemap.xml)を送信
- ✅ robots.txt で検索エンジンのクローリングを許可
- ✅ SSL証明書が有効か確認(https:// でアクセス可能)
- ✅ リダイレクト設定(旧ドメインから新ドメインへ、必要に応じて)
🎉 移行完了おめでとうございます!
手動移行を完了したあなたは、WordPressの内部構造を深く理解できました。この知識は、今後のトラブルシューティングやカスタマイズに必ず役立ちます。
プラグインを使った簡単移行方法
初心者や小規模サイト(512MB未満)の移行には、プラグインを使った方法が最適です。ワンクリックで移行でき、作業ミスのリスクも大幅に減少します。
おすすめ移行プラグイン比較
| プラグイン名 | 無料版制限 | 有料版価格 | 主な機能 | おすすめ対象 |
|---|---|---|---|---|
| All-in-One WP Migration | 512MB | $69(買い切り) | • ワンクリック移行 • データベース自動置換 • 復元機能 • スケジュールバックアップ |
初心者 小規模サイト |
| Duplicator | サイズ制限なし (動作は遅い) |
$49.50/年 | • サイズ制限なし • インストーラー生成 • スケジュールバックアップ • クラウド連携 |
中規模サイト 定期バックアップ |
| WPvivid | 無制限 (一部機能制限) |
$79/年 | • 無料版でも無制限 • 増分バックアップ • クラウド連携 • 自動移行 |
大規模サイト 頻繁な移行 |
All-in-One WP Migration を使った移行手順
最も人気のあるAll-in-One WP Migrationの使い方を解説します。
【ローカル環境での作業】エクスポート
- WordPressプラグイン追加画面で「All-in-One WP Migration」をインストール・有効化
- 管理画面左メニュー → 「All-in-One WP Migration」 → 「エクスポート」をクリック
- 「エクスポート先」 → 「ファイル」を選択
- ダウンロードが開始されるので、.wpressファイルを保存
⚠️ 512MB制限の回避方法
無料版の512MB制限を超える場合:
- 方法1: 有料版($69買い切り)を購入
- 方法2: 「高度なオプション」で不要なファイルを除外(メディアライブラリ、テーマ、プラグイン等)
- 方法3: Duplicator または WPvivid に切り替え
【本番環境での作業】インポート
- 本番サーバーに新規WordPressをインストール(最低限の設定のみ)
- 「All-in-One WP Migration」プラグインをインストール・有効化
- 管理画面左メニュー → 「All-in-One WP Migration」 → 「インポート」をクリック
- 「インポート元」 → 「ファイル」を選択
- 先ほどダウンロードした.wpressファイルをアップロード
- 「インポート開始」ボタンをクリック
- インポート完了後、自動的にログアウトされます
- ローカル環境と同じユーザー名・パスワードで再ログイン
💡 インポート後の自動処理
All-in-One WP Migrationは以下を自動で処理します:
- ✅ データベースURL置換(シリアライズデータも自動対応)
- ✅ パーマリンク設定の更新
- ✅ .htaccessの自動生成
- ✅ wp-config.phpの自動調整(データベース情報は手動で確認推奨)
WP-CLIによる自動化移行
WP-CLI(WordPress Command Line Interface)は、コマンドラインからWordPressを操作できる上級者向けツールです。大規模サイトの移行や自動化に最適です。
WP-CLIの前提条件
- SSH接続が可能なサーバー(共用サーバーの一部は非対応)
- コマンドライン操作の基礎知識
- WP-CLIがインストール済み(未インストールの場合は後述)
WP-CLIインストール(サーバー側)
# WP-CLIをダウンロード
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 実行権限を付与
chmod +x wp-cli.phar
# システムパスに移動(グローバルで使用可能に)
sudo mv wp-cli.phar /usr/local/bin/wp
# 動作確認
wp --info
WP-CLIを使った移行手順
ステップ1: ローカル環境でデータベースエクスポート
# ローカル環境のWordPressディレクトリに移動
cd /path/to/local/wordpress
# データベースをエクスポート
wp db export local-backup.sql
# エクスポートしたファイルを確認
ls -lh local-backup.sql
ステップ2: ファイルとデータベースを本番サーバーに転送
# rsyncでファイル転送(高速・差分転送)
rsync -avz --progress /path/to/local/wordpress/ user@server.com:/path/to/production/
# または、SCPで転送
scp -r /path/to/local/wordpress/* user@server.com:/path/to/production/
scp local-backup.sql user@server.com:/path/to/production/
ステップ3: 本番サーバーでデータベースインポート
# 本番サーバーにSSH接続
ssh user@server.com
# WordPressディレクトリに移動
cd /path/to/production
# データベースをインポート
wp db import local-backup.sql
# インポート確認
wp db check
ステップ4: URL置換(最重要)
# データベース内のURLを一括置換(シリアライズデータも自動対応)
wp search-replace 'http://localhost/yoursite' 'https://your-domain.com' --all-tables
# 置換結果の確認
wp option get siteurl
wp option get home
# 必要に応じて手動で修正
wp option update siteurl 'https://your-domain.com'
wp option update home 'https://your-domain.com'
💡 WP-CLIの強力な search-replace コマンド
wp search-replaceは、WordPressのシリアライズデータも自動で正しく置換します。手動のSQL置換で発生する「データ破損」のリスクがありません。
オプション:
--dry-run: 実際には置換せず、結果プレビューのみ表示--all-tables: すべてのテーブルを対象(推奨)--precise: より精密な置換--skip-columns=guid: 投稿GUIDをスキップ(SEO対策)
ステップ5: パーマリンク更新とキャッシュクリア
# パーマリンクをフラッシュ(.htaccess更新)
wp rewrite flush
# キャッシュをクリア
wp cache flush
# プラグインの再有効化(必要に応じて)
wp plugin list
wp plugin activate --all
ステップ6: 動作確認
# WordPressバージョン確認
wp core version
# データベース接続確認
wp db check
# サイトURL確認
wp option get siteurl
# ユーザー一覧確認
wp user list
# すべて正常なら完了!
💡 WP-CLI移行の自動化スクリプト
頻繁に移行作業を行う場合は、シェルスクリプトで自動化できます:
#!/bin/bash
# wordpress-migrate.sh
LOCAL_URL="http://localhost/yoursite"
PROD_URL="https://your-domain.com"
wp db export backup.sql
wp search-replace "$LOCAL_URL" "$PROD_URL" --all-tables
wp rewrite flush
wp cache flush
echo "移行完了!"
ローカル環境ツール比較
ローカル環境の構築方法によって、本番移行の難易度が変わります。2025年現在の主要なローカル環境ツールを比較します。
| ツール名 | OS対応 | 難易度 | 特徴 | 移行の容易さ | おすすめ対象 |
|---|---|---|---|---|---|
| XAMPP | Win/Mac/Linux | ⭐⭐⭐ (中) |
• Apache + MySQL + PHP統合 • 軽量・高速 • 設定自由度高 |
手動移行が中心 設定理解必要 |
学習目的 カスタマイズ重視 |
| MAMP | Win/Mac | ⭐⭐ (やや易) |
• GUI操作メイン • 日本語対応 • 設定が簡単 |
手動移行が中心 初心者でも可 |
初心者 Mac開発者 |
| Local (by Flywheel) | Win/Mac/Linux | ⭐ (簡単) |
• WordPress専用 • サイト複数管理 • SSL標準対応 • Push to Live機能 |
★★★★★ ワンクリック移行可能 |
初心者〜中級者 WordPress特化 |
| Docker | Win/Mac/Linux | ⭐⭐⭐⭐⭐ (難) |
• 本番環境と完全一致 • コンテナ管理 • CI/CD統合 • 複雑なインフラ対応 |
★★★★☆ 環境再現性高 学習コスト高 |
上級者 チーム開発 大規模サイト |
💡 2025年のおすすめ: Local by Flywheel
Localは、WordPress専用ローカル環境として最も移行が簡単です。特に「Push to Live」機能を使えば、ワンクリックで本番環境へ移行できます(有料プラン)。
Localの「Push to Live」移行手順:
- Local の有料プラン(Local Connect)に登録
- ローカルサイトで「Push to Live」をクリック
- 本番サーバーのFTP情報を入力
- 自動的にファイル・DB転送+URL置換完了
トラブルシューティング完全ガイド
移行作業では、様々なトラブルが発生する可能性があります。よくあるエラーと解決方法を7パターンに分けて解説します。
トラブル1: 「データベース接続エラー」が表示される
エラーメッセージ: Error establishing a database connection
原因:
- wp-config.phpのデータベース情報が間違っている
- データベースが存在しない
- データベースユーザーに権限がない
解決方法:
- wp-config.phpを開き、DB_NAME、DB_USER、DB_PASSWORD、DB_HOSTを確認
- phpMyAdminで該当データベースが存在するか確認
- データベースユーザーに「すべての権限」が付与されているか確認
- DB_HOSTが正しいか確認(サーバーにより
localhostではない場合あり)
トラブル2: 画像が表示されない(画像パス不一致)
症状: テキストは表示されるが、画像だけ表示されない
原因:
- データベース内のURLが古いまま(ローカル環境のURL)
- 画像ファイルが未アップロード
- パーミッション設定ミス
解決方法:
- Better Search Replace プラグインをインストール
- 「ツール」 → 「Better Search Replace」で古いURL → 新しいURLに置換
- または、WP-CLIで
wp search-replace 'old-url' 'new-url' --all-tablesを実行 - wp-content/uploadsフォルダがアップロードされているか確認
- uploadsフォルダのパーミッションを755に設定
トラブル3: 管理画面にログインできない
症状: /wp-admin/にアクセスするとエラーまたはログイン失敗
原因:
- ユーザー情報がデータベースに存在しない
- パスワードが変更されている
- .htaccessでアクセス制限がかかっている
解決方法:
- phpMyAdminでデータベースを開く
wp_usersテーブルを確認(ユーザーが存在するか)- パスワードをリセット:
user_passをMD5('newpassword')に更新 - または、WP-CLIで
wp user update admin --user_pass=newpassword - .htaccessを一時的にリネームして確認
トラブル4: 「Internal Server Error (500)」が表示される
症状: サイト全体が500エラー
原因:
- .htaccessの構文エラー
- PHPバージョン非互換
- メモリ不足
- プラグインの競合
解決方法:
- .htaccessを確認: 一時的にリネーム(.htaccess → .htaccess_old)して再アクセス
- PHPエラーログ確認: サーバーの
error_logファイルを確認 - PHPバージョン変更: サーバー管理画面でPHP 8.1以上に変更
- メモリ制限緩和: wp-config.phpに
define('WP_MEMORY_LIMIT', '256M');を追加 - プラグインを無効化: FTPで
wp-content/plugins/フォルダをリネーム
トラブル5: SSL証明書エラー(「この接続ではプライバシーが保護されません」)
症状: HTTPSでアクセスするとSSL警告が表示される
原因:
- SSL証明書が未発行または期限切れ
- 証明書とドメインが一致していない
- 混在コンテンツ(HTTP画像がHTTPSページに存在)
解決方法:
- レンタルサーバー管理画面でSSL証明書を発行(Let’s Encryptなら無料)
- 証明書発行後、24-48時間待機(DNS伝播)
- WordPressの「設定」 → 「一般」で、サイトURLを
https://に変更 - 混在コンテンツを修正:
Really Simple SSLプラグインをインストール - または、WP-CLIで
wp search-replace 'http://' 'https://' --all-tables
トラブル6: パーマリンクが404エラー(トップページ以外表示されない)
症状: トップページは表示されるが、個別投稿・固定ページが404エラー
原因:
- .htaccessが正しく生成されていない
- Apacheの mod_rewrite が無効
- パーマリンク設定がリセットされていない
解決方法:
- WordPress管理画面 → 「設定」 → 「パーマリンク」
- 現在の設定を確認後、「変更を保存」ボタンをクリック(設定を変更しなくてOK)
- これで.htaccessが自動再生成されます
- それでも解決しない場合: サーバー管理者に mod_rewrite の有効化を依頼
- または、FTPで.htaccessを手動で作成(Part 1セクション8参照)
トラブル7: データベースインポートがタイムアウトする
症状: phpMyAdminでSQLインポート中にタイムアウトエラー
原因:
- SQLファイルサイズが大きすぎる(50MB以上)
- サーバーのmax_execution_time制限
- phpMyAdminのメモリ制限
解決方法:
- SQLファイルを分割: テキストエディタで分割(各ファイル10MB以下)
- コマンドラインでインポート (SSH接続):
mysql -u ユーザー名 -p データベース名 < ファイル名.sql - WP-CLIでインポート:
wp db import ファイル名.sql - BigDumpスクリプトを使用: 大容量SQLファイル専用のインポートツール
💡 トラブル発生時の基本原則
- エラーログを確認: error_log、debug.log を最初に確認
- バックアップから復元: 解決できない場合はバックアップから再スタート
- 段階的に原因特定: プラグイン無効化 → テーマ変更 → .htaccess削除の順で試す
- サーバーサポートに相談: サーバー固有の問題はサポートが最速
セキュリティ設定確認
移行後は、セキュリティ設定を必ず確認・強化しましょう。本番環境はインターネットに公開されるため、ローカル環境よりも攻撃リスクが高まります。
1. HTTPS強制リダイレクト設定
すべてのHTTPアクセスをHTTPSにリダイレクトします。
.htaccessに追加:
# HTTPS強制リダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
2. wp-config.phpのセキュリティ強化
wp-config.phpに以下のセキュリティ設定を追加します。
/* セキュリティ強化設定 */
// ファイル編集を無効化(管理画面からのテーマ・プラグイン編集を禁止)
define('DISALLOW_FILE_EDIT', true);
// ファイルインストールを無効化(より厳格)
define('DISALLOW_FILE_MODS', true);
// デバッグモードをOFF(本番環境では必須)
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
// データベーステーブルプレフィックスを変更(デフォルトのwp_から変更)
// ※既存サイトでは変更困難、新規構築時に設定
$table_prefix = 'wp_a3f7b9_';
// 自動保存間隔を延長(パフォーマンス向上)
define('AUTOSAVE_INTERVAL', 300);
// リビジョン数を制限
define('WP_POST_REVISIONS', 3);
// SSL強制(管理画面・ログイン画面)
define('FORCE_SSL_ADMIN', true);
// セキュリティキーを強力なものに変更
// https://api.wordpress.org/secret-key/1.1/salt/ で生成
設置場所: WordPressルートディレクトリの wp-config.php
3. パーミッション(アクセス権限)設定
適切なパーミッション設定は、セキュリティの基本です。
推奨パーミッション:
- ディレクトリ: 755(drwxr-xr-x)
- ファイル: 644(-rw-r–r–)
- wp-config.php: 600(-rw——-)← 特に重要
- .htaccess: 644(-rw-r–r–)
FTPクライアントでの設定方法:
- FileZillaでファイル/フォルダを右クリック
- 「ファイルのパーミッション」を選択
- 数値を入力(例: 755、644)
- 「サブディレクトリへ再帰」にチェック(フォルダの場合)
SSH/WP-CLIでの一括設定:
# WordPressディレクトリに移動
cd /path/to/wordpress
# すべてのディレクトリを755に設定
find . -type d -exec chmod 755 {} \;
# すべてのファイルを644に設定
find . -type f -exec chmod 644 {} \;
# wp-config.phpだけ600に設定
chmod 600 wp-config.php
4. 管理画面アクセス制限(.htaccessで保護)
wp-adminディレクトリへのアクセスを特定IPアドレスのみに制限します。
wp-admin/.htaccess を作成:
# wp-admin ディレクトリへのアクセス制限
order deny,allow
deny from all
# 許可するIPアドレス(自分のIPに置き換え)
allow from 123.456.789.012
allow from 192.168.1.100
# ajax-admin.phpは除外(WordPressの動作に必要)
<Files admin-ajax.php>
order allow,deny
allow from all
satisfy any
</Files>
⚠️ IPアドレス制限の注意点
- 自分のIPアドレスは変動する場合があります(ISPにより異なる)
- 固定IPアドレスサービスの利用を推奨
- または、VPNサービス経由でアクセス
- 複数人で管理する場合は、すべてのIPアドレスを追加
5. セキュリティプラグインの導入
総合セキュリティプラグインを導入すると、設定が一元管理できます。
おすすめセキュリティプラグイン:
- Wordfence Security: ファイアウォール、マルウェアスキャン、ログイン保護
- iThemes Security: 50以上のセキュリティ対策を自動化
- Sucuri Security: 改ざん検知、ハードニング、DDoS対策
- All In One WP Security: 初心者向け、日本語対応
💡 移行後のセキュリティチェックリスト
- ✅ HTTPS化完了(SSL証明書有効)
- ✅ wp-config.phpパーミッション600
- ✅ ファイル編集無効化(DISALLOW_FILE_EDIT)
- ✅ デバッグモードOFF
- ✅ 強固なパスワード設定(16文字以上)
- ✅ 二段階認証有効化
- ✅ 自動バックアップ設定(週1回以上)
- ✅ セキュリティプラグイン導入
- ✅ WordPress・プラグイン・テーマを最新版に更新
- ✅ 不要なプラグイン・テーマを削除
おすすめレンタルサーバー3選
WordPress移行先として最適なレンタルサーバーを3つ厳選しました。すべてWordPress高速化・セキュリティ対策に優れ、初心者でも安心して使えます。
| サーバー名 | 料金 | 主な特徴 | おすすめポイント |
|---|---|---|---|
| ConoHa WING | 月額968円〜 (WINGパック12ヶ月) |
• 国内最速(独自調査) • WordPress簡単移行ツール • 無料SSL(Let’s Encrypt) • 自動バックアップ14日間 • WAF標準搭載 • HTTP/3対応 • 初期費用0円 |
✅ 移行初心者に最適 簡単移行ツールでワンクリック移行可能 管理画面が使いやすく、初心者でも安心 ConoHa WING 公式サイト |
| エックスサーバー | 月額990円〜 (スタンダード12ヶ月) |
• 運用実績19年 • WordPress簡単移行 • 無料独自SSL • 自動バックアップ14日間 • Xアクセラレータ(高速化) • 電話サポート充実 • 初期費用0円 |
✅ 信頼性・安定性重視 国内シェアNo.1、稼働率99.99% サポート対応が非常に丁寧 エックスサーバー 公式サイト |
| ロリポップ! | 月額550円〜 (ハイスピード12ヶ月) |
• 格安・高コスパ • WordPress簡単インストール • 無料独自SSL • 自動バックアップ(有料330円/月) • LiteSpeed採用 • 電話サポートあり • 初期費用0円 |
✅ コストを抑えたい方 月額550円〜の低価格 個人ブログ・小規模サイトに最適 ロリポップ! 公式サイト |
💡 サーバー選びのポイント
- 初心者・移行が不安: ConoHa WING(簡単移行ツールあり、管理画面が直感的)
- 企業サイト・安定性重視: エックスサーバー(国内シェアNo.1、電話サポート充実)
- 個人ブログ・コスト重視: ロリポップ!(月額550円〜、コスパ最強)
各サーバーの簡単移行ツール比較
3社とも独自の移行ツールを提供しており、手動移行よりも圧倒的に簡単です。
- ConoHa WING: 「WordPress簡単移行」機能でURL・ユーザー名・パスワードを入力するだけで自動移行
- エックスサーバー: 「WordPress簡単移行」機能で移行元URL・ログイン情報を入力して自動移行
- ロリポップ!: 「WordPress簡単引っ越し」機能(ベータ版)、またはプラグイン移行推奨
🎉 期間限定キャンペーン情報
2025年現在、各サーバーでお得なキャンペーンを実施中です:
- ConoHa WING: WINGパック12ヶ月以上で月額最大55%OFF
- エックスサーバー: スタンダードプラン12ヶ月契約で初期費用0円 + ドメイン永久無料
- ロリポップ!: ハイスピードプラン12ヶ月契約で月額550円(通常1,100円の50%OFF)
キャンペーンは予告なく終了する場合があるため、お早めにご検討ください。
移行前・移行後チェックリスト
移行作業を確実に完了させるため、チェックリストを活用しましょう。印刷またはスクショして、作業中に確認してください。
| 移行前チェックリスト | 移行後チェックリスト |
|---|---|
|
環境確認 ☐ PHPバージョン確認(8.1以上推奨) ☐ MySQLバージョン確認(5.7以上) ☐ WordPressバージョン確認(6.4以上) ☐ メモリ制限確認(256MB以上) バックアップ ☐ ローカル環境の完全バックアップ ☐ データベースダンプ取得 ☐ 外部ストレージへ保存 本番環境準備 ☐ ドメイン取得完了 ☐ DNSレコード設定完了 ☐ SSL証明書発行完了 ☐ データベース作成完了 ☐ FTP接続情報確認 情報整理 ☐ ローカルURL記録 ☐ 本番URL記録 ☐ DB接続情報メモ ☐ FTP情報メモ |
表示確認 ☐ トップページ表示OK ☐ 個別投稿ページ表示OK ☐ 固定ページ表示OK ☐ カテゴリー・タグページ表示OK ☐ 検索機能動作OK ☐ 画像すべて表示OK ☐ CSSデザイン崩れなし ☐ JavaScript動作正常 管理機能確認 ☐ 管理画面ログインOK ☐ 投稿・編集動作OK ☐ メディアアップロードOK ☐ プラグイン動作正常 ☐ テーマ切り替え可能 セキュリティ確認 ☐ HTTPS化完了(SSL有効) ☐ wp-config.phpパーミッション600 ☐ デバッグモードOFF ☐ 強固なパスワード設定 ☐ 二段階認証有効化 ☐ セキュリティプラグイン導入 SEO・その他 ☐ Google Search Console登録 ☐ サイトマップ送信 ☐ robots.txt確認 ☐ 問い合わせフォーム動作OK ☐ 自動バックアップ設定 |
💡 チェックリストPDF版ダウンロード
より詳細なチェックリスト(全50項目)をPDF形式で用意しています。印刷して作業中に確認すると便利です。
※実際のサイトではPDFダウンロードリンクを配置
移行に最適なタイミングと注意点
移行作業のタイミングを間違えると、ビジネスに悪影響を及ぼす可能性があります。最適なタイミングと注意点を解説します。
移行に最適なタイミング
- アクセスが少ない時間帯: 深夜〜早朝(午前2時〜6時)が理想
- 週末・連休前を避ける: トラブル発生時にサポート対応が困難
- 大型キャンペーン期間を避ける: ECサイトはセール前後を避ける
- 作業時間を十分確保: 最低3-4時間、トラブル対応含めて6-8時間確保
- 検証期間を設ける: 移行後24-48時間は動作を綿密に監視
移行前の告知
ユーザーに事前告知することで、混乱を最小限に抑えられます。
告知方法:
- サイトトップにメンテナンス告知バナー設置(1週間前〜)
- SNS(X、Facebook等)で告知投稿
- 会員登録サイトはメールで告知
- 想定メンテナンス時間を明記(余裕を持って長めに設定)
告知例:
【サーバーメンテナンスのお知らせ】
2025年XX月XX日(X)午前2:00〜午前6:00の間、サーバーメンテナンスのため、Webサイトが一時的に閲覧できなくなります。ご不便をおかけしますが、ご理解・ご協力をお願いいたします。
メンテナンスモードの設定
移行作業中は、ユーザーに「メンテナンス中」画面を表示しましょう。
プラグインを使う方法:
- WP Maintenance Mode: シンプルなメンテナンスページを表示
- Coming Soon Page: カスタマイズ可能なメンテナンスページ
.htaccessで設定する方法:
# メンテナンスモード(一時的にサイト全体を503エラーに)
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.012 # 管理者IPは除外
RewriteCond %{REQUEST_URI} !^/maintenance\.html$ # メンテナンスページは除外
RewriteRule ^.*$ /maintenance.html [R=503,L]
# 503エラーを返す
ErrorDocument 503 /maintenance.html
Header set Retry-After "3600"
移行後の監視期間
移行後24-48時間は、以下を監視しましょう:
- アクセスログ(404エラーの急増がないか)
- エラーログ(PHP・データベースエラーがないか)
- 問い合わせフォームの動作(テスト送信を実施)
- 決済機能の動作(ECサイトの場合、テスト注文を実施)
- Google Search Console(クロールエラーの急増がないか)
⚠️ 移行後すぐに旧サーバーを解約しない
移行後1-2週間は、旧サーバーをそのまま残しておくことを強く推奨します。万が一、新サーバーで重大な問題が発生した場合、すぐに旧サーバーに戻せます。
よくある質問(FAQ)
Q1. 移行作業にどのくらい時間がかかりますか?
A. 移行方法とサイト規模により異なります:
- プラグイン移行(小規模サイト): 15-30分
- 手動移行(小〜中規模サイト): 60-120分
- WP-CLI移行(大規模サイト): 10-20分(慣れている場合)
- 初めての移行: 余裕を持って3-4時間確保を推奨
トラブル発生を考慮すると、初回は半日〜1日確保するのが安全です。
Q2. 移行後、SEO評価は下がりますか?
A. 適切に移行すれば、SEO評価は下がりません。以下を必ず実施してください:
- ✅ URLを変更しない(ドメイン変更の場合は301リダイレクト設定必須)
- ✅ Google Search Consoleに新サーバーのサイトマップを送信
- ✅ robots.txtでクローリングを許可
- ✅ HTTPS化完了(SSL証明書有効)
- ✅ 404エラーページがないか確認
むしろ、高速なサーバーに移行すれば、ページ速度改善でSEO評価が向上する可能性があります。
Q3. ローカル環境のURL構造を変えられますか?
A. はい、移行時に変更可能です。例えば、ローカル環境が http://localhost/mysite/ で、本番環境を https://example.com/ にする場合:
- 手動移行: SQLファイルでURL置換時に対応
- WP-CLI:
wp search-replace 'http://localhost/mysite' 'https://example.com' --all-tables - プラグイン: All-in-One WP Migration や Better Search Replace が自動対応
Q4. データベースのURLだけでなく、コード内のURLも置換が必要ですか?
A. 通常、データベース内のURL置換だけでOKです。ただし、以下の場合はコード内も確認が必要です:
- テーマファイル(functions.php、テンプレート等)にハードコーディングされたURLがある場合
- プラグインのカスタムコードにURLが記載されている場合
- CSSファイルに
background-image: url('http://localhost/...')等の記述がある場合
テーマ・プラグイン内を grep または wp search-replace で検索して確認しましょう。
Q5. 移行後、ログインパスワードは変わりますか?
A. いいえ、ログインパスワードは変わりません。ローカル環境と同じユーザー名・パスワードでログイン可能です。ただし、セキュリティ上、移行後に強固なパスワードへ変更することを強く推奨します(16文字以上、英数字+記号)。
Q6. プラグインは移行後も動作しますか?
A. ほとんどのプラグインは問題なく動作しますが、以下のプラグインは再設定が必要な場合があります:
- キャッシュプラグイン(WP Super Cache、W3 Total Cache等): キャッシュクリア必須
- バックアッププラグイン: バックアップ先の再設定
- SNS連携プラグイン: API キーの再設定
- 問い合わせフォーム: メール送信設定の確認
- 決済プラグイン: 本番環境用APIキーへ切り替え必須
移行後、すべてのプラグインの動作確認を行いましょう。
Q7. サーバー会社の簡単移行ツールは信頼できますか?
A. はい、ConoHa WING、エックスサーバー 等の大手サーバー会社の簡単移行ツールは高精度で信頼できます。ただし、以下の点に注意:
- 移行前に必ずバックアップを取得
- プラグイン数が多い場合(50個以上)は、一部動作しない可能性
- カスタマイズが複雑なサイトは、手動移行の方が確実
- 移行後の動作確認は必ず実施
Q8. 移行失敗したらどうすればいいですか?
A. 落ち着いて以下の手順で対処してください:
- エラーログを確認: サーバーの error_log または debug.log を確認
- バックアップから復元: 移行前のバックアップから復元(ローカル・本番両方)
- 段階的に原因特定: プラグイン無効化 → テーマ変更 → .htaccess削除の順で試す
- サーバーサポートに相談: ConoHa WING、エックスサーバー は電話・チャットサポート充実
- 専門家に依頼: どうしても解決できない場合は、WordPress専門業者に依頼(相場: 3万円〜10万円)
Q9. 移行作業を業者に依頼する場合の費用は?
A. WordPress移行代行の相場:
- 小規模サイト(10ページ未満): 2万円〜5万円
- 中規模サイト(10-100ページ): 5万円〜15万円
- 大規模サイト(100ページ以上): 15万円〜50万円
- カスタマイズが複雑: +5万円〜20万円
- 緊急対応(24時間以内): 通常料金の1.5-2倍
ConoHa WING や エックスサーバー の簡単移行ツールを使えば、自分で無料で移行できます。
Q10. 移行後もローカル環境を残しておくべきですか?
A. はい、必ず残してください。ローカル環境は以下の用途で引き続き活用できます:
- テスト環境: 新しいプラグイン・テーマを試す
- 開発環境: カスタマイズ・機能追加を安全にテスト
- バックアップ: 万が一本番サイトが消えた場合の復旧元
- 学習用: WordPress の仕組みを学ぶ
ローカル環境は定期的に本番環境と同期させると、常に最新の状態でテストできます。
まとめ
WordPressのローカル環境から本番環境への移行は、適切な手順を踏めば、初心者でも安全に完了できます。本記事で解説した内容を振り返りましょう。
移行方法の選び方(再掲)
- 初心者・小規模サイト: ConoHa WING または エックスサーバー の簡単移行ツールを使う
- 学習目的・細かい制御が必要: 手動移行(本記事セクション4)
- 大規模サイト・自動化: WP-CLI移行(本記事セクション6)
移行作業の重要ポイント5つ
- 必ずバックアップを取得: 3-2-1ルール(3つのコピー、2種類のメディア、1つはオフサイト)
- URL置換は慎重に: シリアライズデータに対応した方法を使う(WP-CLI、Better Search Replace)
- セキュリティ設定を忘れずに: HTTPS化、wp-config.php保護、パーミッション設定
- 移行後の確認を徹底: 全ページ・全機能の動作確認、24-48時間の監視期間
- 旧サーバーはすぐに解約しない: 1-2週間は残しておく
おすすめレンタルサーバー(再掲)
🚀 今すぐWordPressを高速・安全に公開しよう
✅ ConoHa WING(国内最速・簡単移行ツールあり)
- 月額968円〜、初期費用0円
- WordPress簡単移行ツールでワンクリック移行
- 無料SSL、自動バックアップ14日間、WAF標準搭載
- 【公式】ConoHa WING 詳細はこちら >>
✅ エックスサーバー(国内シェアNo.1・安定性抜群)
- 月額990円〜、初期費用0円
- 運用実績19年、稼働率99.99%
- 電話サポート充実、WordPress簡単移行あり
- 【公式】エックスサーバー 詳細はこちら >>
✅ ロリポップ!(コスパ最強・個人ブログに最適)
- 月額550円〜、初期費用0円
- 個人ブログ・小規模サイトに最適
- LiteSpeed採用、無料SSL、電話サポートあり
- 【公式】ロリポップ! 詳細はこちら >>
※各サーバーとも期間限定キャンペーン実施中。予告なく終了する場合があるため、お早めにご検討ください。
最後に
WordPress移行は、最初は難しく感じるかもしれませんが、一度経験すれば、次回からは自信を持って作業できるようになります。本記事が、あなたのWordPressサイト公開の一助となれば幸いです。
移行作業中にトラブルが発生しても、落ち着いて本記事の「トラブルシューティング完全ガイド」を参照してください。それでも解決できない場合は、ConoHa WING や エックスサーバー のサポートに相談しましょう。
あなたのWordPressサイト公開が成功することを心より願っています!🎉