403 Forbidden「You don't have permission」の意味・原因と解決方法
ポイント
「Forbidden You don't have permission to access this resource.」は「禁止:このリソースにアクセスする権限がありません」という意味で、Webサーバーがリクエストを理解したうえでアクセスを拒否したことを示す403エラーです(Apacheの標準メッセージ。nginxでは「403 Forbidden」の下に「nginx」と表示されます)。訪問者はURLの確認、Cookieの削除、VPNのオフ、モバイルデータなど別の回線での確認を試し、どこから開いても403ならサイトの運営者に連絡してください。サイト管理者はエラーログで原因を確認し、アクセス制御(Apache 2.4のRequire all granted)、ファイル権限(ディレクトリ755・ファイル644)、indexファイルの有無を点検しましょう。
今すぐ確認

読み始める
- 403 Forbiddenエラーとは?
- 403エラーの表示例
- 「Forbidden You don't have permission to access this resource.」の意味と原因
- 403 vs 401 vs 404:それぞれの違い
- 403 Forbiddenエラーの一般的な原因
- 訪問者としての403エラーの修正方法
- 1. URLを確認する
- 2. ブラウザのキャッシュとCookieをクリアする
- 3. VPNまたはプロキシを無効にする
- 4. 別のネットワークやデバイスを試す
- Xの動画で「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」と出る場合
- サイト管理者としての403エラーの修正方法
- 5. ファイルとディレクトリの権限を修正する
- 6. .htaccessルールを確認する
- 7. デフォルトのindexファイルを追加する
- 8. WordPressプラグインを無効にする
- 9. IPブロックとファイアウォールルールを確認する
- 10. HTTPSとクライアント証明書のルールを確認する
- 11. Cloudflareの403 / Error 1020を修正する
- 12. Nginxの403 Forbiddenを修正する
- 「403 Forbidden nginx」とは:error.logのメッセージ別の原因
- HTTPヘッダーを使った403エラーのデバッグ
- 403エラーはSEOに影響するか?
- 403エラーを防ぐ方法
- よくある質問
403 Forbiddenエラーとは?
403 Forbiddenエラーは、サーバーがリクエストを理解したうえで、その実行を拒否していることを意味します。ページは存在しますが、あなたには表示が許可されていません。404とは違い、サーバーはあなたが何を求めているかを正確に把握しています。メッセージの下に「nginx」や「Apache」と表示されていても、それはサイトが使っているサーバーソフトの名前にすぎません。拒否しているのはそのサイトの設定で、あなたのブラウザの問題ではありません。
HTTPの標準仕様RFC 9110 §15.5.4も、まさにこの言葉で定義しています。サーバーはリクエストを理解したが、その実行を拒否する("understood the request but refuses to fulfill it")。認証情報を送った場合、サーバーはそれを不十分と見なしており、クライアントは同じ認証情報で自動的にリクエストを繰り返すべきではありません("SHOULD NOT automatically repeat the request with the same credentials")。また、ページの存在そのものを隠すために、サーバーが403の代わりに404を返すこともあります。
簡単に言えば、ドアは存在しますが、あなたはそこを通ることを許可されていません。訪問者にできるのは自分の側に原因がないかを確かめることだけで、ルールそのものを変えられるのはサイトの管理者です。
403になるのは自分だけ?複数の地点から確認
403エラーの表示例
403ページの文言と、その下に表示されるサーバー名を見れば、どのソフトウェアがあなたを拒否したのか、つまり誰なら直せるのかがわかります。
| ページの表示 | 拒否したのは | 多くの場合の意味 |
|---|---|---|
| 403 Forbiddenの下にnginx(またはnginx/1.27.4、angie、openresty) | サイトのnginxサーバー(AngieとOpenRestyはnginxベース) | denyルール、あなたのIP・国・VPNのブロック、読み取れないファイル、またはindexファイルのないフォルダ |
| Forbiddenの見出しとYou don't have permission to access this resource.、その下にApache/2.4の行 | サイトのApacheサーバー | 多くは.htaccessにあるRequire all deniedやDeny fromのルール、またはファイル権限 |
| 403 - Forbidden: Access is denied. | Microsoft IIS | フォルダの権限、または403.4(HTTPSが必要)のようなサブステータス |
| 403 Forbiddenの下にLiteSpeed Web Server | LiteSpeed(共用レンタルサーバーで多い) | ホスティング側のセキュリティルール、権限、または.htaccess |
| Sorry, you have been blockedとCloudflareのRay ID | サイト管理者が設定したCloudflareのWAFルール | リクエストがファイアウォールのルール(国、IPの評判、ボット対策)に一致した |
| Error 1020: Access deniedとRay ID | Cloudflareのその他のセキュリティ機能 | カスタムページのないブロックルール(Cloudflareのドキュメントは例としてAPIスキーマとJWTのチェックを挙げています) |
| Access Denied. You don't have permission to access … on this server. Reference #18… | Akamaiのエッジファイアウォール | あなたのIP、ネットワーク、VPN、またはリクエストのパターンが、サイトに届く前にブロックされた |
| 403 ERROR. The request could not be satisfied.と「Generated by cloudfront」 | Amazon CloudFront / AWS WAF | WAFのルール、または国による制限 |
| Your access to this site has been limited by the site owner(サイトの管理者があなたのアクセスを制限した) | Wordfence(WordPressのセキュリティプラグイン) | プラグインがあなたのIPやリクエストをブロックした。解除できるのはサイトの管理者だけ |
文言が何であれ、意味は同じです。このサーバーは、このページをあなたに渡しません。ブラウザの拡張機能やCookieだけでサーバーが拒否することは少なく、理由になりやすいのはあなたのIPアドレス、ネットワーク、VPNです。
「Forbidden You don't have permission to access this resource.」の意味と原因
「Forbidden You don't have permission to access this resource.」を日本語にすると「禁止:このリソースにアクセスする権限がありません」です。上の表のとおり、WebサーバーソフトApache HTTP Serverが403を返すときの標準メッセージです。
古いApacheでは「You don't have permission to access /(パス) on this server.」と表示されます。2019年のApache 2.4.41で、エラーページにURLを含めない形に変わったためで(Apacheの変更履歴、CVE-2019-10092)、意味は同じです。ページ下部の「Apache/2.4.xx (Ubuntu) Server at example.com Port 443」のような行は、ServerSignature設定で表示されるサーバー名です。「Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.」が続く場合は、エラー表示用のページ(ErrorDocument)を読み込もうとした際にも403になったという意味なので、ページ単位ではなくディレクトリ単位の設定から確認してください。
サイト管理者の場合、原因はApacheのエラーログ(Debian/Ubuntuは/var/log/apache2/error.log、RHEL系は/var/log/httpd/error_log)に記録されています。403が出た時刻の行を探し、次の表で原因を特定してください。
| エラーログのメッセージ | 原因 | 解決方法 |
|---|---|---|
AH01630: client denied by server configuration | Require all deniedやRequire ipなど、httpd.confや.htaccessのアクセス制御で拒否された | 公開するディレクトリの<Directory>にRequire all grantedを設定する |
AH01797: client denied by server configuration | Apache 2.2形式のOrder・Deny from(mod_access_compat)で拒否された | 2.4形式のRequireに書き換え、新旧の書き方を混在させない |
AH01276: Cannot serve directory …: No matching DirectoryIndex … found | ディレクトリにindexファイルがなく、Options -Indexesでファイル一覧の表示も禁止されている | index.htmlなどを置くか、DirectoryIndexのファイル名を確認する |
AH00035: access to … denied … because search permissions are missing on a component of the path | パスの途中のディレクトリに実行(x)権限がない | namei -lで各階層を確認し、ディレクトリを755にする |
AH00037: Symbolic link not allowed or link target not accessible | シンボリックリンクが許可されていない、またはリンク先を読めない | Options FollowSymLinksを有効にするか、リンク先の権限を直す |
ModSecurity: Access denied with code 403 | WAF(ModSecurity)のルールにリクエストが一致した | ログのルールIDを確認し、誤検知ならWAFの設定や除外ルールで調整する |
# Apache 2.4: 公開ディレクトリへのアクセスを許可する例
<Directory "/var/www/html">
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
DirectoryIndex index.html index.php設定を変更したらapachectl configtestで文法を確認してから再読み込みしてください。Apache 2.2から2.4への書き換え例はApache公式のアップグレードガイド(英語)にあります。外から見て403が解消したかは、HTTPヘッダーチェッカーでステータスコードが200に戻ったかで確認できます。
注意: Require all grantedは公開するディレクトリだけに書いてください。Apacheの公式ドキュメントは、ファイルシステムのルート(<Directory "/">)をRequire all deniedで拒否し、公開する場所だけを許可するよう推奨しています(Apacheのセキュリティのヒント)。ルートを許可すると、サーバー上の他のファイルまで配信される恐れがあります。
403 vs 401 vs 404:それぞれの違い
これら3つのエラーコードはよく混同されます。それぞれの違いを以下に説明します。
| ステータスコード | 意味 | 修正可能か? | 例 |
|---|---|---|---|
| 401 Unauthorized | まずログインが必要 | はい — 有効な認証情報を提供 | ログインせずに管理パネルにアクセス |
| 403 Forbidden | ログイン済みだがアクセス権がない | 場合による — サーバーがブロック中 | 他のユーザーのファイルにアクセスしようとする |
| 404 Not Found | ページが存在しない | URLのスペルを確認 | 削除された、または入力ミスのページを訪問 |
重要な違い:401エラーは認証を求めます。403エラーは、認証しても解決しないことを示しています。サーバーはすでに、あなたがこのリソースにアクセスできないと判断しています。404は、リソースがそもそも存在しないことを意味します。
サイズの大きすぎるCookieや壊れたURLなど、リクエスト自体が不正な形式だとしてサーバーが拒否した場合は、代わりに400 Bad Requestが返されます。
403 Forbiddenエラーの一般的な原因
403エラーが発生する理由を理解することで、より速く修正できます。以下は、訪問者とサイト管理者別に分類した最も一般的な原因です。
- ファイル権限の誤設定 — ファイルが600、フォルダが700に設定されていると公開アクセスがブロックされます
- .htaccessルールの誤設定 — denyディレクティブやmod_rewriteルールがリクエストをブロック
- indexファイルの欠如 — index.htmlやindex.phpがなく、ディレクトリリスティングが無効
- IPブロック — サーバーやファイアウォールのルールがIPアドレスや国をブロック
- VPN、プロキシ、データセンターのIP — 多くのサイト(動画配信、チケット販売、アダルト、銀行)は方針としてVPNやホスティング事業者のIP帯をブロックしており、共有のVPN IPがブロックリストに載っていることもあります
- ホットリンク保護 — 他のドメインからの画像やファイルへの直接リンクをサーバーがブロック
- WordPressプラグインの競合 — WordfenceやiThemesなどのセキュリティプラグインがリクエストをブロック
- Web Application Firewall(WAF) — Cloudflare、Sucuri、またはModSecurityがリクエストを検出
- HTTPSやクライアント証明書のルール — HTTPSを必須にしているサーバー(IIS 403.4)やクライアント証明書を要求するサーバー(IIS 403.7)は、それがないリクエストを拒否します。期限切れの証明書では403ではなく、ブラウザのプライバシー警告が表示されます
- レート制限 — 短時間に同じIPから大量のリクエストがあった場合。多くのサーバーは429 Too Many Requestsで応答しますが、403を返すファイアウォールもあります
訪問者としての403エラーの修正方法
自分が所有していないウェブサイトで403エラーが表示される場合、以下の手順を試してください。上から順番に進めてください。
1. URLを確認する
最もシンプルな修正が正解であることが多いです。ディレクトリURLではなく、ページURLにアクセスしていることを確認してください。多くのサーバーはデフォルトでディレクトリブラウジングをブロックしています。
例えば、https://example.com/images/(フォルダ)にアクセスするとほとんどのサーバーで403が返されますが、https://example.com/images/logo.png(特定のファイル)は問題なく動作します。タイプミスがないか確認し、URLが実際のページを指していることを確認してください。
2. ブラウザのキャッシュとCookieをクリアする
ブラウザが古いCookieやキャッシュされた認証トークンを送信しており、サーバーがそれを拒否している可能性があります。これらをクリアすると、新しいリクエストが強制されます。
Chrome: Settings → Privacy → Clear browsing data → Cookies + Cached images
Firefox: Settings → Privacy → Clear Data → Cookies + Cache
Safari: Settings → Privacy → Manage Website Data → Remove All
Edge: Settings → Privacy → Clear browsing data → Cookies + Cacheクリアした後、ブラウザを閉じて再度開き、URLにもう一度アクセスしてみてください。
3. VPNまたはプロキシを無効にする
VPN、プロキシ、Torは、データセンターにある共有IPアドレスからあなたの通信を送り出します。多くのサイト(特に動画配信、チケット販売、アダルト、銀行のサイト)はこうしたIP帯をまとめてブロックしており、他の誰かが悪用した共有IPはブロックリストに載っていることもあります。
VPNを切断して再読み込みしてください。ページが開けば、ブロックされているのはVPNのIPです。別のサーバーを選ぶか、そのサイトではVPNをオフにしてください。VPNを使っていない場合は、自分のIPアドレス確認で自分のIPを、IPブラックリストチェックでその評判を確認できます。
4. 別のネットワークやデバイスを試す
403エラーが続く場合、別のネットワークに切り替えてください(Wi-Fiの代わりにモバイルデータ、またはその逆)。これにより、IPアドレスがブロックされているかどうかを判断できます。
別のデバイスやブラウザで試すこともできます。あるブラウザではページが読み込まれるが別のブラウザでは読み込まれない場合、問題はキャッシュデータやブラウザの拡張機能に関連している可能性が高く、IPブロックではありません。
Xの動画で「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」と出る場合
「このサイトに問題があるようです」「video.twimg.com のサーバーがエラーを返しました: 403 Forbidden」は、Firefoxのエラー画面の文言で(Firefoxの日本語翻訳ファイル)、サーバーが403 Forbiddenを返したことを示しています。video.twimg.comはX(旧Twitter)が動画ファイルを配信するサーバーで、X APIのデータ辞書でも動画のURLはこのホスト名になっています。つまり、動画ファイルを直接開こうとしたリクエストを、Xのサーバーが拒否したという意味です。
Xは、動画サーバーがどのような場合に403を返すかを公開していません。閲覧者ができる確認は次のとおりです。
- 元のポストから再生する: 動画ファイルのURL(video.twimg.com/…)を直接開いた場合は、そのポストをx.comか公式アプリで開いてください。ポスト上で再生できれば、問題は直接リンクの開き方だけです。
- ポストが表示されるか確認する: ポストが削除されている場合や、国や地域によって表示が制限されている場合は、閲覧者の側で直す方法はありません。
- 拡張機能や外部アプリを外す: 動画保存用の拡張機能や非公式アプリでこの表示が出る場合は、それらを無効にして、x.comや公式アプリで再生できるか確認してください。
- X全体の障害を疑う: どの動画も再生できない場合は、サーバーダウンチェックでx.comが応答しているか確認してください。
サイト管理者としての403エラーの修正方法
訪問者がサイトで403エラーを報告している場合、または自分で確認している場合、修正はほぼ常にサーバー設定にあります。以下のチェック項目を順番に確認してください。
5. ファイルとディレクトリの権限を修正する
ファイル権限の誤設定は、ウェブサーバーにおける403エラーの最大の原因です。ウェブサーバーの標準的な権限は、ディレクトリが755、ファイルが644です。
これらの数字の意味:最初の桁は所有者の権限、2番目はグループ、3番目はその他全員です。7 = 読み取り + 書き込み + 実行、5 = 読み取り + 実行、4 = 読み取りのみ。
# Fix directory permissions (755 = owner rwx, group rx, others rx)
find /var/www/html -type d -exec chmod 755 {} \;
# Fix file permissions (644 = owner rw, group r, others r)
find /var/www/html -type f -exec chmod 644 {} \;
# Verify ownership (should match your web server user)
ls -la /var/www/html/
# Change ownership to web server user if needed
chown -R www-data:www-data /var/www/html/6. .htaccessルールを確認する
Apacheサーバーでは、.htaccessファイルがアクセスルールを制御しています。1行の誤った設定で全訪問者をブロックする可能性があります。Deny from allディレクティブや過度に制限的なRequireルールを確認してください。
最も速いテスト方法:.htaccessを一時的に.htaccess.bakにリネームします。403エラーが消えれば、問題はそのファイルにあります。
# Temporarily rename .htaccess to test
mv /var/www/html/.htaccess /var/www/html/.htaccess.bak
# If 403 goes away, check the file for deny rules:
grep -i 'deny\|require\|allow' /var/www/html/.htaccess.bak
# Common problematic lines:
# Deny from all
# Require all denied
# Order deny,allow.htaccessなしでサイトが動作する場合は、1行ずつ確認してください。正当なトラフィックをブロックしている可能性のあるDeny from allやRequire all deniedディレクティブを探し、意図したものだけをブロックする具体的なルールに置き換えてください。
7. デフォルトのindexファイルを追加する
訪問者がファイルを指定せずにディレクトリURL(example.com/blog/など)をリクエストすると、サーバーはデフォルトのindexファイルを探します。存在せず、ディレクトリリスティングも無効の場合、403エラーが返されます。
解決策:公開アクセス可能な各ディレクトリにindex.htmlまたはindex.phpファイルを作成します。ディレクトリリスティングを許可するように設定することもできますが、一般的にはセキュリティリスクになります。
# In .htaccess or Apache config — set default index files
DirectoryIndex index.html index.php index.htm
# If you want to allow directory listing (not recommended for production):
Options +Indexes8. WordPressプラグインを無効にする
Wordfence、iThemes Security、Sucuri、All In One WP Securityなどのセキュリティプラグインは、疑わしいと判断したリクエストをブロックして403エラーを引き起こすことがあります。これはプラグインの更新やルール変更後に頻繁に発生します。
テストするには、FTPまたはSSH経由でプラグインフォルダをリネームして、すべてのプラグインを一度に無効にします。
# Disable all plugins by renaming the folder
mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins.bak
# If 403 goes away, re-enable plugins one by one:
mv /var/www/html/wp-content/plugins.bak /var/www/html/wp-content/plugins
# Then deactivate/reactivate each plugin from WordPress admin403エラーが消えたら、プラグインを1つずつ再有効化して原因を特定してください。プラグインのファイアウォールまたはセキュリティログで、ブロックされたリクエストを確認してください。
9. IPブロックとファイアウォールルールを確認する
サーバーのファイアウォールやホスティングコントロールパネルが、特定のIPアドレス、範囲、または国全体をブロックしている可能性があります。これはfail2ban、CSF(ConfigServer Security & Firewall)、またはホスティングレベルのIPブロックリストでよく見られます。
ファイアウォールルールとサーバーログを確認して、正当なIPがブロックされていないか確認してください。
# Check if an IP is blocked by iptables
iptables -L -n | grep "203.0.113.50"
# Check fail2ban jail status
fail2ban-client status
# Unban a specific IP
fail2ban-client set <jail-name> unbanip 203.0.113.50
# Check Apache deny rules in server config
grep -r 'Deny from\|Require not ip' /etc/apache2/10. HTTPSとクライアント証明書のルールを確認する
TLSに関係する403が起きるのは2つの場合です。サーバーがHTTPSを必須にしているのにリクエストが平文のHTTPで届いた場合(IISはこれを403.4「SSL required」として報告します)と、サーバーがクライアント証明書を要求しているのに訪問者が提示しなかった場合(IIS 403.7、SSLVerifyClientを使ったApacheのルール)です。証明書の期限切れや不一致では、ブラウザのプライバシー警告が表示され、403になることはありません。
同じURLをHTTPとHTTPSで比べ、証明書そのものはDNS RobotのSSLチェッカーで確認してください。
# Same page over HTTP and HTTPS: a 403 on one only points at a scheme rule
curl -sI http://example.com/page | head -1
curl -sI https://example.com/page | head -111. Cloudflareの403 / Error 1020を修正する
Cloudflareを使っている場合、403はあなたのサーバーではなくCloudflareから返されていることがあり、そのページを見ればどの機能が作動したかがわかります。WAFのカスタムルールやマネージドルールでは「Sorry, you have been blocked」が表示され、Blockアクションでカスタムページのないその他のセキュリティ機能ではError 1020: Access deniedが表示されます(Cloudflareのドキュメント、2026年10月更新)。どちらにもRay IDが記載されています。
訪問者にRay IDが写ったスクリーンショットをもらい、ダッシュボードのSecurity → Analytics → EventsでそのRay ID(または訪問者のIP)を検索してください。イベントに、作動したルールが正確に表示されます。全体のセキュリティを下げるのではなく、そのルールだけを調整しましょう。
- Security → WAF — カスタムルールを確認し、正当なパスがブロックされていないか確認
- Security → Analytics → Events — Ray IDを探し(タイムスタンプはUTC)、どのルールがブロックを引き起こしたかを確認
- Security → Bots — Bot Fight Modeが正当なクローラーやAPIクライアントをブロックする場合がある
- Security Level — 「I'm Under Attack」に設定されている場合、すべての訪問者にチャレンジページが表示される
- IP Access Rules — IPや国が誤ってブロックされていないか確認
12. Nginxの403 Forbiddenを修正する
Nginxは、いくつかの特定の設定問題で403を返します。最も一般的なのは、Nginxのワーカープロセスにファイルの読み取り権限がない場合、またはindexファイルのないディレクトリでautoindexディレクティブがオフになっている場合です。
# Check Nginx error log for the exact cause
tail -f /var/log/nginx/error.log
# Common Nginx 403 causes and fixes:
# 1. Permission denied — Nginx runs as 'nginx' or 'www-data' user
# Fix: ensure the user running Nginx can read the files
chown -R nginx:nginx /var/www/html/
# 2. No index file in directory — add to server block:
location / {
index index.html index.php;
}
# 3. SELinux blocking access (CentOS/RHEL)
setsebool -P httpd_read_user_content 1
# Or set proper context:
chcon -R -t httpd_sys_content_t /var/www/html/SELinuxは、CentOSやRHELシステムにおけるNginx 403エラーの見落とされがちな原因です。ファイル権限が正しくても、SELinuxがNginxプロセスによるファイル読み取りをブロックする場合があります。上記のchconコマンドでこれを修正できます。
「403 Forbidden nginx」とは:error.logのメッセージ別の原因
「403エラーの表示例」の表のとおり、「403 Forbidden」の下の「nginx」は拒否したWebサーバーソフトの名前です。「nginx/1.24.0」(例)のようにバージョンまで表示されるのは、server_tokensが初期設定のonになっているためです(nginxのドキュメント)。サイト管理者は、error.logに残る行で原因を見分けられます。
| error.logのメッセージ | 原因 | 解決方法 |
|---|---|---|
open() "/var/www/html/index.html" failed (13: Permission denied) | nginxの実行ユーザー(www-dataやnginx)がファイルを読めない、または途中のディレクトリに実行(x)権限がない | namei -lで各階層を確認し、ディレクトリ755・ファイル644にする。権限が正しいのに続く場合は上のSELinuxを確認 |
directory index of "/var/www/html/" is forbidden | 末尾が「/」のディレクトリへのアクセスで、indexに指定したファイルがなく、autoindexもoff | index.htmlを置くか、indexディレクティブにファイル名を追加する。try_filesの$uri/がindexのないディレクトリに当たっていないかも確認 |
"/var/www/html/index.php" is forbidden (13: Permission denied) | indexファイルはあるが、読み取り権限がない | 1行目と同じく権限と所有者を直す |
access forbidden by rule | denyディレクティブが接続元のIPアドレスに一致した | server・locationブロックのallowとdenyを確認する。上から順に評価され、最初に一致したルールが使われる |
# 直近のエラーを確認(ログの場所は環境によって異なります)
sudo tail -n 20 /var/log/nginx/error.log
# パス上の各ディレクトリの所有者と権限を一覧表示
namei -l /var/www/html/index.html
# 設定の文法を確認してから再読み込み
sudo nginx -t && sudo systemctl reload nginxLinuxでは、ファイルを開くにはパス上のすべてのディレクトリに実行(検索)権限が必要です(open(2)のmanページ)。ファイル自体が644でも、/home/userのような親ディレクトリが700だとnginxは読めず、403になります。
HTTPヘッダーを使った403エラーのデバッグ
原因を特定できない場合は、サーバーのHTTPレスポンスヘッダーを確認してください。リクエストがブロックされた理由に関する手がかりが含まれていることがよくあります。
DNS RobotのHTTPヘッダーチェッカーまたはターミナルでcurlを使用して、完全なレスポンスを確認できます。
# Check the status line and headers of a 403 page
curl -I https://example.com/restricted-page
# Headers that name the system in the path:
# server: cloudflare + cf-ray: 8f3a...-LAX → Cloudflare
# server: AkamaiGHost → Akamai
# server: CloudFront + x-amz-cf-id → Amazon CloudFront
# x-sucuri-id → Sucuri firewall
# x-iinfo → Imperva
# server: nginx / Apache / LiteSpeed → the site's own web server403の応答にCDNやファイアウォールのヘッダーがあれば、ブロックはリクエストがあなたのサーバーに届く前に起きているので、そのサービスのイベントログを確認してください。Webサーバー自身の名前が出ている場合、ルールはサーバーの設定、.htaccess、またはプラグインにあります。
403エラーはSEOに影響するか?
はい、クロール対象のページで403エラーが起きると、検索順位に悪影響が出ます。Googleは4xxのステータスコード(429を除く)を返すURLをインデックスに登録せず、すでに登録されているURLは削除します。
意図的に制限されたページ(管理パネル、プライベートファイル)での403エラーは正常であり、SEOには影響しません。しかし、403を返す公開ページはGoogleのインデックスから外れます。
Search Consoleのページ インデックス登録レポートでは、これらは「アクセス禁止(403)が原因でブロックされました」と表示されます。Googlebotは認証情報を送らないため、公開ページで403が出ているなら、ファイアウォールやボット対策のルールがGooglebotをブロックしています。
403エラーを防ぐ方法
予防はトラブルシューティングよりも簡単です。以下の対策を実施して、サイトでの403エラーを防ぎましょう。
- 最初から正しい権限を設定する — ディレクトリは755、ファイルは644、777は絶対に使わない
- 常にindexファイルを用意する — 公開ディレクトリにはindex.htmlまたはindex.phpが必要
- .htaccessの変更をテストする — 変更前にバックアップを取り、1つずつルールをテスト
- WAFルールを監視する — Cloudflare、Sucuri、またはModSecurityのログを毎週確認
- 自分のIPをホワイトリストに登録する — オフィス、自宅、デプロイサーバーのIPがホワイトリストに入っていることを確認
- HTTPヘッダーチェッカーを使用する — ページが403ではなく200を返していることを定期的に確認
- 監視を設定する — ページが403を返し始めた時にアラートを受け取るためのアップタイム監視を使用
403になるのはみんな?それとも自分だけ?
DNS Robotの無料の鯖落ちチェッカーは、複数の地点から同時にページへアクセスし、それぞれが受け取ったステータスを表示します。どこからでも403ならサイト側のルール、自分だけ403ならあなたの回線、VPN、IPアドレスが原因です。
出典
- RFC 9110: HTTP Semantics, §15.5.4 403 Forbidden, IETF
- Error 1020 (Cloudflare 1xxx errors), Cloudflare
- How HTTP status codes, and network and DNS errors affect Google Search, Google Search Central



