WordPressで404エラーが出る原因と対処法

WordPressで404エラーが出るときは、最初に「本当にページが存在しないのか」「ページは存在するのにWordPressがURLを正しく判定できていないのか」を分けて考えることが重要です。

特に、トップページは表示できるのに投稿や固定ページだけ404になる場合は、パーマリンク設定、WordPressのrewrite rules、Apache環境の.htaccessなどが原因になっていることがあります。

30秒でわかる結論

30秒でわかる結論

  • WordPressの404は「ページ不存在」と「URL書き換え不具合」をまず分ける
  • トップページだけ表示でき、個別記事が404ならパーマリンク周辺を優先確認する
  • 管理画面の「設定 → パーマリンク」で変更を保存するとrewrite rulesを再生成できる
  • Apache環境では.htaccessの破損・書き込み失敗・mod_rewrite設定も確認対象
  • カスタム投稿タイプではスラッグ競合やrewrite rules未更新で404になることがある
  • サーバー移転後は.htaccess・Webサーバー設定・URL構造の違いを確認する
  • 存在しないページを無理に復活させる必要はなく、本当に削除済みなら適切な404として扱う

WordPressの404エラーとは?

404は、アクセスしたURLに対応するページやファイルを見つけられないときに返されるHTTPステータスコードです。

WordPressでは、記事が本当に存在しない場合だけでなく、URLを書き換えるルールがうまく働いていないために404になることがあります。

404 = 必ず「記事が削除された」という意味ではない

そのため、WordPressの404では「URLが間違っている」「記事がない」「パーマリンク処理が壊れている」の3方向から切り分けます。

最初に症状を分ける

症状 考えやすい原因
1ページだけ404 URL違い・記事削除・スラッグ変更
投稿だけ全部404 パーマリンク・rewrite rules
固定ページだけ404 スラッグ競合・rewrite rules
カスタム投稿だけ404 投稿タイプ登録・rewrite rules
移転後に多数404 .htaccess・Webサーバー設定・URL変更
トップページも404 WordPress設置先・ドメイン・サーバー設定も確認

最初の判断

トップページが表示できるか、1ページだけか、複数ページかを確認すると調査範囲を絞りやすくなります。

原因1.URL・スラッグが変わっている

もっとも単純な原因は、アクセスしているURLが現在のページURLと一致していないことです。

確認すること

  • 記事が公開状態になっているか
  • スラッグを変更していないか
  • カテゴリー構造を変更していないか
  • パーマリンク構造を変更していないか
  • URLを手入力していないか

記事編集画面から現在のパーマリンクを確認し、そのURLを直接開いて表示できるか確認します。

例

旧URL:example.com/old-page/
新URL:example.com/new-page/

スラッグを変更したのに旧URLから新URLへリダイレクトしていなければ、旧URLは404になることがあります。

原因2.パーマリンクのrewrite rulesが正しくない

WordPressは「example.com/sample-post/」のようなURLを、そのまま物理ファイルとして探しているわけではありません。 rewrite rulesによってURLを解析し、どの投稿・固定ページを表示するか判断します。

このrewrite rulesが古い、壊れている、正しく反映されていない場合、実際には記事が存在していても404になることがあります。

最初に試す対処

WordPress管理画面の「設定 → パーマリンク」を開き、現在の設定を確認したうえで「変更を保存」を実行します。

WordPress公式では、パーマリンク設定を保存するとrewrite rulesが再生成されることが案内されています。 設定内容を変更しなくても、保存によってルールを更新できる場合があります。

パーマリンクを保存すると何が起きる?

WordPressはURL書き換えルールをデータベースに保存しています。 パーマリンク設定を保存すると、このrewrite rulesが更新されます。

1.管理画面を開く
設定 → パーマリンク
2.現在の構造を確認
意図しない変更がないか確認
3.変更を保存
rewrite rulesを再生成
4.404ページを再確認

何度も繰り返す必要はない

rewrite rulesの再生成は必要なときだけ行います。プラグインやテーマのコードで毎回ページ表示時にflushする設定は処理負荷が大きく、WordPress公式でも避けるよう案内されています。

