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の再設定、⑤パーマリンクの再保存の順番で確認することで解決できます。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