WordPressで「403 Forbidden」「Access Denied」「このページにアクセスする権限がありません」と表示されたとき、サーバーは要求を受け取ったものの、アクセスを許可していません。サイトの消失やハッキングを意味する表示ではなく、防御機能、IP制限、ユーザー権限、サーバールール、ファイル権限などが関係します。
最初に行うのは、防御機能を全部止めることではありません。サイト全体、管理画面、特定の操作、特定の端末・回線のどこまで403になるかを分け、エラーが出たURLと時刻を記録します。
403を消すために、フォルダ権限を777へ変更したり、WAFやセキュリティ機能を無期限で無効化したりしないでください。拒否の原因を見失い、サイトを危険な状態にする可能性があります。
この記事では、403の範囲を切り分け、安全な確認から復旧、再発防止まで進める順番を解説します。
先に結論:403は7段階で確認する
| 順番 | 確認すること | 目的 |
|---|---|---|
| 1 | URL、時刻、操作、画面を記録 | ログと照合できる状態を作る |
| 2 | 公開ページ・管理画面・特定操作を比較 | 拒否の範囲を分ける |
| 3 | 別ブラウザ・端末・回線で1回比較 | Cookie、IP、回線依存を見分ける |
| 4 | 直前の変更とユーザー権限を確認 | 変更起因か権限不足かを絞る |
| 5 | WAF・CDN・セキュリティログを確認 | どのルールが拒否したかを探す |
| 6 | サーバールール・所有者・権限を確認 | WordPress外の制御を確認する |
| 7 | 最小限の修正後に防御を戻す | 安全な状態で復旧を完了する |
HTTPの仕様であるRFC 9110の403 Forbiddenは、サーバーが要求を理解したものの処理を拒否する状態です。401のように再ログインだけで解決するとは限らないため、どの層が拒否したかを確認します。
403と404・500の違い
| 表示 | 大まかな意味 | 最初の確認 |
|---|---|---|
| 403 Forbidden | 要求は理解されたがアクセスを拒否 | 制限、権限、防御ログ |
| 404 Not Found | URLに対応するページが見つからない | URL、公開状態、書き換え |
| 500 Internal Server Error | サーバー内部で処理に失敗 | 直前の変更、PHP、エラーログ |
| 「権限がありません」 | WordPress内の権限判定の場合がある | ログイン状態、ユーザー権限 |
URLが存在しない404とは確認先が異なります。表示が404ならWordPressの404エラーを安全に直す手順へ進んでください。重大なエラーや500ならWordPressの重大なエラーを復旧する手順が参考になります。

最初に403になる範囲を分ける
サイト全体が403になる
トップページ、複数の記事、管理画面がすべて403なら、WordPressの記事設定より手前にあるサーバー、WAF、CDN、IP制限、公開フォルダの権限を優先します。サーバー障害・メンテナンス情報と、直前の移行・復元・権限変更も確認してください。
管理画面だけ403になる
/wp-admin/やログイン画面だけ拒否されるなら、管理画面のIP制限、Basic認証、ログイン試行制限、セキュリティプラグイン、WAFルールが候補です。認証失敗やCookie問題も含めた確認はWordPress管理画面へ入れないときの直し方で分けています。
保存・更新・アップロードなど特定操作だけ403になる
記事閲覧や管理画面は開くのに、保存、プラグイン更新、画像アップロード、フォーム送信だけ失敗する場合は、送信内容やURLに対するWAF判定、ユーザー権限、REST API・AJAXの制限を確認します。画像だけの場合はWordPress画像アップロードエラーの確認順も参照してください。
特定の端末・回線・利用者だけ403になる
同じURLが別回線では開くなら、送信元IP、国・地域制限、VPN、プロキシ、Cookie、ログイン試行制限が候補です。解除を繰り返す前に、拒否されたIPと時刻を管理画面またはサポートへ伝えます。
設定を変える前に記録すること
- 403が出た完全なURL
- 発生日時とタイムゾーン
- 行った操作と入力内容の種類
- 画面に出たエラー文とサーバー名
- ログイン状態とユーザー権限
- 別ブラウザ・端末・回線での結果
- 直前の更新、移行、復元、設定変更
- 利用中のWAF、CDN、セキュリティ機能
個人情報、パスワード、Cookie、認証トークンが写らない範囲でスクリーンショットを残します。連続で同じ操作を繰り返すと、追加の自動ブロックを招く場合があるため、比較は必要最小限にします。