原因3..htaccessが壊れている

Apache系Webサーバーでは、WordPressの「きれいなパーマリンク」を動かすために.htaccessが使われる構成があります。

.htaccessが削除された、書き換えに失敗した、WordPressのrewriteルールが消えた場合、トップページは表示できても投稿ページが404になることがあります。

確認する場面

  • .htaccessを編集した直後
  • サーバー移転直後
  • セキュリティ設定を変更した直後
  • パーマリンク設定を変更した直後
  • Apache系サーバーで個別記事だけ404になる

.htaccessをいきなり削除しない

独自のリダイレクト、アクセス制限、セキュリティ設定が入っている場合があります。編集前に必ずバックアップしてください。

.htaccessを再生成する基本手順

Apache環境で.htaccessが原因と考えられる場合は、次の順番で確認します。

1.現在の.htaccessを保存
ファイルをバックアップ
2.WordPress管理画面でパーマリンクを保存
自動更新されるか確認
3.書き込めない場合
サーバーの権限・公式マニュアルを確認
4.ページ表示を再確認

WordPress公式の.htaccess資料には標準的なWordPress rewriteルールの例がありますが、サブディレクトリ設置やマルチサイトなどでは内容が異なります。 他サイトの.htaccessをそのままコピーするのは避けてください。

原因4.Apacheのmod_rewriteが利用できない

ApacheでPretty Permalinksを利用する構成では、mod_rewriteが必要になることがあります。

WordPress公式のトラブルシューティングでも、Pretty Permalinksで404が出る場合、mod_rewriteが有効になっていない可能性が案内されています。

共用レンタルサーバーの場合

利用者がApache設定を直接変更できないことが多いため、管理画面の設定や公式マニュアルを確認し、それでも解決しなければサーバー会社へ問い合わせます。

原因5.Nginxへ移転したのに.htaccess前提になっている

Nginxは.htaccessを読み込みません。

ApacheからNginx系の環境へ移転した場合、旧サーバーの.htaccessをそのまま置いても同じrewrite処理は行われません。 Nginx側の設定が必要です。

Webサーバー WordPressのURL書き換え
Apache .htaccessを利用する構成あり
Nginx Nginx設定側で処理

共用レンタルサーバーでは事業者側がWordPress向け設定を用意していることが多いため、初心者がNginx設定を直接編集する必要は通常ありません。

原因6.カスタム投稿タイプのrewrite rules

商品、実績、スタッフ、FAQなどをカスタム投稿タイプで作っているサイトでは、その投稿タイプだけ404になることがあります。

WordPress公式では、カスタム投稿タイプで404になる場合、スラッグの競合を確認し、パーマリンク設定を保存してrewrite rulesを更新する方法が案内されています。

確認すること

  • カスタム投稿タイプと固定ページで同じスラッグを使っていないか
  • 投稿タイプのrewrite設定を変更していないか
  • テーマ・プラグイン更新後に発生していないか
  • パーマリンクを保存し直したか

スラッグ競合の例

固定ページ:/service/
カスタム投稿タイプ:/service/

同じURL構造が競合すると、意図したページをWordPressが判定できない場合があります。

原因7.テーマ・プラグインがrewrite rulesを変更している

一部のテーマやプラグインは、独自URL、カスタム投稿タイプ、会員ページ、ECページなどのためにrewrite rulesを追加します。

更新や設定変更の直後から404が出た場合は、その変更との関係を確認します。

1.直前の変更を確認
2.パーマリンクを保存
3.問題のプラグイン候補を確認
4.安全な環境で停止テスト
5.原因を特定して更新・設定修正

本番サイトで全部一括停止しない

EC、フォーム、セキュリティなど重要機能が止まる可能性があります。可能ならステージング環境で再現し、1つずつ切り分けてください。

原因8.サーバー移転後にURL構造が合っていない

サーバー移転後に404が増えた場合は、WordPressファイルのコピーだけでなくURL書き換え環境も確認します。

移転後の確認項目

  • WordPressアドレス・サイトアドレス
  • パーマリンク設定
  • .htaccess
  • Apache / Nginxの違い
  • サブディレクトリ構成
  • ドメイン変更の有無
  • 旧URLからのリダイレクト

