WordPress 404 Not Found エラー
「404 Not Found」「お探しのページが見つかりません」と表示されるエラーの原因と解決方法を詳しく解説します。投稿ページ、固定ページ、カテゴリーページなど、様々な404エラーに対応します。
⚠️ このような症状が出ていませんか?
- 投稿ページにアクセスすると「404 Not Found」と表示される
- トップページは表示されるが、個別記事が404エラーになる
- カテゴリーページ、タグページが404エラーになる
- 固定ページが404エラーになる
- 画像ファイルにアクセスできない
- 削除したページなのに検索結果に表示される
主な原因
1. パーマリンク設定の問題
最も多い原因です。パーマリンク設定が正しく保存されていない、または.htaccessが正しく生成されていない場合に発生します。
2. .htaccessファイルの問題
.htaccessファイルが存在しない、破損している、またはパーミッション設定が間違っている場合です。
3. ページが実際に存在しない
削除されたページ、URLが間違っている、またはスラッグ(URL)が変更された場合です。
4. プラグインの競合
SEOプラグインやリダイレクトプラグインが誤った設定をしている場合があります。
5. サーバー移転時の設定漏れ
サーバーを移転した際、.htaccessが正しくアップロードされていない、またはmod_rewriteが有効になっていない場合です。
解決方法(優先度順)
パーマリンク設定を再保存
最も効果的で簡単な解決方法です。99%のケースでこれだけで解決します。
手順:
- WordPress管理画面にログイン
- 「設定」→「パーマリンク設定」をクリック
- 何も変更せず、ページ下部の「変更を保存」ボタンをクリック
- サイトにアクセスして確認
.htaccessファイルを確認・再作成
管理画面にアクセスできない場合、または上記の方法で解決しない場合の対処法です。
手順:
- FTPでサーバーに接続
- WordPressのルートディレクトリ(public_htmlなど)を開く
- .htaccessファイルがあるか確認(隠しファイルなので表示設定を確認)
- .htaccessがない、または破損している場合は新規作成
- 以下の内容を記述:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
- ファイルのパーミッションを「644」に設定
- 保存してアップロード
RewriteBase / を RewriteBase /サブディレクトリ名/ に変更してください。
mod_rewriteが有効か確認
サーバーでmod_rewriteモジュールが有効になっているか確認します。
確認方法:
- 以下の内容で
info.phpファイルを作成:
- FTPでWordPressのルートディレクトリにアップロード
- ブラウザで
https://あなたのドメイン/info.phpにアクセス - 「Loaded Modules」セクションに「mod_rewrite」があるか確認
- 確認後、info.phpは必ず削除(セキュリティリスクのため)
mod_rewriteが無効の場合、レンタルサーバーの管理画面で有効化するか、サーバー会社に問い合わせてください。
プラグインを無効化
プラグインが原因かどうかを確認します。
手順:
- FTPで
/wp-content/plugins/フォルダを開く - 「plugins」フォルダ名を「plugins_old」に変更
- サイトにアクセスして確認
- 解決すれば、フォルダ名を戻してプラグインを一つずつ有効化
パーマリンク構造を変更
現在のパーマリンク構造で問題が解決しない場合、別の構造を試します。
手順:
- 「設定」→「パーマリンク設定」を開く
- 「基本」を選択して保存
- 問題が解決するか確認
- 解決すれば、希望のパーマリンク構造に戻して再度保存
リダイレクトプラグインをチェック
RedirectionやYoast SEOなどのプラグインで誤ったリダイレクト設定をしている可能性があります。
確認ポイント:
- Redirection: すべてのリダイレクトルールを確認
- Yoast SEO: 「検索での見え方」設定を確認
- All in One SEO: リダイレクト設定を確認
データベースを確認
ページは存在するのに404エラーになる場合、データベースに問題がある可能性があります。
手順:
- phpMyAdminを開く
wp_postsテーブルを確認- 該当ページの
post_statusが「publish」になっているか確認 - 「draft」や「trash」になっている場合は「publish」に変更
カスタム404ページの作成
404エラーは完全には防げないので、ユーザーフレンドリーな404ページを作成することも重要です。
テーマに404.phpを作成
- 使用しているテーマのフォルダを開く
404.phpファイルを作成(すでにある場合は編集)- 以下の要素を含める:
- わかりやすいエラーメッセージ
- サイト内検索フォーム
- 人気記事や最新記事へのリンク
- トップページへのリンク
予防策
1. URLを変更する際は301リダイレクト
- 記事のスラッグを変更する場合は、旧URLから新URLへ301リダイレクトを設定
- Redirectionプラグインなどを活用
2. パーマリンク構造は変更しない
- 一度決めたパーマリンク構造は変更しない
- やむを得ず変更する場合は、すべてのページにリダイレクトを設定
3. 定期的にリンク切れをチェック
- Broken Link Checkerプラグインで内部リンクをチェック
- Google Search Consoleで404エラーを監視
4. ページを削除する前に確認
- 削除するページへの外部リンクがないか確認
- 重要なページは削除ではなく「下書き」にする
よくある質問
Q1. トップページは表示されるのに投稿ページが404になります
A. パーマリンク設定の問題です。「設定」→「パーマリンク設定」で「変更を保存」をクリックしてください。これだけで99%解決します。
Q2. .htaccessファイルが見つかりません
A. 隠しファイルなので、FTPソフトの設定で「隠しファイルを表示」をONにしてください。それでも見つからない場合は、新規作成してください。
Q3. パーマリンク設定を保存しても解決しません
A. .htaccessファイルのパーミッション(アクセス権限)を確認してください。644に設定する必要があります。また、WordPressが.htaccessに書き込む権限があるか確認してください。
Q4. 特定のページだけ404エラーになります
A. そのページのスラッグ(URL)に問題がある可能性があります。管理画面でページを編集し、パーマリンクを確認・変更してみてください。
Q5. 404エラーはSEOに悪影響ですか?
A. 存在しないページに404エラーが表示されるのは正常な動作なので、SEOに悪影響はありません。ただし、本来存在すべきページが404エラーになっている場合は、早急に修正する必要があります。
まとめ
404エラーが出た時のチェックリスト
- ✓ 「設定」→「パーマリンク設定」で「変更を保存」をクリック
- ✓ .htaccessファイルの存在とパーミッションを確認
- ✓ プラグインを一時的に無効化して確認
- ✓ mod_rewriteが有効になっているか確認
- ✓ リダイレクト設定を確認
- ✓ 解決後、ユーザーフレンドリーな404ページを作成
404エラーは、ほとんどの場合パーマリンク設定の再保存だけで解決します。それでも解決しない場合は、このページで紹介した方法を順番に試してみてください。