WAF・CDN・セキュリティ機能を確認する
WordPress公式のHardening WordPressでは、WordPress内で動くファイアウォール、WebサーバーのWAF、サイトの前段に置くリバースプロキシ型の防御が説明されています。同じ403でも、拒否した場所により確認画面が異なります。
発生時刻とブロックログを照合する
サーバーのWAFログ、CDNのセキュリティイベント、プラグインの監査ログを確認します。該当するURL、IP、時刻、ルール名が一致すれば、どの防御層が止めたか判断しやすくなります。
正規の操作が誤判定された場合も、WAF全体を無効にせず、対象URL・機能・送信元を限定した例外やサーバー会社の調整を検討します。例外設定の影響範囲が分からない場合は自分で追加しません。
IP制限とログイン防御を確認する
管理画面のIP制限、ログイン試行回数、国・地域制限、VPNの出口IPを確認します。WordPress公式のBrute Force Attacksでも、WAF・CDN・Webサーバーによるレート制限やIP制御が防御方法として案内されています。
自分のIPがブロックされていても、防御機能を削除する必要はありません。現在のIP、発生時刻、正規利用者であることを確認し、管理者またはサーバー会社の手順で解除します。基本的な安全対策はWordPressセキュリティ設定の基本も確認してください。
ユーザー権限とWordPress内の拒否を確認する
管理画面は開くがメニューが見えない、操作時に「権限がありません」と出る場合は、アカウントの権限グループと必要な権限を確認します。管理者、編集者、投稿者などでは利用できる操作が異なり、プラグインが独自権限を追加する場合もあります。
管理者権限を全員へ付けるのではなく、必要な操作だけを許可します。ログアウトして正しいアカウントへ入り直し、別の管理者がいる場合はユーザー編集画面で権限が意図どおりか見てもらいます。
REST APIや外部アプリだけ403になる場合は、ログイン状態、nonce、アプリケーションパスワード、API制限を分けます。通常のブラウザ表示が正常なら、サイト全体の権限変更へ進まず、対象連携の公式手順を確認してください。
.htaccessとWebサーバー設定を確認する
Apache環境
Apacheでは.htaccessに、特定ファイルの拒否、IP制限、Basic認証、書き換えルールが置かれる場合があります。WordPress公式のApache HTTPD / .htaccessにも、特定IPだけを許可する例や機密ファイルへのアクセスを拒否する例があります。
直前に.htaccessを編集したなら、現在ファイルを保存し、変更箇所とバックアップ版を比較します。WordPressが管理する範囲、サーバー会社が追加した範囲、プラグインが追加した範囲を混ぜて削除しないでください。
Nginx環境
WordPress公式のNginx解説にあるとおり、NginxにはApacheの.htaccessに相当するディレクトリ単位の設定ファイルがなく、管理者がサーバー側で設定します。Nginx環境で.htaccessだけを直しても解決しません。
別サイトの.htaccessやNginx設定をそのままコピーしないでください。公開範囲、設置ディレクトリ、キャッシュ、マルチサイト構成が異なると、サイト全体を拒否する可能性があります。
ファイル所有者と権限を確認する
移行・復元・手動アップロード後から403になった場合は、WordPressファイルの所有者と権限がWebサーバーの実行方式に合っているか確認します。特定画像やディレクトリだけ403なら、その場所だけ所有者が異なることもあります。
WordPress公式のChanging File Permissionsは、経験者が設置した環境では、権限エラーがなければむやみに変更しないよう案内しています。適切な値は設置方法やサーバーの実行方式で異なります。
「とりあえず777」は復旧手順ではありません。必要以上に書き込み可能な状態を作り、所有者不一致など本当の原因を隠します。サーバー会社へ対象パスと現在の所有者・権限を伝えて確認してください。

キャッシュが403を残していないか確認する
ルールを修正しても、CDNやページキャッシュに403応答が残る場合があります。オリジンサーバーでアクセス可能になったことを確認した後、対象URLのキャッシュを削除し、別回線で確認します。
無関係なキャッシュを一括削除する前に、対象URL、CDN、ブラウザ、WordPressキャッシュの順で範囲を分けます。詳しい順番はWordPressキャッシュを安全に削除する方法を参照してください。
サーバー会社へ伝える情報
- 403が出る完全なURLと操作
- 発生日時とタイムゾーン
- サイト全体・管理画面・特定操作の確認結果
- 利用者のIPと別回線での結果
- 直前の移行、復元、更新、設定変更
- WAF・CDN・セキュリティ機能の名称
- ブロックログの時刻・ルール名
- Apache・Nginxなどの構成
- 対象ファイル・フォルダのパスと権限
- 取得済みバックアップの日時
WordPress公式のServer configurationも、管理型サーバーでは設定変更前に提供元の文書・サポートを確認するよう案内しています。サーバー情報はWordPressサイトヘルスの見方で確認できますが、公開掲示板へパスやIPをそのまま貼らないでください。
修正後のチェックリスト
- 問題のURLがログアウト状態でも開く
- トップページと複数記事が正常に表示される
- 管理画面の必要な操作だけが使える
- 別端末・別回線でも正規利用者がアクセスできる
- WAF・CDN・セキュリティ機能が有効に戻っている
- 例外設定が対象URL・IPに限定されている
- ファイル権限を広げたままにしていない
- 画像アップロードやフォームが正常に動く
- キャッシュ削除後も403が再発しない
- 原因と修正日時を記録した
設定変更前にはファイルとデータベースを保存します。復旧可能な状態の作り方はWordPressバックアップの取り方、移行直後の確認はWordPress移行前後のチェックリストを参照してください。
よくある質問
403が出たら不正アクセスされていますか?
403だけでは断定できません。正規のWAF、IP制限、ユーザー権限、サーバールール、ファイル権限でも発生します。不審な管理者追加、ファイル改ざん、身に覚えのない設定変更など、別の兆候があるかを確認します。
WAFをOFFにすれば原因が分かりますか?
一時比較になる場合はありますが、初手で全体を無効化する必要はありません。先にブロックログを照合し、必要ならサーバー会社の管理下で短時間・対象限定のテストを行い、直後に戻します。
パーマリンクを保存すれば直りますか?
書き換えルールの不整合が原因なら関連しますが、WAF、IP制限、ユーザー権限、所有者不一致には効きません。403の範囲とログを確認せず、パーマリンク構造を変更しないでください。
まとめ:拒否した場所を特定して最小限に直す
WordPressの403は、サーバーが要求を拒否している合図です。サイト全体、管理画面、特定操作、特定回線のどこまで拒否されるかを分け、URLと時刻をWAF・CDN・サーバーログへ照合します。
防御機能の全停止や権限777ではなく、原因となったルール、IP、ユーザー権限、所有者だけを修正します。復旧後は防御設定、例外範囲、キャッシュ、主要機能を再確認して完了です。サーバー環境そのものが運用に合わない場合は、WordPressサーバー見直しの判断基準も参考にしてください。