特に「トップページは表示できるが下層ページが404」という場合は、WordPressファイル自体よりrewrite設定を優先して確認します。

原因9.記事を削除・非公開にしている

記事や固定ページが削除済みなら、そのURLが404になるのは正常な場合があります。

また、下書き・非公開・ゴミ箱へ移したページは、一般の訪問者から以前のURLで表示できなくなることがあります。

本当に削除したページなら

404を無理に直すのではなく、代替ページがあるかを判断します。内容が移転したなら301リダイレクト、代替がなければ404のままにする選択があります。

404のSEO上の考え方や、削除ページを404・410・301のどれにするかは、別記事「404エラーとは?SEOへの影響と対処法」で扱います。

WordPressで404が出たときの対処手順

闇雲に設定を書き換えず、影響の小さい確認から進めます。

STEP1.URLと公開状態を確認
記事が存在するか、現在URLが正しいか確認
STEP2.発生範囲を確認
1ページだけか、投稿全体か、サイト全体かを確認
STEP3.パーマリンクを保存
rewrite rulesを更新
STEP4..htaccess・Webサーバー設定を確認
Apache / Nginxを区別
STEP5.テーマ・プラグインを確認
直前変更とrewrite競合を切り分け
STEP6.サーバー移転・URL変更を確認
STEP7.本当に存在しないページなら404として扱う

対処1.記事の現在URLを確認する

WordPress管理画面から対象記事を開き、現在のパーマリンクを確認します。

旧URLを開いているだけなら、WordPress設定を変更する必要はありません。 必要に応じて旧URLから新URLへリダイレクトします。

対処2.パーマリンク設定を保存する

トップページは正常で複数の投稿ページだけ404になる場合は、管理画面の「設定 → パーマリンク」を開きます。

手順

  1. WordPress管理画面へログイン
  2. 「設定」を開く
  3. 「パーマリンク」を開く
  4. 現在の設定が正しいか確認
  5. 「変更を保存」を押す
  6. 404だったURLを再確認

この操作はWordPress公式でも、Pretty Permalinksやカスタム投稿タイプの404対処として案内されています。

対処3..htaccessを書き換える前にバックアップする

パーマリンク保存で解決せず、Apache環境で.htaccessに問題が疑われる場合は、まず現在のファイルをダウンロードして保存します。

その後、レンタルサーバー公式マニュアルやWordPress公式の標準ルールと照合します。

独自設定を消さない

.htaccessにはWordPress以外にも、HTTPSリダイレクト、Basic認証、アクセス制限、キャッシュ設定などが入る場合があります。WordPress標準部分だけを見てファイル全体を上書きしないでください。

対処4.キャッシュを削除して確認する

サーバーキャッシュ、WordPressキャッシュ、CDNなどに古い404応答が残っている場合があります。

URLやrewrite設定を修正したあとも404が続くときは、利用している範囲のキャッシュを削除し、別ブラウザやシークレットウィンドウでも確認します。

ただし、キャッシュ削除だけでrewrite rules自体が直るわけではありません。設定修正後の再確認手段として使います。

対処5.エラーログ・アクセスログを確認する

原因が分からない場合は、サーバーのアクセスログやエラーログを確認します。

ログ 確認できること
アクセスログ どのURLへ404が発生しているか
エラーログ Webサーバー・PHP側エラーの有無

404だけならPHPエラーが記録されない場合もありますが、サーバー移転や設定ミスが絡むと別のエラーが同時に出ていることがあります。

管理画面に入れない場合はどうする?

管理画面へ入れないためパーマリンクを保存できない場合は、まず管理画面に入れない原因を分けて確認します。

SSHとWP-CLIを使える管理者なら、WordPress公式のwp rewrite flushでrewrite rulesを更新できます。 ただし、初心者が本番環境で無理にコマンド操作する必要はありません。

共用レンタルサーバー利用者

管理画面へ入れず、ファイルやWebサーバー設定も判断できない場合は、変更履歴をまとめてレンタルサーバーのサポートへ相談する方が安全です。

