← Blog

Cloudflare リンクのプレビューをブロックしますか?その理由は次のとおりです

OG タグは正しいです。画像はブラウザに正常に読み込まれます。ただし、Discord、Facebook、または Slack では、サイトを Cloudflare の後ろに置いているため、プレビューは表示されません。通常、これはタグの問題やキャッシュの問題ではありません。これは、クローラーを攻撃者として扱う Cloudflare のボット保護です。

Cloudflare が原因かどうかわかりませんか?

Proovd を使って無料でチェックして、サイトが実際にクローラーに何を返すかを確認し、それをブラウザーで見られるものと比較してください。

簡単な回答

  • Bot Fight Mode と「私は Under Attack Mode です」は、Cloudflare を追加した後にプレビューが壊れる最も一般的な原因です
  • どちらの機能も、自動化されているように見えるトラフィックに挑戦し、ソーシャル プレビュー クローラーは設計上自動化されているように見えます。
  • Bot Fight Mode は、通常の WAF ルールではバイパスできません。通常のルールエンジンの外で実行されます

人々が実際に報告するパターン

これは理論上の特殊なケースではありません。 Cloudflare のコミュニティ フォーラムで、ある開発者は、og:image は HTTP 経由では正常に動作していましたが、サイトを 7 ⟧ の後ろに置くと HTTPS にフェイルオーバーしたと説明しました。修正により、「Under Attack Mode」が無効になりました。別のスレッドには、「Cloudflare が Facebook をブロックしている、その修正方法」という明白なタイトルが付けられており、やはり原因は Under Attack Mode でした。 3 人目の開発者は、プレビューが突然壊れることについて他に説明がなかったため、リンクが共有されたときに Bot Fight Mode が Facebook と X をブロックするかどうかを直接質問しました。

共通点: サイトの HTML タグまたは OG タグについては何も変更されていません。唯一の新しい変数は、オリジン サーバーの前にある Cloudflare のセキュリティ層でした。

なぜこれが起こるのか

Under Attack Mode は、必要なボットを含むすべての訪問者に挑戦します

Under Attack Mode は、リクエストを通過させる前に、すべての訪問者に JavaScript チャレンジ ページを表示します。 Discord や Facebook のようなソーシャル プレビュー クローラーは JavaScript を実行しないため、その課題を解決できません。実際の HTML ではなくチャレンジ ページが表示され、OG タグがないということはプレビューがないことを意味します。

Bot Fight Mode はトラフィックをスコアリングし、自動化されているように見えるあらゆるものに挑戦します

Bot Fight Mode は、Cloudflare の無料プランではデフォルトでオンになっています。既知のボット パターンに一致するリクエストを識別し、計算チャレンジを発行します。ページを 1 回フェッチし、画像の読み込みやスクリプトの実行を行わず、ブラウザーのフィンガープリントを持たないクローラーは、そのパターンと厳密に一致します。これは、外部から見たリンク プレビュー ボットとまったく同じです。

Cloudflare 自身のドキュメントでは、Bot Fight Mode は別の評価パイプラインで実行されるため、WAF カスタム ルールまたはページ ルールを使用してバイパスまたはスキップできないことが確認されています。クローラーがブロックされている場合、通常の許可ルールでは修正できません。これをオフにするか、例外をサポートする Super Bot Fight Mode にアップグレードしてください。

検証済みのボットには例外が発生します。ほとんどのソーシャル クローラーは自動的に認定されません

Cloudflare は、チャレンジをスキップできる Googlebot や Bingbot などのサービスの検証済みボット リストを管理しています。すべてのソーシャル プラットフォームのプレビュー クローラーがデフォルトでそのリストに含まれることが保証されているわけではないため、サイトがアクセス可能な場合でもプレビューが機能しない可能性があります。

ステップバイステップの修正ガイド

  1. Cloudflare ダッシュボードの [セキュリティ] で、Under Attack Mode が現在オンになっているかどうかを確認します。表示されている場合は、オフにしてプレビューを再テストしてください
  2. [セキュリティ] > [イベント] に移動し、「Bot Fight Mode」というラベルの付いたアクションをフィルターします。クローラーのリクエストがチャレンジまたはブロックされていることが確認できれば、原因が確認できます。
  3. 無料プランをご利用の場合は、Bot Fight Mode を一時的に無効にして、再テストしてください。直後にプレビューが機能すれば、それで完了です
  4. Pro 以上を使用している場合は、代わりに Super Bot Fight Mode に切り替えてください。これにより、保護を完全にオフにするのではなく、既知のソーシャル クローラーに対するスキップ ルールを追加できます
  5. 検証済みのボットおよび既知のソーシャル プレビュー ユーザー エージェント (Discordbot、facebookexternalhit、Slackbot、TwitterBot) からのリクエストを許可してチャレンジをスキップできるカスタム ルールを追加します。
  6. Proovd で修正を再確認します

Cloudflare プレビューを壊すことが多いセキュリティ設定

Setting Available on Can you add exceptions?
Under Attack Mode All plans No, it challenges everyone equally
Bot Fight Mode Free and above No, cannot be skipped with WAF rules
Super Bot Fight Mode Pro and above Yes, supports Skip rules per bot category
Custom WAF rules All plans Yes, fully configurable

ボット保護ではない場合

Under Attack Mode と Bot Fight Mode が両方ともオフで、プレビューがまだ壊れている場合、次に考えられる原因は、古い HTML を提供する古いエッジ キャッシュ、または誰かが設定したカスタム ルールを通じて WAF がクローラーのユーザー エージェントをブロックしていることです。推測するのではなく、応答ヘッダーを直接確認してください。

curl -I -A "facebookexternalhit/1.1" https://yoursite.com/page

応答内の 403 またはチャレンジ ページは、クローラーが Cloudflare 構成のどこかでまだブロックされていることを意味します。 200 に正しいタグが付いている場合は、ブロックが解決され、残っている問題はプラットフォーム側にあることを意味します。次の手順については、「すべてのプラットフォームで OG キャッシュをクリアするためのガイド」ガイド を参照してください。

クイックフィックスチェックリスト

  1. チェック済みのセキュリティ > クローラーリクエストに対する Bot Fight Mode アクションのイベント
  2. Under Attack Modeが現在有効になっているかどうかを確認しました
  3. それが原因かどうかをテストするために、Bot Fight Mode を一時的に無効にしました
  4. プランで利用可能な場合、既知のソーシャル クローラーに対するスーパー Bot Fight Mode のスキップ ルールを追加しました
  5. クローラーの実際のユーザー エージェント文字列を使用して、curl でテスト済み
  6. 最終結果をProovdで確認しました

よくある質問

Bot Fight Mode は Facebook と Discord クローラーをブロックしますか?

できる。 Bot Fight Mode は既知のボット パターンに一致するトラフィックにチャレンジし、ソーシャル メディア プレビュー クローラーはそれらのパターンに一致します。 Cloudflare のコミュニティ フォーラムの開発者がまさにこれを報告しています。

Cloudflare を追加する前にリンクのプレビューが機能したのはなぜですか?

OG タグが変更されていない場合、Cloudflare のセキュリティ層が新しい変数になります。 Under Attack Mode と Bot Fight Mode が最も一般的な原因です。

サイトがクローラーに何を返すかを確認します

Proovd で無料でチェックして、Cloudflare のダッシュボードやプラットフォーム独自のキャッシュに関係なく、何が提供されているかを正確に確認してください。