副業で収入を伸ばす方法

WordPress簡単移行後にトップページだけ404になった原因|シンレンタルで実際に直した方法

「うわ、やっちまった……」

深夜のPCモニターの前で、思わず変な声が出た。
何時間もかけて慎重にWordPressを移行し、「よし、完了!」と意気揚々とトップページを開いた瞬間、画面に表示されたのは無慈悲な「404 Not Found」。

血の気が引くとは、まさにこのこと。
「バックアップからやり直しか?」「ファイル消しちゃった?」
当時の私のように、今まさに絶望の淵にいるあなた。
とりあえず、深呼吸しましょう。

もし、「トップページは404だけど、WordPressの管理画面には普通にログインできる」という状態なら、最悪の事態(データの完全消失)は免れています。
移行そのものは、ちゃんと成功している可能性が高い。
実はこれ、「index.html」という意外な伏兵が悪さをしているケースがあるんです。

この記事では、シンレンタルサーバーを使ってサブドメインからサブディレクトリへ移行した私のリアルな体験をもとに、「管理画面には入れるのにサイトが表示されない」原因と、安全な解決手順をお伝えします。
下手にファイルを消して完全に壊してしまう前に、一緒に一つずつ確認していきましょう。

WordPressを移行したのにトップページが404になった

苦労してデータのエクスポートやデータベースの書き換えを終え、いざ新サイトへアクセス。
そこで表示される「404」の文字を見たときの、あの膝から崩れ落ちるような感覚。痛いほど分かります。
まずは、焦る気持ちを抑えて、当時の私の状況を整理させてください。

今回の移行環境

私が直面したのは、シンレンタルサーバーでのドメイン変更を伴う移行作業でした。

具体的には、
旧URL:https://kirei.example.com/ (サブドメイン)
新URL:https://example.com/kirei/ (サブディレクトリ)
という、ブログ運営ではよくあるお引っ越しのパターン。

