WordPressのお問い合わせフォーム、意外と運用が大変ですよね。
私がとくに困っていたのが、Contact Form 7経由で届く迷惑メールです。
ずっとGoogle reCAPTCHA v3を使っていたんですが、サイト全体の速度改善や外部スクリプトの見直しをしているときに、こんなことを思い始めました。
- reCAPTCHAってちょっと重くない?
- Cloudflare Turnstileの方が軽そうだし、無料で使いやすそう
- Cloudflareをもう使ってるなら管理もまとめられそう
そう思って、reCAPTCHA v3からCloudflare Turnstileへ切り替えてみました。
結論から言うと、PageSpeed Insightsのスコアは若干上がりました。しかし、私の環境ではTurnstileに変えてから迷惑メールが増えたと感じました。

ただ、最初に断っておくと、これは厳密なABテストではありません。切り替え前後で正確な件数を比較したわけではないので、「TurnstileはreCAPTCHAより弱い」と断定するつもりはありません。
とはいえ、実際に運用していて無視できない変化でした。この記事では、その体験をもとに以下を整理します。
- reCAPTCHAって本当に有料になったの?
- Turnstileに変えて迷惑メールが増えた理由として何が考えられるか
- Contact Form 7ではどう考えればいいか
- reCAPTCHAに戻すべきかどうか
先に結論
私の結論はこうです。
- Turnstileは無料で使いやすく、ユーザー体験もかなり良い
- Contact Form 7 6.1以降ではTurnstile公式統合がある
- ただし私の環境では、Turnstileに変えてから迷惑メールが増えたと感じた
- reCAPTCHAはEssentialsなら月10,000 assessmentまで無料で、完全有料化ではない
- 迷惑メールが増えるなら、reCAPTCHA v3に戻す判断は普通にあり
念のために言っておくと、Cloudflare Turnstile自体が悪いという話ではないです。むしろ、無料で使いやすくてユーザーにも優しい良い仕組みだと思っています。
ただ、お問い合わせフォームって「軽さ」だけが目的じゃないですよね。迷惑メールをどれだけ減らせるかも同じくらい大事。私の場合は、軽さよりも迷惑メールが増えたことの方が気になりました。
なぜTurnstileに乗り換えようと思ったのか

きっかけはサイト速度と外部スクリプトの見直しでした。
GA4やJetpack、Cloudflare Web Analyticsを整理していく中で、フォーム周りも気になってきたんです。「reCAPTCHAも外部スクリプトだし、もっと軽くできるんじゃね?」という流れです。
Cloudflare Turnstileは、Cloudflareが提供するCAPTCHA代替サービスです。訪問者のブラウザ上でバックグラウンドにチャレンジを実行する仕組みで、多くの場合は追加操作なし、必要なときだけ簡単なチェックボックスが表示される設計です。「信号機の画像を選んでください」みたいなCAPTCHAより、ずっとユーザーに優しいですよね。
しかもFreeプランがあって、個人サイトやブログ、小〜中規模のビジネス向けとして案内されています。「個人ブログならこれで十分かも」と思って切り替えました。
Turnstileにして良かったこと
導入がスムーズ
Cloudflareをすでに使っているなら、Turnstileの管理画面にもすんなり入れると思います。サイトキーとシークレットキーを作って、WordPress側に設定するだけ。Contact Form 7 6.1以降ではTurnstileの公式統合モジュールもあるので、以前より導入のハードルがかなり下がっています。
Cloudflare Turnstileでサイト用のウィジェットを作成し、site key と secret key を取得します。Contact Form 7 6.1以降なら、WordPress管理画面の「お問い合わせ」→「インテグレーション」からTurnstileを設定できます。
以前は別プラグイン経由で導入するケースもありましたが、現在のContact Form 7では公式統合があるため、導入のハードルはかなり下がっています。
ユーザー体験が良い
フォームを送るたびに面倒な認証を求められると、送る側もストレスですよね。Turnstileはその点かなり優秀で、邪魔にならない設計が気に入りました。
無料枠が使いやすい
Freeプランでは、最大20個のウィジェット・無制限のチャレンジ・7日間の分析ルックバックが使えます。個人ブログなら無料プランで十分なケースがほとんどだと思います。
でも、迷惑メールが増えた

問題はここでした。
Turnstileに変えてから、Contact Form 7経由の迷惑メールが増えたと感じました。体感としてはかなりはっきりしています。
厳密な件数記録はしていないので「体感」ではあるんですが、毎日の手動削除が増えると、じわじわとストレスがたまります。reCAPTCHA v3のときは比較的平和だったのに……という感覚は正直あります。
なぜ迷惑メールが増えたのか