404と500・403の違い

コード 主な意味 WordPressでの例
404 対象が見つからない URL・rewrite・削除ページ
403 アクセス拒否 権限・WAF・アクセス制限
500 サーバー内部エラー PHP・プラグイン・.htaccess構文

.htaccessが原因でも、内容によって404になる場合と500になる場合があります。 エラーコードを確認してから対処してください。

404ページをトップページへ全部転送してよい?

おすすめしません。

存在しないURLをすべてトップページへ301リダイレクトすると、利用者は探していた情報を見つけにくくなります。 削除したページに明確な代替先がある場合だけ、対応するページへリダイレクトします。

判断基準

  • 同じ内容の新URLがある → 301を検討
  • 代替となる近いページがある → 内容を確認して301を検討
  • 代替がない → 404のままでよい場合がある

どんな場合にサーバー会社へ相談する?

相談を検討する状況

  • パーマリンク保存でも直らない
  • .htaccessを書き込めない
  • mod_rewriteの有効状態を確認できない
  • サーバー移転直後から多数の404が出る
  • Webサーバー設定を利用者側で変更できない
  • 自分以外のサイトでも同時に障害が出ている

問い合わせ時は「トップページは表示できる」「投稿ページだけ404」「パーマリンク保存済み」「移転日時」など、確認済み事項を伝えると調査が進みやすくなります。

教科書判定

教科書判定

WordPressの404は、まず「ページ不存在」か「rewrite不具合」かを分ける

初心者が最初に行うべきなのは、.htaccessをいきなり編集することではありません。

URL・公開状態を確認 → 発生範囲を確認 → パーマリンクを保存 → それでも直らなければ.htaccess・Webサーバー・テーマ・プラグインを確認という順番で進めてください。

トップページは正常で投稿全体が404ならパーマリンク周辺、1ページだけならURL・スラッグ・削除状態を優先して確認するのが基本です。

FAQ

Q.パーマリンク設定を保存するだけで404が直ることはありますか?

あります。WordPressはパーマリンク設定の保存時にrewrite rulesを更新するため、ルールが古い・反映されていないことが原因なら解決する場合があります。

Q.トップページは表示できますが記事だけ404です。何を確認しますか?

まず記事の現在URLを確認し、次に「設定 → パーマリンク」で設定を保存します。Apache環境で直らなければ.htaccessやmod_rewriteも確認対象です。

Q..htaccessを削除すれば直りますか?

安易に削除しないでください。HTTPSリダイレクトやアクセス制限など独自設定が入っている場合があります。必ずバックアップし、サーバー構成を確認してから対応してください。

Q.Nginxでも.htaccessを直せばよいですか?

いいえ。Nginxは.htaccessを読み込みません。Nginx側のrewrite設定が必要です。共用レンタルサーバーでは運営会社が管理していることが多いため、公式マニュアルやサポートを確認してください。

Q.削除した記事が404になるのは問題ですか?

必ずしも問題ではありません。本当に存在しないページなら404は正常な応答です。同じ内容の新ページがある場合は301リダイレクトを検討します。

まとめ

この記事の結論

  • WordPressの404はページ不存在とrewrite不具合を分ける
  • 1ページだけならURL・スラッグ・公開状態を確認する
  • 複数投稿が404ならパーマリンクを保存してrewrite rulesを更新する
  • Apacheでは.htaccess・mod_rewriteも確認対象
  • Nginxでは.htaccessではなくNginx側の設定を確認する
  • カスタム投稿タイプではスラッグ競合にも注意する
  • 移転後404はWebサーバーとURL構造の違いを確認する
  • 本当に削除したページは無理に復活させず404として扱う場合もある

WordPressの404は、原因を分けずに.htaccessやプラグインを触ると問題を広げやすいトラブルです。 まず「どの範囲で404が起きているか」を確認し、影響の小さい方法から順番に対処してください。

次に読む

「.htaccessとは?WordPressでの役割を初心者向けに解説」「404エラーとは?SEOへの影響と対処法」「301リダイレクトとは?設定方法とSEO上の注意点」もあわせて確認してください。