手順通りにファイルをアップロードして、データベースの設定も直した。
それなのに、新しいサイトのURL(https://example.com/kirei/)を叩くと、なぜか「404エラー(ページが見つかりません)」が返ってくる。
「なんで!? 手順通りにやったじゃん……」と、夜中に独り言をブツブツ言ってましたね。

管理画面には普通にログインできた

ただ、一つだけ救いがありました。
サイトのトップページは真っ白なのに、WordPressの管理画面(https://example.com/kirei/wp-admin/)には、いつも通りすんなりとログインできたんです。

ダッシュボードには過去の記事データも残っているし、プラグインも生きてる。
つまり、「WordPressのシステム自体は、新しい場所にちゃんと引っ越しできている」という証拠。
これが確認できただけで、少しだけ寿命が延びた気がしました。

あなたも今、管理画面には入れていませんか?
もしそうなら、どうか安心してください。移行作業自体は失敗していません。
例えるなら、家財道具の引っ越しは終わっているのに、表玄関の鍵が開いていないだけの状態なんです。

最初にWordPressのURL設定を確認した

とはいえ、サイトが見られないままでは困ります。
「管理画面に入れるのにサイトが404」という症状でググると、真っ先に出てくるのが「URL設定のミス」という情報でした。
「なんだ、単純な設定漏れか」と安堵しつつ、基本的な部分から潰していくことに。

WordPressアドレス

管理画面の「設定」メニューから「一般」を開きます。
ここにある「WordPress アドレス (URL)」。これが、WordPressのシステム本体がどこにあるかを示す重要な設定です。

確認してみると、ちゃんと新しいURL(https://example.com/kirei)になっていました。
ここが古いサブドメインのままだったら一発で原因確定だったんですが、どうやら違うらしい。

サイトアドレス

続いて、そのすぐ下にある「サイトアドレス (URL)」。
読者がアクセスするための表向きのURLですね。
ここも確認しましたが、同じく新しいURL(https://example.com/kirei)で一言一句間違っていませんでした。

「あれ、どっちも合ってるぞ……?」
URL設定が原因なら、ここを直せば終わるはず。しかし、設定は完璧。
嫌な汗がジワッと背中を伝うのを感じながら、私は次の「よくある原因」へと向かうことになりました。

パーマリンクを再保存しても直らなかった

URL設定が問題ないとなれば、次に疑うべきは「パーマリンク設定のバグ」。
WordPressのトラブルシューティングを調べたことがある人なら、一度は目にするお約束の解決策ですよね。

「なんだ、パーマリンクの空更新(何も変更せずに保存ボタンを押すこと)で直るパターンか。焦らせやがって」
そう自分に言い聞かせながら、管理画面の「設定」から「パーマリンク」を開きました。

設定内容は以前のまま。何もいじらずに、画面下にある「変更を保存」ボタンを力強くクリック。
これで内部のURL構造がリセットされて、無事にトップページが表示されるはず……。

祈るような気持ちで、新サイトのURLをリロード。
しかし、画面には相変わらず冷酷な「404 Not Found」の文字が。

ダメだ、直らない。
この時点で、私の頭の中には「再移行」「データベース破損」といった最悪のキーワードがちらつき始めました。
これまでに調べた王道のノウハウが、ことごとく通用しない。
もしあなたも今、パーマリンクを保存してもダメだった状態なら、当時の私と全く同じ焦燥感を味わっているはずです。でも、まだ諦めないでください。

ファイルマネージャーを見るとWordPress自体は移設されていた

「もしかして、移行中にエラーが起きて、必要なファイルがゴッソリ抜け落ちてるんじゃないか?」
そんな最悪の想像が頭をよぎり、私は急いでシンレンタルサーバーのサーバーパネルから「ファイルマネージャー」を開きました。(FTPソフトを使っている方も確認手順は同じです)

wp-admin・wp-content・wp-includesを確認

新しいサイトのディレクトリ(今回の場合は example.com/public_html/kirei/ などの階層)を開いてみると……。

そこには、見慣れたフォルダたちが綺麗に並んでいました。
・wp-admin(管理画面を動かすファイル群)
・wp-content(テーマやプラグイン、アップロードした大事な画像など)
・wp-includes(WordPressのコアシステム)

これらが消え去っていたら一巻の終わりでしたが、フォルダの容量を見ても中身はちゃんと詰まっている様子。どうやらデータが飛んだわけではなさそうです。

index.phpとwp-config.phpも存在していた

さらに下へスクロールして、WordPressの心臓部とも言える重要ファイルを確認します。
データベースとの接続情報を司る「wp-config.php」、そしてサイトを表示させるための起点となる「index.php」。
どちらも、間違いなくそこに存在していました。

「なんだよ、ファイルは全部無事に引っ越しできてるじゃないか」
「じゃあ、なんでトップページだけ表示されないんだ……!」

管理画面には入れる。
URL設定も間違っていない。
パーマリンクを更新してもダメ。
ファイルは全部揃っている。

完全に手詰まりかと思われたその時。
ファイルマネージャーの一覧をボーッと眺めていた私の目に、ある「違和感」が飛び込んできました。
これが、今回の404エラーを引き起こしていた真犯人だったんです。

原因は「index.html」という思わぬ伏兵だった

ファイルは全部ある。設定も合っている。なのに表示されない。
半ば諦めかけていた私の目に飛び込んできた「違和感」。

それは、WordPressの心臓部であるはずの index.php のすぐ近くに、そしらぬ顔で鎮座していたあるファイルでした。

index.phpとindex.htmlが同じディレクトリに同居している

「……ん? なんで index.html なんてファイルがあるんだ?」

WordPressは「PHP」というプログラムで動くシステムなので、サイトの表玄関の役割を果たすのは当然 index.php です。
しかしファイルマネージャーをよく見ると、 index.php と全く同じ階層(ディレクトリ)に index.html というファイルが紛れ込んでいたんです。

過去の自分を呪うか、サーバーの初期設定の罠か。
おそらく、新しいディレクトリ(今回の場合は kirei というサブディレクトリ)を作成した際、サーバー側が気を利かせて「初期表示用のページ」として自動生成した index.html が、そのまま残っていたのでしょう。

サーバーの仕様上、index.htmlが優先されてしまう

実はこれ、シンレンタルサーバーなどの多くのレンタルサーバーにおける「仕様」が引き起こした悲劇でした。

通常、読者が https://example.com/kirei/ というURL(ファイル名を指定しないURL)にアクセスしたとき、サーバーは「とりあえずindexと名前がつく表紙ファイルを表示しよう」と動きます。
このとき、同じ場所に index.html と index.php が両方あると、「index.htmlの方を優先して表示する」というルールになっているサーバーが非常に多いんです。

つまり、私がどれだけ完璧にWordPress(index.php)を移行しようとも、サーバー側は、
「あ、index.htmlがあるじゃん。こっちが表紙だな! はい、表示!」
と、中身が空っぽの初期ファイルを読み込んでいたという現実。

そりゃあ、WordPressのトップページが表示されるわけがありません。
だって、WordPressを呼び出す前に、別のファイルが「通行止め」の看板を持っていたようなものですから。
管理画面(wp-admin の中)には普通に入れていた理由も、これで完全に辻褄が合いました。

怖くて消せない!index.htmlを削除せず「リネーム」で検証した

原因がわかれば、あとはこの邪魔な index.html を排除するだけ。
「よっしゃ、これで解決だ! 即削除!」

……と、昔の私なら勢いよくゴミ箱アイコンを押していたでしょう。
でも、これまで何度も「不要だと思って消したファイルが実は超重要で、サイトが真っ白になって泣きながら再インストールする」という痛い目を見てきた私は、すっかり疑心暗鬼になっていました。

「もし、このindex.htmlがWordPressの何かに紐付いてたらどうしよう……」
ぶっちゃけ、怖くて消せなかったんです。

index.htmlを「index_old.html」へ変更して退避

そこで私が取ったのは、削除ではなく「リネーム(名前の変更)」という超・安全策。

ファイルマネージャー上で index.html を選択し、名前の変更をクリック。
ファイル名を index_old.html に書き換えました。
(※ _index.html でも index.html.bk でも、とにかく「index.html」以外の名前に変われば何でもOKです)

こうして名前を変えてしまえば、サーバーは「ここにはindex.htmlは存在しないな」と判断してくれます。
そして万が一、サイトの表示がおかしくなっても、名前を元に戻すだけで一瞬で復旧できる。まさに、ビビりな私にぴったりの「ノーリスク検証法」です。

恐る恐るサイトをリロード……ついに正常表示!

退避用ファイルへのリネームを終え、いよいよ運命の瞬間。

ブラウザに戻り、これまで何度更新しても「404」を返し続けた新しいトップページ(https://example.com/kirei/)で、祈るように「再読み込み」ボタンをクリックしました。

クルクルと回るブラウザのアイコン。
次の瞬間――。

そこには、見慣れた私のサイトのトップページが、デザイン崩れもなく完璧な状態で表示されていました。

「……よかったぁぁ!」
深夜の部屋に安堵のため息が響いたのを、今でも鮮明に覚えています。
データ破損でも、移行失敗でもなかった。ただ単に、不要な初期ファイルが蓋をしていただけだったんです。

今回の原因を改めて整理すると

すっかりパニックになっていた私ですが、冷静になって今回の騒動を振り返ってみると、実はとてもシンプルな仕組みのいたずらでした。

・WordPressのデータ移行やファイルアップロードは**「成功」していた
↓
・しかし移行先(新URL)のディレクトリに、サーバー側が用意した
「index.html(初期ファイル)」が元々存在していた
↓
・サーバーの仕様上、WordPress本体である
「index.php」よりも「index.html」が先に読み込まれる状態だった
↓
・結果として、空っぽの初期ファイルが表示され、本来の
WordPressが隠されて(表示されず)404状態になった
↓
・邪魔をしていたindex.htmlを
リネームして退避**させた
↓
・無事に「index.php」が読み込まれるようになり、サイトが正常表示された

これ、知っていれば「あぁ、あれね」と5分で解決する話なんですが、知らないと本当に「WordPressを壊してしまった……」と思い込んで、データベースをいじったり、ファイルを全削除してやり直したりと、傷口を広げてしまう典型的なパターンですよね。

管理画面にすら入れない「真っ白画面」ならともかく、「管理画面には普通に入れるのに、サイトだけが404」という今回のケース。
もしあなたも同じ状況なら、まずは落ち着いて「移行自体は上手くいっているはずだ」と自分に言い聞かせてください。

同じ症状なら、絶対にこの順番で確認してほしい

「じゃあ、自分のサイトもindex.htmlが原因なの?」と、今すぐファイルマネージャーを開きたくなったかもしれませんが、ちょっと待ってください。

トラブルシューティングで一番やってはいけないのが、「いきなり核心っぽいところを適当に触る」こと。
焦っている時こそ、基本から一つずつ原因を切り分けていくのが、泥沼にハマらない(そして心を病まない)ための鉄則です。

当時の私の経験を踏まえて、「サイトだけが404」になった時の安全な確認手順をリストアップしておきます。上から順番にチェックしてみてください。

  1. wp-admin(管理画面)にログインできるか
    まずはここ。ログインできればデータは生きています。深呼吸しましょう。
  2. WordPressアドレスは正しいか
    設定>一般から確認。ここが旧URLのままだと正常に動きません。
  3. サイトアドレスは正しいか
    同じく設定>一般。読者に見せる新しいURLになっているかチェック。
  4. パーマリンクを再保存してみる
    設定>パーマリンクを開き、何も変更せずに「変更を保存」をクリック。内部リンクのズレならこれで直ります。
  5. WordPressの主要ファイルは揃っているか
    ファイルマネージャー(またはFTP)で新ディレクトリを確認。「wp-admin」「wp-content」「wp-includes」の3兄弟は無事ですか?
  6. index.phpは存在しているか
    WordPressの表玄関です。これがないとサイトは表示されません。
  7. index.htmlが同じ場所に同居していないか
    今回の真犯人。もしあったら、削除ではなく「リネーム」して様子を見ます。
  8. .htaccessの記述はおかしくないか
    上記をすべて試してもダメなら、リダイレクトなどを制御する .htaccess ファイルが干渉している可能性があります。(※少し専門的なので、触る前に必ずバックアップを取ってください)

この順番で潰していけば、どこかで必ず「あ、これだ」という原因にぶち当たるはずです。
絶対に、「よく分からないけど、とりあえずこのファイルを消してみよう」というギャンブルだけは避けてくださいね。痛い目を見るのは、私たち自身ですから。

index.htmlは削除してもいい?

無事にサイトが表示されるようになると、途端にあの「index_old.html(元index.html)」が目障りに感じてくるはずです。
「もう原因は分かったし、さっさとゴミ箱に放り込んでスッキリしたい」
その気持ち、痛いほど分かります。

結論から言えば、削除してしまって問題ありません。
WordPressの動作には一切関与しない、ただの初期ファイルですからね。

とはいえ、私はすぐには消しませんでした。
「もし数日後にどこかでバグが出たらどうしよう……」という特有のビビり癖が発動し、結局1週間ほどリネームした状態のままサーバー上に放置していたんです。
結果的に何も起きなかったので後日そっと削除しましたが、この「すぐには消さない」という判断は、精神衛生上とても良かったと思っています。

絶対に失敗したくないなら、

  1. まずはリネームして退避
  2. サイトの表示と動作を数日チェック
  3. 全く問題ないと確信してから削除
    というステップを踏んでみてください。このワンクッションを挟むだけで、万が一の時に「名前を元に戻すだけ」という最強の保険が手に入ります。

サブドメインからサブディレクトリへ移行した場合は301も確認

404エラーも消えて、これにて一件落着……と言いたいところですが、最後に一つだけ忘れてはいけない作業があります。
それが「301リダイレクト」の設定。

今回のように、旧URL(https://kirei.example.com/)から新URL(https://example.com/kirei/)へ引っ越しをした場合。
そのまま放置すると、Googleからは「全く新しい別のサイトが誕生した」と認識されてしまいます。
つまり、これまであなたが夜な夜な眠い目をこすりながら書き溜め、コツコツ育ててきたサイトの評価(SEOのパワー)がゼロにリセットされてしまうという恐ろしい事態に。

それを防ぐのが、「古い住所にアクセスしてきた読者やGoogleのロボットを、新しい住所へ自動転送する」301リダイレクトという仕組みです。

シンレンタルサーバーであれば、サーバーパネルの「サイト転送設定」などから比較的簡単に設定できるはずです。(あるいは .htaccess に数行追記する方法もあります)
トップページが表示されなくて顔面蒼白になっていた数時間前に比べれば、なんてことのない作業。
せっかくの苦労を無駄にしないためにも、一息ついたら必ずこの転送設定まで終わらせて、「真の移行完了」を迎えてください。

まとめ|管理画面に入れるなら移行失敗とは限らない

真夜中のPCモニターに映し出された「404 Not Found」。
「嘘だろ……また最初からやり直しかよ……」と絶望するあの心臓がキュッとなる感覚は、経験した者にしか分からない恐怖ですよね。

でも、今回お伝えしたように、**「WordPressの管理画面にはログインできる」**という事実さえあれば、最悪の事態は免れています。
あなたの書いた記事も、設定したプラグインも、ちゃんと新しい場所で生きています。ただ、ちょっとしたファイルの優先順位のせいで、表玄関のシャッターが閉まっていただけ。

特に、シンレンタルサーバーなどへ移行した際に発生する「index.htmlとindex.phpの同居問題」は、知らなければ絶対に気づけない理不尽な罠です。
「自分が何か致命的なミスをしたんじゃないか」と自分を責める前に、まずは落ち着いてファイルマネージャーを開いてみてください。

無事にあなたのサイトが表示され、明日からのブログ運営に再び熱中できることを祈っています。
孤独で神経をすり減らす移行作業、本当にお疲れ様でした。今日はもう、ゆっくり寝ましょう。

-副業で収入を伸ばす方法