WordPressの「403 Forbidden」は、出た場所を見れば原因の見当がつきます。
403は「このURLを見る許可が無い」ことを表す状態コードで、出た場所によって断っている仕組みが違います。
| 403が出た場所 | 考えられる原因 | 最初に見るところ |
|---|---|---|
| サイト全体 | IP制限、.htaccessの記述、サーバーの契約 | .htaccessとサーバーのアクセス制限 |
| 特定のフォルダー | 中にindex.phpなどが無い(一覧表示の禁止) | そのフォルダーを開く必要があるか |
| 特定のファイル | パーミッション(権限)の誤り | ファイルの権限が644になっているか |
| 管理画面・ログイン画面だけ | 国外アクセス制限、IP制限、セキュリティプラグイン | サーバーのWordPress向けセキュリティ設定 |
| 記事の保存・更新のときだけ | WAF(攻撃を防ぐ仕組み)の検知 | サーバーのWAF設定 |
当方の検証用WordPress(WordPress 7.1.4、PHP 8.3、2026年10月30日)で、上の3つは実際に403を出して確かめました。
注意したいのは、index.phpなどPHPファイルの権限を誤ると、403ではなく真っ白の500になったことです。
403が出ないからといって、権限が正しいとは限りません。
この記事では、切り分け、直し方、直したあとの確認の順に説明します。
WordPressの403 Forbiddenはサーバーが出している
検証で出た403は、どれもWordPressではなくサーバーが返した画面でした。
当方で出た403の画面
フォルダーを開いたとき、権限のないファイルを開いたとき、IP制限で断られたときの3つとも、同じ青いページでした。

画面には原因の候補として、「パーミッション等によって禁止されている」ことと、「デフォルトドキュメント(index.html など)が存在しない」ことが書かれています。
この画面が出ているなら、断っているのはWordPressの手前にあるサーバーです。
セキュリティプラグインが断る場合は、プラグイン独自の画面や文言になることもあります。
403が出ても正常な場所がある
次のURLは、検証用のWordPressで開くと403になりましたが、壊れているわけではありません。
- 画像の保存フォルダー(/wp-content/uploads/2026/10/ など)
- WordPress本体のフォルダー(/wp-includes/)
- サーバーの設定ファイル(/.htaccess)
どれも、フォルダーの中身の一覧や設定ファイルを、外から見せないための403です。
記事の中で画像が表示されていれば、フォルダーを開けるように直す必要はありません。
403が出た場所で原因を切り分ける
冒頭の表のとおり、出た場所ごとに確かめる順番が変わります。
サイト全体が403になる
トップページも記事も管理画面も403なら、サイトの入り口で止められています。
検証用のWordPressは.htaccessで自分のIPアドレスだけを許可していて、許可していない側も同じ青い403ページになりました。
エックスサーバーの公式マニュアルは、403の原因として次のものを挙げています。
- サーバーの契約が有効でない(凍結)
- public_htmlにデフォルトドキュメント(index.htmlなど)が無い
- public_html(または上のフォルダー)が削除されている
- 特定のIPアドレスからのアクセスを拒否している
- パーミッションの誤り
- .htaccessの記述の誤り
出典:各種エラーメッセージ(エックスサーバー マニュアル、2026年10月30日確認)
直前に.htaccessやサーバーのアクセス拒否設定を変えていないかを、最初に確かめます。
特定のフォルダー・ファイルだけ403になる
フォルダーを開いて403なら、中にindex.phpやindex.htmlが無く、一覧の表示が禁止されている状態です。
ファイルを開いて403なら、そのファイルのパーミッションを疑います。
検証で、readme.html(WordPressに付属するファイル)のパーミッションを000にすると403になりました。
管理画面・ログイン画面だけ403になる
表側は見えるのに、/wp-admin/やログイン画面だけ403になる場合は、WordPressを守る設定が働いている可能性があります。
エックスサーバーの「WordPressセキュリティ設定」は、ダッシュボードやREST APIへの国外からの接続を制限できる機能です。
公式マニュアルでは、国外からWordPressを使う場合は、ダッシュボードとREST APIの制限をOFFにするよう案内しています。
同じ画面のIPアドレス制限をONにすると、ホワイトリストに入れたIPアドレス以外は、国内外を問わず入れなくなります。
出典:WordPressセキュリティ設定(エックスサーバー マニュアル、2026年10月30日確認)
この機能による403は、当方では実測していません。
ログインまわりの切り分けは、WordPressにログインできないときの対処法も参考にしてください。
記事の保存・更新のときだけ403になる
記事を保存したときだけ失敗する場合は、サーバーのWAF(不正な文字列を見つけて止める仕組み)を疑います。
エックスサーバーの公式マニュアルでは、WAFはスクリプトの埋め込みやSQLの文字列などを検知し、検知するとアクセスを拒否してエラーページを出すと説明しています。
設定を変えてから反映されるまで、時間がかかる場合があるという注意書きもありました。
出典:WAF設定(エックスサーバー マニュアル、2026年10月30日確認)
一般に、記事にコードの見本を書くと、攻撃と似た文字列として検知されることがあります。
当方の検証用WordPressでは、攻撃に似た文字列をURLに付けて開いても、403にはなりませんでした。
WAFが無効だったか、この開き方では反応しなかったためで、WAFによる403は確かめられていません。
パーミッション(権限)を確かめて直す
ファイルやフォルダーの権限は、数字3けたで表します。
推奨されている値
| 対象 | エックスサーバーの推奨 | WordPress公式の目安 |
|---|---|---|
| フォルダー | 755か705 | 755か750 |
| .phpなどのファイル | 644 | 644か640 |
| .htaccess | 644 | 644か640(ファイル全般の値) |
| wp-config.php | 644(ファイル全般の値) | 440か400 |
出典:パーミッション(エックスサーバー マニュアル、2026年10月30日確認)/Changing File Permissions(WordPress Developer Resources、2026年10月30日確認)
WordPressの公式ドキュメントは、アップロード用も含めて、フォルダーを777にしないよう注意しています。
当方の再現:PHPファイルは403にならなかった
検証で、readme.htmlのパーミッションを000にすると、青い403ページになりました。
同じことをindex.phpにすると、403ではなく、真っ白な画面と状態コード500が返りました。

