Google reCAPTCHAの課金モデル変更がもたらすもの
従来までは、reCAPTCHAは無料枠が大きく、月100,000件までは無料でしたが、現在は月10,000件まで無料(それ以上は有料)に縮小され、Google CloudのEnterprise課金体系へ移行を促す動きが強まっています。これによりクレジットカード登録や従量課金リスクが発生しやすくなっています。そこでreCAPTCHAの代替として、Cloudflare Turnstileの導入を検討しているサイト運営者も居られると思います。
ここではWordpressでContactform7のプラグインを利用しているシーンで設定から導入までを解説します。
Cloudflare Turnstile のメリット
料金・コストリスクの削減
Turnstile は 基本無料で利用可能(Managed モード)、利用回数の上限なしで導入できます。高トラフィックサイトでも、標準利用で追加費用が発生しにくい。ただし極めて高いボット管理やSLA が必要な場合は Enterprise へ移行が必要です。
ユーザー体験の向上
多くのケースでユーザーの何らかの操作を必要とせず、自動でヒューマン判定を行います。従来の、ボタンタップや画像選択不要になります。またCAPTCHAの煩わしい視覚課題や音声解読を廃止し、離脱率の改善に寄与します。
プライバシー重視
Googleによる認証ログやターゲティングの懸念がある場面でも、Turnstileは広告クッキーやログイン情報を使わない設計で、GDPR(General Data Protection Regulation)に対応しなければならないサイトにも対応します。
Cloudflare Turnstile のデメリット
高度な不正防止機能は別途対策が必要
Turnstileはボット検知・防止に効果的ですが、高度なボット管理や高度な攻撃防御(例:DDoS、スクレイピング抑止)は別機能・別契約が必要です。単体だけではすべての攻撃を防げないケースがあるので、他のセキュリティ施策(WAF、レート制限、IP ブロック等)と併用を推奨します。
ブラウザ/ネットワーク依存の問題報告
プロキシ、セキュリティゲートウェイ(例:Zscaler)、ブラウザ拡張によりチャレンジがループしたり表示されないケースもあり、実運用では運用前に確認が必要です。
WordPressやプラグイン対応状況
Turnstileを直接サポートするプラグインが増えていますが、サイトテーマや他のセキュリティプラグインとの競合を確認して導入する必要があります。
移行のポイント
reCAPTCHA v2を使っている場合、Turnstileの互換モードで比較的簡単に置き換え可能です。既存のフォーム実装がある場合はサーバー側確認手順を見直してください。WordPressのプラグイン対応状況を最新化し、プラグイン同士の競合テストをしっかり行います。
選択基準まとめ
| 考慮点 | Google reCAPTCHA | Cloudflare Turnstile |
| コスト | 一部無料枠あり(10,000 件/月)それ以上有料 | 基本無料・制限なし |
| ユーザー体験 | 時に画像選択などが必要 | 自動検知中心で軽量 |
| 導入の互換性 | 広い | 広い(互換モードあり) |
| プライバシー配慮 | Google エコシステム依存 | 広くプライバシー指向 |
| 高度対策 | reCAPTCHA Enterpriseあり | 専用Bot管理別途 |
導入・設定方法
- CloudflareでTurnstileのSite Key/Secret Keyを発行
- Contacftorm7とTurnstileを紐づける設定
- reCAPTCHAを無効化
- 動作チェック
Cloudflare Turnstile アカウント作成
Cloudflareにログインします。アカウントを取得していない場合は、新たにアカウントを取得してください。

ログイン後、左メニュー から「Turnstile」をクリックして、ウィジットを追加ボタンをクリックします。

実装するサイト名を入力して、サイト名、ドメイン名、ウィジェットのタイプを選択してください。ウィジェットのタイプはManagedを推奨します。

入力後、作成ボタンをクリックして、表示されたサイトキーとシークレットキーをコピーします。このキーでContactform7と紐づけします。

Contactform7の設定
WordPressのダッシュボードからContactform7のタブをインテグレーションをクリックして、Turnstileのウインドウでインテグレーションのセットアップをクリックします。

先ほどコピーしたサイトキーとシークレットキーをそれぞれ入力して変更を保存ボタンをクリックして保存してください。これで設定が完了となります。

フロント画面を表示して、送信ボタンの前後にTurnstileのウィジェットが表示されていたら成功です。
Turnstileの、[turnstile]の記述を表示させたい箇所に明示すると、ウィジェットの表示位置を自由に変更することができます。

Contactform7のreCAPTCHAを無効化
reCAPTCHAとTurnstileを併用した場合、送信失敗や無限ローディング、Javascriptエラーが高い確率で発生します。Turnstileのセットアップが成功したら、必ずreCAPTCHAを削除してください。
- WordPressのダッシュボードからContactform7のタブをインテグレーションをクリックして、reCAPTCHAを選択
- Google reCAPTCHAの設定を削除
- フォーム内にあるreCAPTCHのショートコードを削除
動作確認チェックリスト
- フロント画面でフォーム送信できる
- 管理者メールが届く
- JavaScriptエラーが出ていない
- キャッシュプラグイン使用時はJavascriptのキャッシュをクリア
よくあるトラブルと対策
送信ボタンを押しても反応しない
reCAPTCHAが残っている場合がありますので、キャッシュ系のプラグインを無効にし、ブラウザーのキャッシュもクリアして確認してください。
Turnstileが表示されない
ドメイン未登録もしくはドメイン名が間違っている可能性があります。登録したドメイン名やサイトキーとシークレットキーを確認してください。またiframeをブロックするセキュリティ系プラグインが入っている場合も表示されません。
<?php wp_footer(); ?>がページ内に存在しない場合も、Turnstileが表示されないので確認してください。
まとめ
運営されているサイトのフォームの送信数が多く、離脱率をできる限り減らしたいなどの要望があるのでしたらTurnstileを使う選択肢も十分にあると思われます。
| 観点 | Turnstile |
| 月間送信数が多い | ◎ |
| 広告・Google依存を減らしたい | ◎ |
| UX重視 | ◎ |
| 高度な不正対策 | △(WAF併用推奨) |
