⚠️ このような症状が出ていませんか?

主な原因

1. パーマリンク設定の問題

最も多い原因です。パーマリンク設定が正しく保存されていない、または.htaccessが正しく生成されていない場合に発生します。

2. .htaccessファイルの問題

.htaccessファイルが存在しない、破損している、またはパーミッション設定が間違っている場合です。

3. ページが実際に存在しない

削除されたページ、URLが間違っている、またはスラッグ(URL)が変更された場合です。

4. プラグインの競合

SEOプラグインやリダイレクトプラグインが誤った設定をしている場合があります。

5. サーバー移転時の設定漏れ

サーバーを移転した際、.htaccessが正しくアップロードされていない、またはmod_rewriteが有効になっていない場合です。

解決方法(優先度順)

パーマリンク設定を再保存

最も効果的で簡単な解決方法です。99%のケースでこれだけで解決します。

手順:
  1. WordPress管理画面にログイン
  2. 「設定」→「パーマリンク設定」をクリック
  3. 何も変更せず、ページ下部の「変更を保存」ボタンをクリック
  4. サイトにアクセスして確認
これで解決する理由:パーマリンク設定を保存すると、.htaccessファイルが自動的に再生成され、リライトルールが正しく設定されます。

.htaccessファイルを確認・再作成

管理画面にアクセスできない場合、または上記の方法で解決しない場合の対処法です。

手順:
  1. FTPでサーバーに接続
  2. WordPressのルートディレクトリ(public_htmlなど)を開く
  3. .htaccessファイルがあるか確認(隠しファイルなので表示設定を確認)
  4. .htaccessがない、または破損している場合は新規作成
  5. 以下の内容を記述:
# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
  1. ファイルのパーミッションを「644」に設定
  2. 保存してアップロード
サブディレクトリにインストールしている場合:RewriteBase /RewriteBase /サブディレクトリ名/ に変更してください。

mod_rewriteが有効か確認

サーバーでmod_rewriteモジュールが有効になっているか確認します。

確認方法:
  1. 以下の内容で info.php ファイルを作成:
  1. FTPでWordPressのルートディレクトリにアップロード
  2. ブラウザで https://あなたのドメイン/info.php にアクセス
  3. 「Loaded Modules」セクションに「mod_rewrite」があるか確認
  4. 確認後、info.phpは必ず削除(セキュリティリスクのため)

mod_rewriteが無効の場合、レンタルサーバーの管理画面で有効化するか、サーバー会社に問い合わせてください。

プラグインを無効化

プラグインが原因かどうかを確認します。

手順:
  1. FTPで /wp-content/plugins/ フォルダを開く
  2. 「plugins」フォルダ名を「plugins_old」に変更
  3. サイトにアクセスして確認
  4. 解決すれば、フォルダ名を戻してプラグインを一つずつ有効化

パーマリンク構造を変更

現在のパーマリンク構造で問題が解決しない場合、別の構造を試します。

手順:
  1. 「設定」→「パーマリンク設定」を開く
  2. 「基本」を選択して保存
  3. 問題が解決するか確認
  4. 解決すれば、希望のパーマリンク構造に戻して再度保存

リダイレクトプラグインをチェック

RedirectionやYoast SEOなどのプラグインで誤ったリダイレクト設定をしている可能性があります。

確認ポイント:
  • Redirection: すべてのリダイレクトルールを確認
  • Yoast SEO: 「検索での見え方」設定を確認
  • All in One SEO: リダイレクト設定を確認

データベースを確認

ページは存在するのに404エラーになる場合、データベースに問題がある可能性があります。

手順:
  1. phpMyAdminを開く
  2. wp_posts テーブルを確認
  3. 該当ページの post_status が「publish」になっているか確認
  4. 「draft」や「trash」になっている場合は「publish」に変更

カスタム404ページの作成

404エラーは完全には防げないので、ユーザーフレンドリーな404ページを作成することも重要です。

テーマに404.phpを作成

  1. 使用しているテーマのフォルダを開く
  2. 404.php ファイルを作成(すでにある場合は編集)
  3. 以下の要素を含める:
    • わかりやすいエラーメッセージ
    • サイト内検索フォーム
    • 人気記事や最新記事へのリンク
    • トップページへのリンク
プラグインを使う方法:「404 to 301」などのプラグインを使うと、404ページを自動的にトップページや別のページにリダイレクトできます。ただし、SEO的には適切な404ページを表示する方が望ましいです。

予防策

1. URLを変更する際は301リダイレクト

2. パーマリンク構造は変更しない

3. 定期的にリンク切れをチェック

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エラーが出た時のチェックリスト

  1. ✓ 「設定」→「パーマリンク設定」で「変更を保存」をクリック
  2. ✓ .htaccessファイルの存在とパーミッションを確認
  3. ✓ プラグインを一時的に無効化して確認
  4. ✓ mod_rewriteが有効になっているか確認
  5. ✓ リダイレクト設定を確認
  6. ✓ 解決後、ユーザーフレンドリーな404ページを作成

404エラーは、ほとんどの場合パーマリンク設定の再保存だけで解決します。それでも解決しない場合は、このページで紹介した方法を順番に試してみてください。

関連ページ