Cloudflareを利用しているWordPressで「Error 1003: Direct IP Access Not Allowed」が表示されたら、まずアドレスバーや監視設定にドメイン名ではなくIPアドレスが入っていないかを確認してください。
1003は、WordPressのテーマやプラグインが壊れたと決めつけるエラーではありません。Cloudflare公式は、クライアントやブラウザがCloudflare IPへ直接アクセスしたことを主因とし、URLにはWebサイトのドメイン名を使うよう案内しています。
Cloudflare IPを許可リストへ追加したり、DNSへ書き戻したりする前に、失敗した完全なURLとアクセス元を保存してください。原因がブックマークや監視URLなら、CloudflareやWordPressの設定変更は不要です。
先に結論:Error 1003は7段階で確認する
- 1003の画面、完全なURL、Ray ID、発生時刻を保存する
- IPを直接開いたのか、ドメインを開いたのかを確認する
- ブラウザだけか、監視・Webhook・APIだけかを切り分ける
- 正規のHTTPSドメインURLで表示できるか確認する
- IP形式のブックマーク、リンク、監視URL、連携先を探す
- 原因となるURLだけを正規ドメインへ置き換える
- PC・スマホ・外部連携とWordPress機能を再確認する
DNSのContent自体が禁止IPを指しているなら、Cloudflare Error 1002のDNS確認手順を使います。HTTPSで指定したホスト名とSNIが一致しない場合は、Cloudflare Error 1013のSNI・Host確認手順へ進んでください。
Cloudflare Error 1003とは?
Cloudflare公式のError 1003では、Cloudflare IPアドレスへの直接アクセスは許可されないと説明されています。主な原因は、クライアントまたはブラウザがCloudflare IPへ直接アクセスしたこと。解決策は、そのIPではなくWebサイトのドメイン名をURLに使うことです。
たとえば、通常の入口が https://example.com/ なのに、公開DNSの確認で見えたIPを使って https://203.0.113.10/ のように開く状態です。実際のCloudflare IPは例示用IPへ置き換えていますが、問題の考え方は同じです。
Cloudflareは多数のWebサイトを同じネットワークで配信します。要求されたドメイン名がなければ、どのWebサイトとして処理すべきか決められません。そのため、IPだけを入口にするのではなく、契約・DNS・証明書・WordPress URLに対応するドメイン名でアクセスします。
公開DNSでCloudflare IPが返ることとは別
CloudflareでProxy statusがProxiedのA・AAAA・CNAMEは、公開DNSへ問い合わせるとCloudflareのAnycast IPを返します。これは訪問者の通信をCloudflareへ通し、実オリジンを隠す通常動作です。
重要なのは、DNSが裏側でCloudflare IPへ名前解決することと、利用者がIPアドレスそのものをURLとして開くことは別だという点です。
| 操作 | 例 | 判断 |
|---|---|---|
| ドメイン名でアクセス | https://example.com/ | 通常の入口 |
| 公開DNSを確認 | ドメインからCloudflare IPが返る | Proxiedなら通常 |
| IPをURLとして直接開く | https://203.0.113.10/ | 1003の主因 |
| DNS ContentへCloudflare IPを入力 | Aレコードの接続先にCloudflare IP | 1000・1002の原因になり得る |
公開DNSで見えたCloudflare IPをブックマーク、監視URL、Aレコードへコピーしないでください。正しい入口はドメインURL、正しいオリジンはホスティング会社が示すIPまたは正式なCNAMEです。
1002・1013・404・403との違い

| 表示 | 問題の中心 | 最初の確認 |
|---|---|---|
| 1003 | Cloudflare IPをURLとして直接開いた | 完全なURL、アクセス元 |
| 1002 | DNS Contentが禁止・制限IPを指す | A・AAAA・CNAME |
| 1013 | HTTP HostとTLS SNIが一致しない | HTTPS要求のホスト名 |
| 404 | 到達したサイト内にページがない | パーマリンク、転送、ページ有無 |
| 403 | WAF・権限・サーバーがアクセスを拒否 | 拒否元、ルール、権限 |
ドメインURLでWordPressへ到達するもののページがない場合は、WordPressの404エラー確認手順を使います。ドメインで開いて403になる場合は、WordPressの403 Forbidden確認手順でWAFや権限を切り分けてください。
変更前にアクセス元と完全なURLを保存する

1003は、ブラウザでは正常なのに監視サービスだけ失敗することがあります。逆に、古いブックマークからだけ1003になり、検索結果やトップページからは正常に見えることもあります。設定を変える前に、誰がどのURLを開いたかをそろえます。
- Error 1003の文言が読める画面全体
- アドレスバーを含む完全なURL
- Ray ID、発生時刻、タイムゾーン
- PC・スマホ・監視・Webhook・APIなどのアクセス元
- クリック前のページ、メール、ブックマーク、アプリ
- 正規URLとして運用しているドメインとHTTPS有無
- ルート、www、サブドメインのうち影響する範囲
- 直前に行ったサーバー移行、DNS変更、監視設定変更
- 同じURLを別回線・別端末で開いた結果
- 外部サービスに保存されている接続先URL
まず正規ドメインURLで表示を確認する
自サイトの正式なURLを、アドレスバーへ手入力します。WordPress一般設定の「WordPress アドレス」と「サイトアドレス」、Cloudflare DNSに登録したホスト、公開に使うHTTPS証明書のホスト名が一致しているか確認してください。
https://example.com/
https://www.example.com/
example.comは自分のドメインへ置き換えます。wwwあり・なしの両方を使うなら、一方を正規URLへ301リダイレクトする設計にし、どちらもIPアドレスへ転送しないことを確認します。
正規ドメインでは正常で、IPを開いたときだけ1003になるなら、CloudflareやWordPressを「IPでも表示できるようにする」必要はありません。IP形式URLを使っているアクセス元を直すのが安全です。
IP形式URLが保存されやすい場所
ブラウザのブックマークと履歴
移行作業中にIPで表示確認し、そのままブックマークしたケースです。アドレスバーの候補も古いIPを補完することがあります。ブックマークを削除または正規ドメインへ編集し、履歴候補ではなくドメインを手入力して確認します。
WordPress本文・メニュー・ボタン・画像リンク
投稿本文、固定ページ、カスタムHTML、メニュー、ウィジェット、テーマ設定へ絶対URLが保存されている場合があります。サイト内検索やデータベース置換を行う前にバックアップを取り、対象IPと置換範囲を確認します。シリアライズされたデータを単純な文字列置換で壊さないよう、WordPress対応の移行手段を使ってください。
死活監視・外形監視
監視先にCloudflare IPを指定すると、サイト名のない要求になり1003を記録することがあります。監視URLは正規のHTTPSドメインにし、必要なら期待するHTTPステータス、レスポンス本文、証明書期限も同じホスト名で確認します。
Webhook・API・決済・フォーム通知
外部サービスのコールバックURL、Webhook endpoint、API base URLにIPが残ることがあります。正規ドメインへ直す前に、送信元IP制限、署名検証、秘密情報、再送設定を保存します。URL変更後は本番データではなく、サービスが用意するテスト送信でHTTP結果とWordPress側の受信ログを確認します。
リダイレクト・短縮URL・メール
Cloudflare Redirect Rules、WordPressのリダイレクトプラグイン、Webサーバー設定、短縮URL、メールテンプレートがIPへ誘導していないか確認します。入口のリンクがドメインでも、途中の301・302のLocationがIPなら最終的に1003へ到達します。
開発・移行中にオリジンへ直接つなぐ場合
サーバー移行前の確認では、オリジンIPへ接続しながら本来のドメイン名を送る必要があります。ブラウザでIPを直接開くだけでは、Cloudflare 1003、証明書不一致、別サイト表示などが混ざり、正しい検証になりません。
技術担当者がコマンドで確認するなら、接続先IPだけを一時的に指定し、URLのホスト名は正規ドメインのままにします。Cloudflare公式のトラブル情報収集ガイドにも、curlの--connect-toを使ってオリジンへ接続する例があります。
curl -svo /dev/null https://example.com/ --connect-to ::203.0.113.34
example.comは正規ドメイン、203.0.113.34はホスティング会社が確認した実オリジンIPへ置き換えます。共有サーバーやWAFでは直接接続が許可されない場合があるため、提供会社の手順を優先してください。Cloudflare IPをオリジンIPとして指定する操作ではありません。
原因別の安全な直し方

アドレスバー・ブックマークがIPだった
正規のHTTPSドメインを開き、正常表示を確認してからブックマークを置き換えます。IPで管理画面へ入っていた場合も、https://example.com/wp-admin/のようにドメインを使います。ログイン画面へ転送される先もIPになっていないか確認してください。
サイト内リンクやリダイレクトがIPだった
発見したリンクと転送元を一覧にし、原因箇所だけを正規ドメインへ変更します。WordPress全体を一括置換する場合は、データベースとファイルのバックアップ、ステージング検証、置換対象の件数確認を行います。変更後はキャッシュを必要な範囲だけ削除します。
監視・Webhook・APIがIPだった
接続先を正規のHTTPSドメインへ変更し、認証ヘッダー、署名、送信元制限、タイムアウトは維持します。テスト送信で2xx応答だけでなく、WordPress側で意図した処理が一度だけ実行されたか確認します。決済や在庫連携では重複実行を避けるため、むやみに再送しません。
ドメインURLでも1003に見える
リンクをクリックした直後のURLだけでなく、最終URLとリダイレクト履歴を確認します。途中でIPへ転送されていれば、そのLocationを生成しているCloudflare Rule、WordPressプラグイン、Webサーバー設定、外部短縮URLを直します。最終URLにもドメインが残るなら、画面のエラー番号とRay IDを再確認し、1002・1013・403など別エラーを混同していないか切り分けます。
修正後の確認項目
- 正規のHTTPSドメインでError 1003が消える
- アドレスバーと最終リダイレクト先にIPが出ない
- ルート、www、使用中サブドメインが正しいURLへ統一される
- トップ、投稿、固定ページ、カテゴリー、検索、404が正常
- 管理画面のログイン、保存、プレビューが正常
- 画像、CSS、JavaScript、REST API、サイトマップが正常
- ブックマーク、メニュー、ボタン、メール内リンクが正しい
- 監視サービスが正規ドメインで正常判定する
- Webhook・APIのテスト送信が一度だけ成功する
- 1002、1013、403、404へ変化していない
- 変更前後のURL、担当者、復旧時刻を記録した
原因が1003だけでなくDNS、プロキシ循環、転送ヘッダーまで広がる場合は、Cloudflare Error 1000の総合確認手順で切り分け直してください。
やってはいけない対処
- Cloudflare IPでもサイトを表示できるよう無理に設定する
- 公開DNSで見えたCloudflare IPをAレコードへ入力する
- Cloudflare IPをWordPressのサイトURLへ設定する
- 原因を保存せずDNSレコードやRedirect Rulesを削除する
- 1003を消すためだけにCloudflareを一時停止する
- すべてのProxiedレコードをDNS onlyへ変える
- 外部サービスの認証・署名を確認せずURLだけ変える
- 決済・Webhookを本番データで何度も再送する
- IPアクセスの問題をテーマ・プラグイン障害と決めつける
- エラー画面のRay IDや発生時刻を残さない
よくある質問
CloudflareのIPへ直接アクセスできないのは異常ですか?
異常とは限りません。Cloudflare公式は、Cloudflare IPへの直接アクセスを許可せず、Webサイトのドメイン名をURLに使うよう案内しています。通常の閲覧、監視、Webhookも正規ドメインを使います。
公開DNSでCloudflare IPが返るのは1003の原因ですか?
Proxiedレコードなら、公開DNSがCloudflare Anycast IPを返すのは通常です。1003の主因は、そのIPをURLとして直接開くことです。DNS応答を見ただけでレコードを変更しないでください。
正規ドメインでは正常なら何を直しますか?
CloudflareやWordPress本体ではなく、IP形式URLを保存している場所を直します。ブックマーク、リンク、監視、Webhook、API、リダイレクトを発生元から順に確認してください。
IPを指定して移行先サーバーを確認したい場合は?
URLのホスト名は正規ドメインのまま、接続先だけをホスティング会社が確認したオリジンIPへ向けます。共有サーバーやWAFでは制限があるため、ホスティング会社の移行確認手順を優先してください。
まとめ
Cloudflare Error 1003は、ブラウザやクライアントがCloudflare IPをURLとして直接開いたときに表示されるエラーです。公開DNSでCloudflare IPが返る通常動作、DNS Contentが禁止IPを指す1002、SNI・Host不一致の1013と分けて考えてください。
完全なURLとアクセス元を保存し、IP形式のブックマーク・リンク・監視・連携先だけを正規のHTTPSドメインへ置き換えることが安全な復旧です。正規ドメインで正常なら、DNSやWordPress本体をむやみに変更する必要はありません。