つまり、PHPファイルの権限の誤りは、403ではなく500として現れることがあるということです。
権限を調べるときは、403が出たファイルだけでなく、真っ白になったPHPファイルも対象にします。
500が出た場合の切り分けは、WordPressの500エラーの直し方をご覧ください。
権限の確かめ方と直し方
SSHが使えるなら、ls -lで今の権限を確かめてから、chmodで直します。
# 今の権限を見る(-rw-r--r-- なら644)
ls -l readme.html index.php
# ファイルを644、フォルダーを755に戻す
chmod 644 readme.html
chmod 755 wp-content/uploadsFTPソフトやサーバーのファイルマネージャーにも、権限を数字で変える画面があります。
変える前に今の値を控えておけば、元に戻すのは難しくありません。
サイト全体の権限をまとめて変えるのは避け、403が出た場所から1つずつ直します。
.htaccessのアクセス制限を確かめる
サイト全体やフォルダー単位の403なら、次に見るのは.htaccessの行です。
IP制限の行を探す
.htaccessに次のような行があると、許可したIPアドレス以外は403になります。
<RequireAll>
Require ip 203.0.113.10
</RequireAll>検証用のWordPressはこの形で自分のIPアドレスだけを許可していて、ほかからのアクセスは403でした。
回線を変えた、テザリングに切り替えたなど、IPアドレスが変わったあとに403が出始めたら、この行を疑います。
古い書き方の「Deny from」「Order deny,allow」も、同じくアクセスを断る行です。
自分のIPアドレスは、自分のIPアドレスを確認する方法で確かめることができます。
ベーシック認証でパスワードを誤ったときは403ではなく401になる、というのがエックスサーバーのマニュアルの説明です。
書き換える前に複製を取る
.htaccessは、1行の誤りでサイト全体が止まります。
検証では、存在しない命令を1行書いただけで、サイト全体が500になりました。

# 書き換える前に複製しておく
cp .htaccess .htaccess.bak-20261030
# 戻すときは、複製を元の名前で上書きする
cp .htaccess.bak-20261030 .htaccess直して表示が戻らなければ、複製を元の名前に戻します。
.htaccessの書き方は、.htaccessを使ったリダイレクト方法もあわせてご覧ください。
直したあとに確かめること
403が消えたら、次の3つを確かめます。
- ログアウトした状態や別のブラウザーでも開けるか
- トップページ以外の記事や画像も開けるか
- 一時的に外したアクセス制限を、必要な範囲で戻したか
別の不具合の検証では、トップページだけサーバーのキャッシュで普段どおりに見え、記事のURLはエラーのままという状態がありました。
1つのURLだけで、直ったと判断しないでください。
原因がわからない場合は、403が出たURL、日時、直前に変えたことをそろえて、サーバー会社に問い合わせるのが近道です。
自分で直すのが難しいときの相談先として、MOTOKIのサービスもご利用ください。
まとめ
WordPressの403 Forbiddenは、出た場所で原因を切り分けることができます。
- サイト全体なら、IP制限・.htaccess・サーバーの契約
- フォルダーやファイルだけなら、一覧表示の禁止かパーミッション
- 管理画面だけなら、サーバーのセキュリティ設定
- 保存のときだけなら、WAF
PHPファイルの権限の誤りは、403ではなく真っ白の500になることがあります。
真っ白になった場合は、WordPressが表示されない・真っ白になるときの直し方で調べ方を説明しています。



