2026年5月20日
2026年5月20日
サイト移転後に404エラーが大量発生する場合の対処法
はじめに
WordPressのサイトを移転(サーバー移行やドメイン変更)した後に、ページが軒並み404エラーになることがあります。移転作業で複数の設定が変わるため、確認すべきポイントが多いです。落ち着いて順番に確認していきましょう。
症状・原因
移転後の404エラーの特徴:
- 移転直後から全ページが404になった
- トップページは表示されるが、他のページが404
- URLが旧ドメインのままになっている
- 管理画面にすらアクセスできない
主な原因:
1. データベース内のURLが旧サーバー/旧ドメインのまま
2. wp-config.phpのDB接続情報が古い
3. .htaccessが移転先に存在しない・内容が不正
4. WordPressの「サイトアドレス」が旧URLのまま
解決手順
ステップ1:wp-config.phpのDB設定を確認
移転先サーバーのwp-config.phpでデータベース接続情報が正しいか確認します:
define('DB_NAME', '新サーバーのDB名');
define('DB_USER', '新サーバーのDBユーザー名');
define('DB_PASSWORD', '新サーバーのDBパスワード');
define('DB_HOST', 'localhost'); // または新サーバーのホスト名
管理画面にアクセスできるなら、DB設定は正しいです。次へ進みます。
ステップ2:WordPressのサイトURLを修正する
管理画面にアクセスできる場合:
- 「設定」→「一般」で「WordPress アドレス」と「サイトアドレス」が新URLになっているか確認・修正
管理画面にアクセスできない場合はwp-config.phpに追加:
define('WP_HOME', 'https://new-example.com');
define('WP_SITEURL', 'https://new-example.com');
ただしこの設定は管理画面の設定より優先されるので、修正後は削除します。
ステップ3:データベース内のURLを一括置換する
データベース内に旧URLが残っていると、内部リンクや画像URLが壊れます。Search Replace DBなどのツールや、WP-CLIで一括置換します。
WP-CLIの場合(推奨):
# ドライラン(置換せずに確認)
wp search-replace 'https://old-example.com' 'https://new-example.com' --dry-run
# 実際に置換
wp search-replace 'https://old-example.com' 'https://new-example.com'
phpMyAdminを使う場合:
-- wp_optionsテーブルのURLを更新
UPDATE wp_options SET option_value = REPLACE(option_value, 'https://old-example.com', 'https://new-example.com') WHERE option_name IN ('siteurl', 'home');
-- wp_postsテーブルの本文内URLを更新
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://old-example.com', 'https://new-example.com');
UPDATE wp_posts SET guid = REPLACE(guid, 'https://old-example.com', 'https://new-example.com');
ステップ4:.htaccessを確認・再生成する
移転先に.htaccessが存在するか、内容が正しいか確認します。
FTPで確認して、WordPressの標準設定を書き込みます(なければ作成):
# 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
その後、管理画面の「設定→パーマリンク設定→変更を保存」で再生成します。
ステップ5:パーマリンクを再保存する
管理画面にアクセスできるようになったら:
1. 「設定」→「パーマリンク設定」
2. 「変更を保存」をクリック
これで.htaccessのRewriteルールが新サーバーの環境に合わせて更新されます。
ステップ6:Googleへの新URL通知
移転後のSEO対策として:
1. Google Search Consoleに新サイトを登録
2. 旧サイトでSearch Consoleの「アドレス変更」機能を使用
3. 旧ドメインから新ドメインへの301リダイレクトを設定(旧サーバー継続時)
サブディレクトリ移転の場合
https://example.com/wp/からhttps://example.com/に移転した場合など、ディレクトリ構造が変わった場合は特に注意が必要です。
// 旧設定(サブディレクトリ)
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com/wp');
// 新設定(ルート)
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
index.phpのパスも確認・移動が必要な場合があります。
注意事項
- 移転前に必ずバックアップを取ってください
- データベースの一括置換は元に戻せないため、事前にDBのバックアップを取ること
- SSLの有無(httpとhttps)が変わった場合は置換でhttpとhttpsを正しく区別する
まとめ
移転後の404エラーは、①DB接続設定の確認、②サイトURLの修正、③DB内URLの一括置換、④.htaccessの再設定、⑤パーマリンクの再保存の順番で確認することで解決できます。
関連記事: