速度改善・安全対策

WordPressでCloudflare Error 1011が出るときの直し方|Hotlinking Deniedの確認順

Cloudflareを使っているWordPressで「Error 1011: Access Denied (Hotlinking Denied)」が表示されたら、画像の直リンクを防ぐHotlink Protectionが、その要求を外部サイトからの利用と判定して拒否しています。

自分のサイトでは画像が見えるのに、提携先ページ、別ドメイン、RSS、SNSなどでは表示されないことがあります。画像ファイルの破損やWordPressへのアップロード失敗と決め付けず、「画像の置き場所」と「どのページから読み込んだか」を組にして調べます。

最初に1011画面、対象画像の完全なURL、画像を表示しようとしたページURL、発生時刻、再現したブラウザを保存してください。保護を全面停止する前に、意図して止めた無断利用なのか、許可したい共有先まで巻き込んだのかを確認します。

先に結論:Error 1011は8段階で確認する

  1. 1011画面、画像URL、表示元ページ、発生時刻を保存する
  2. 自サイト内、画像URL単体、外部ページで結果を比べる
  3. 画像のホスト名、パス、拡張子を確認する
  4. ブラウザのNetworkで画像要求とHTTP Refererを確認する
  5. Cloudflare Hotlink Protectionの有効状態と適用範囲を確認する
  6. その外部利用を許可すべきか運用方針を決める
  7. 必要なら特定ホスト・フォルダ・画像だけ例外にする
  8. 自サイト、外部共有先、検索・SNS・RSS、帯域保護を再確認する

WordPressへ画像自体を追加できない場合は、WordPress画像アップロードエラーの確認順を使います。画像は取得できるもののHTTPとHTTPSが混在する場合は、Mixed Contentを安全に直す手順へ進んでください。

Cloudflare Error 1011とは?

所有ギャラリーでは見える作品が外部の額では空になる直リンク拒否の場面

Cloudflare公式のError 1011は、Hotlink Protectionを使うリソースへの要求が、直リンク防止によって拒否された状態です。サイト所有者が行った遮断なので、Cloudflare Supportが訪問者の依頼だけで設定を上書きすることはできません。

「Hotlink」は、別サイトがあなたのサーバー上の画像URLを自分のページへ直接埋め込み、その画像転送をあなたの配信環境へ負担させる使い方です。Hotlink Protectionは無断利用と帯域消費を抑える一方、意図して許可した外部掲載にも影響する可能性があります。

Hotlink Protectionの判定方法

Cloudflare公式のHotlink Protectionによると、画像要求のHTTP Refererに自分のWebサイトのドメインが含まれず、かつRefererが空でもない場合にアクセスを拒否します。

そのため、画像URLをアドレスバーへ直接入力すると見えるのに、外部ページへ埋め込むと1011になる場合があります。直接アクセスではRefererが空になることがあり、外部ページからの読み込みでは外部ドメインがRefererとして送られるためです。

対象として公式に示されている拡張子は、gif、ico、jpg、jpeg、pngです。画像URLの末尾、実際の配信ホスト、WordPressが出力したsrcやsrcsetを確認します。

1011と他の画像トラブルの違い

症状主な確認点最初の対応
Cloudflare 1011外部参照とHotlink Protection画像URL、表示元、Referer、適用範囲
一般的な403WAF、サーバー権限、アクセス制限応答元と対象ルールを特定
404画像URL、ファイル移動、生成サイズ実在URLとWordPress出力を確認
Mixed ContentHTTPSページ内のHTTP画像元URLとHTTPS配信を修正
アップロード失敗容量、形式、権限、PHP、REST API管理画面の保存処理を確認
表示が遅い容量、寸法、形式、遅延読込画像最適化と配信を確認

Cloudflareの1011がなく、単に画像が重い場合はWordPress画像最適化のやり方を確認します。一般的な403なら、WordPressの403 Forbiddenを直す確認順で拒否した層を切り分けてください。

画像URLと表示元を確認する

額装写真と参照元の控え札を照合する温かな画像修復スタジオ

1. 三つの開き方を比べる

  1. 自分のWordPressページ内で画像を見る
  2. 画像URLを新しいタブで直接開く
  3. 問題が起きた外部ページから画像を読み込む

自サイト内と直接URLでは成功し、外部ページだけ1011なら、Hotlink Protectionの参照元判定と整合します。三つすべてで失敗するなら、DNS、配信ホスト、ファイルの存在、権限、別のセキュリティ設定も確認します。

2. 画像のホスト名を確認する

ページがwww.example.com、画像がcdn.example.netのように別ドメインなら、所有しているサービス同士でも参照元判定では外部扱いになる可能性があります。WordPressのサイトURL、メディアURL、CDN置換、サブドメイン、独自ドメインの対応を一覧にします。

3. Networkで実際の要求を見る

ブラウザの開発者ツールでNetworkを開き、問題の画像要求を選びます。Request URL、Status、Referer、Response Headers、Initiatorを確認し、1011画面の内容と一致するかを見ます。認証情報やCookieを含む記録を第三者へ渡すときは、秘密値を削除してください。

Hotlink Protectionの適用範囲を確認する

CloudflareダッシュボードでHotlink Protectionが有効かを確認し、いつ・何の目的で有効にしたかを記録します。設定変更前には、現在の値、対象ゾーン、利用中のConfiguration Rules、画像配信ホスト、共有が必要な外部サービスを保存してください。

Cloudflare for SaaSでカスタムホスト名を使う場合、公式資料は、初期状態では自分のゾーンをRefererに持つ要求だけが許可されると注意しています。顧客のカスタムホスト名を止める可能性があるため、Configuration RulesやCustom Rulesを含め、サービス構成に合う範囲を設計します。

その外部表示を許可すべきか判断する

利用場面判断の例適した対応
無関係なサイトの無断転載許可しない保護を維持し、必要なら利用者へ画像削除を依頼
自社の別ドメイン表示が必要対象ホストや画像フォルダだけ例外化
提携先・配信先契約上必要共有用画像と利用範囲を分ける
RSSメール読者体験上必要RSS用画像フォルダを選択的に許可
検索・SNS集客方針により必要プレビューと画像表示を実機で確認
会員限定画像直リンク防止だけでは不十分認証や署名URLなど別のアクセス制御を検討

Hotlink Protectionは、画像をどこから参照したかを基にする機能です。会員限定・有料素材の機密性を保証する仕組みと同一視せず、公開範囲に認証が必要ならWordPressや配信基盤のアクセス制御を別に設計します。

安全な修正方法

特定の画像フォルダだけ対象外にする

Cloudflare公式は、特定の画像フォルダを対象にしたConfiguration RuleでHotlink Protectionを選択的に無効化する方法を案内しています。共有用と保護用の画像をフォルダで分けると、サイト全体を無効にせず運用できます。

hotlink-okディレクトリを使う

外部利用を許可する画像は、サイト内の任意の場所にhotlink-okという名前のディレクトリを作って配置できます。たとえば/images/hotlink-ok/logo.pngは直リンク確認の対象外になります。WordPressで既存画像を移動するとURLが変わるため、本文、OGP、構造化データ、外部配信先の参照更新も計画してください。

保護を全体で無効にする

すべての画像を外部利用可能にする運用なら、全体で無効化する選択肢もあります。ただし、無断直リンクによる帯域利用を防ぐ目的は失われます。変更前後の転送量、外部参照元、検索・SNS表示を比較し、運用方針として記録します。

検索・SNS・RSSへの影響

Cloudflare公式は、Hotlink Protectionはクロール自体には影響しない一方、Google Images、Pinterest、Facebookなどで画像が表示されなくなると説明しています。検索ロボットがページを読めることと、外部サービス上で画像が見えることは分けて確認します。

RSSリーダーやメール配信も、画像を外部環境から取得します。記事本文が配信できても画像だけ欠ける場合があるため、実際の購読環境でテストしてください。OGP画像はサービス側の取得方法やキャッシュも関係するため、設定変更直後の一回だけで判断せず、新しいURLまたは再取得機能で確認します。

やってはいけない対処

  • 外部サイトからの一件の報告だけで保護を全面停止する
  • 1011を画像破損と決め付け、元画像を何度も再アップロードする
  • 表示元ページとRefererを確認せず、無関係なWAFルールを削除する
  • 共有用と保護用の画像を同じフォルダで無計画に管理する
  • URL変更後にWordPress本文、OGP、RSS、提携先の参照を放置する
  • 外部サービスで一度見えたキャッシュだけを成功判定にする
  • 会員限定画像の保護をReferer判定だけに任せる

「外部で画像が見えること」と「無断直リンクを防ぐこと」の両方を満たすには、必要な画像・フォルダ・ホストだけを選択的に共有します。一括のオン・オフではなく、画像の用途ごとに公開範囲を決めてください。

修正後に確認すること

共有許可した作品だけを公開棚へ分け主展示を保護したギャラリー
  • 自サイト内の本文画像、アイキャッチ、ロゴが表示される
  • 画像URLを直接開いたときの結果が想定どおり
  • 許可した外部ページで1011が消えた
  • 許可していない外部ページでは保護が維持される
  • PCとスマホ、ログイン中と未ログインで表示できる
  • srcとsrcsetの各画像サイズが取得できる
  • Google Images、SNS、RSS、メール配信の方針と結果が一致する
  • OGP画像とサイトアイコンが必要なサービスで表示される
  • 画像URL変更後の404やMixed Contentがない
  • Cloudflareとオリジンの転送量が想定外に増えていない

設定変更後も1011が続くとき

正しいCloudflareゾーンを変更したか、画像が別ホストや別CDNから配信されていないか、Configuration Ruleの条件が対象パスと一致するかを確認します。WordPressのsrcsetには複数サイズの別URLが入るため、一枚だけでなく実際に失敗したURLを調べます。

設定を直しても外部サービス側の古い1011応答が残る場合は、サービスの再取得方法を確認します。自サイト側のキャッシュを無差別に削除する前に、新しいブラウザ要求でCloudflareの現在の応答を確かめ、必要な範囲だけを更新します。順番はWordPressキャッシュ設定の基本も参考にしてください。

よくある質問

画像URLを直接開くと見えるのに、なぜ1011になりますか?

直接アクセスではHTTP Refererが空になり、外部ページからの埋め込みでは外部ドメインがRefererとして送られることがあるためです。問題ページのNetworkで実際の画像要求を確認してください。

Hotlink Protectionを切ればSEOに有利ですか?

一律には言えません。公式資料ではクロール自体には影響しない一方、画像検索や一部SNSでの表示には影響します。画像流入、共有、帯域保護のどれを優先するかで対象範囲を決めます。

hotlink-okへ移せば既存記事はそのままでよいですか?

いいえ。移動で画像URLが変わるなら、WordPress本文、アイキャッチ、OGP、構造化データ、RSS、外部掲載先などの参照更新が必要です。旧URLをどう扱うかも決めてから移します。

まとめ

Cloudflare Error 1011は、Hotlink Protectionが外部からの画像利用を拒否したときのエラーです。1011画面、画像URL、表示元ページ、時刻を保存し、自サイト内・直接URL・外部ページで結果を比較してRefererと適用範囲を確認します。

許可したい利用まで止まっている場合は、保護全体をすぐ切らず、Configuration Ruleやhotlink-okで共有用画像だけを分けます。修正後は自サイトと外部表示だけでなく、検索・SNS・RSS、URL整合、無断直リンク防止、帯域利用まで確認してください。

-速度改善・安全対策