断定はできないんですが、考えられる理由をいくつか挙げてみます。
reCAPTCHA v3の行動ベース判定が効いていた可能性
reCAPTCHA v3は、チェックボックスではなくユーザーの行動をもとにリスク判定するタイプです。
「Turnstileが弱い」というより、「reCAPTCHA v3の方が自分のサイトに来るスパムに相性が良かった」という見方が正確かもしれません。スパムの種類やフォーム構成によって、どちらが効くかは変わってきます。
設定や運用に抜けがあった可能性
Turnstile自体を入れていても、こういった点で防御漏れが起きることがあります。
- すべての問い合わせフォームに適用されているか
- 古いフォームや別フォームが残っていないか
- キャッシュや最適化プラグインでトークン検証が壊れていないか
- サーバー側で検証が正しく動いているか
フロント側にウィジェットが表示されていても、実際には保護されていないケースがあるので、一度確認してみる価値はあります。
CAPTCHAだけでは止まらないスパムもある
迷惑メール対策は、CAPTCHAだけで完結しないことがあります。
- URL欄を機械的に埋める
- 英文の定型文を大量送信する
- フォームの送信処理を直接狙う
こういうタイプのスパムには、AkismetやハニーポットなどCAPTCHA以外の対策が必要になります。
たまたまスパムの波と重なっただけかも
スパムはずっと一定ではありません。Turnstileへの切り替え時期と、スパムが増えた時期がたまたま重なった可能性も否定できないです。AIの発展に伴い、迷惑メールも増えてそうですし。
なので「Turnstileに変えたから絶対に増えた」とは言い切れません。ただ、実害がある以上、何かしら対策は必要です。
reCAPTCHAって有料になったんじゃないの?
乗り換えを考えた理由のひとつに、「reCAPTCHAってもう有料なんじゃ?」という不安がありました。
結論として、完全有料化ではありません。
請求が有効になっていないプロジェクトで新しいキーを作るとEssentials階層になり、月10,000件のassessmentまでは無料です。課金を有効にしたStandardでも、10,000件までは無料。超えた分は100,000件まで8ドル、さらに超えるとEnterpriseになります。
ポイントは、assessmentはページビューではないこと。お問い合わせフォームしか守っていないなら、よほどスパム攻撃を受けない限り、無料枠を超えることは少ないと思います。
ただし、スパム攻撃が多い場合はassessment数が増える可能性があります。reCAPTCHAに戻すなら、Google Cloud側で使用量を確認しながら使うのが安心です。
どちらがいいの?
正直なところ、一概には言えません。
| ツール | 良いところ | 気になるところ |
|---|---|---|
| Cloudflare Turnstile | 無料・軽量・ユーザー体験が良い。Contact Form 7 6.1以降で公式統合あり | 私の環境では迷惑メールが増えた |
| Google reCAPTCHA v3 | 私の環境では迷惑メールを抑えられていた可能性がある | 外部スクリプトの影響、Google Cloud側の設定がやや面倒 |
サイトによって、フォーム構成もスパムの来方もプラグイン環境も違います。最終的には、自分のサイトで試して判断するしかないです。
Turnstileを使い続けるなら確認したいこと

もしTurnstileを残すなら、次の点は一度チェックすることをおすすめします。
- Contact Form 7が6.1以降かどうか
- すべての問い合わせフォームにTurnstileが適用されているか
- キャッシュや最適化プラグインで検証が壊れていないか
- Akismetなど他のスパム対策を併用しているか
- 2週間〜1か月ほど、迷惑メールの件数を記録しているか
これからTurnstileを導入する方は、スパムの件数の記録しておくのがいいでしょう。「増えた気がする」だけだと判断しづらくなります。数字があると、本当に増えたのか・一時的な波なのか・どの対策が効いたのかが見えやすくなります。
私はもともとAkismetのスパム対策をやっています。
追加できるスパム対策
CAPTCHAを変えるだけで足りない場合は、こういった対策も組み合わせてみてください。
- Akismetを有効にする
- フォームからURL入力欄をなくすか任意にする
- 禁止ワードを設定する
- 日本語入力必須の項目を作る
- ハニーポット系の対策を追加する
- Cloudflare側でレート制限やWAFルールを検討する
ただし、対策を増やしすぎると本物の問い合わせを弾いてしまうリスクもあります。ユーザーに負担をかけすぎない範囲で、必要な対策を足すのが良いと思います。
ハニーポットは、人間には見えない入力欄をフォームに仕込んでおき、そこに入力してきた送信をスパム扱いする仕組みです。普通の読者には見えないため、ユーザー体験を邪魔しにくい一方、すべてのスパムを防げるわけではないので、TurnstileやreCAPTCHA、Akismetなどと組み合わせて考える補助対策です。
まとめ

reCAPTCHA v3からTurnstileに変えたのは、軽さへの期待と無料で使いやすそうだったから。実際、Turnstileは導入しやすくてユーザー体験も良い、素直に良いサービスだと思っています。
ただ、私のWordPress + Contact Form 7環境では、切り替え後に迷惑メールが増えたと感じました。そしてreCAPTCHAは完全有料化ではなく、Essentialsなら月10,000 assessmentまで無料。「reCAPTCHAは高そうだから戻せない」と思い込む必要はないです。
最終的な判断はこんな感じです。
- 迷惑メールが少ないならTurnstileで十分
- 迷惑メールが増えるなら、reCAPTCHA v3に戻すのもあり
- どちらにしても、CAPTCHAだけで足りないならAkismetやハニーポットを併用
- 速度だけでなく、管理ストレスも含めて判断する
正直な感想を言うと、「Turnstileは悪くない。でもお問い合わせフォームに限っては、reCAPTCHA v3の方が安心だったかもしれない」というのが今の気持ちです。
私はTurnstileを使い続けるつもりです。Turnstileもきっとアップデートかなんかされて、より優秀になるだろ!みたいに楽観的に考えています!
参考情報
Google Cloud「reCAPTCHA の請求情報」https://docs.cloud.google.com/recaptcha/docs/billing-information
Google Cloud「reCAPTCHA の各ティア間の機能の比較」https://docs.cloud.google.com/recaptcha/docs/compare-tiers
Cloudflare Docs「Turnstile」https://developers.cloudflare.com/cloudflare-challenges/challenge-types/turnstile/
Cloudflare Docs「Turnstile plans」https://developers.cloudflare.com/turnstile/plans/
Contact Form 7「Contact Form 7 6.1」https://contactform7.com/2025/06/26/contact-form-7-61/
Contact Form 7「Turnstile integration」https://contactform7.com/turnstile-integration/
Contact Form 7「reCAPTCHA v3」https://contactform7.com/recaptcha/

コメント