Contact Form 7のスパム対策|Cloudflare Turnstile設定をステップバイステップ

「お問い合わせフォームに、海外から意味不明な英語のスパムが毎日大量に届く…」
そんなご相談が、ここ半年で本当に増えてきました。
WordPress制作歴15年、これまで3,000件以上のサイトを見てきた中で、私のお客様でも「2日で100件届いた」というケースが立て続けに発生しています。
こんた実はContact Form 7(以下CF7)は、スパム対策が何も入っていない状態だと完全に素通りしてしまうんですよね。
ボットからすれば、絶好のターゲットです。
そこで使うのが「Cloudflare Turnstile」というスパム対策ツール。
reCAPTCHAの代わりとして注目されていて、CF7の開発者・三好隆之さん(Takayuki Miyoshi)も 公式ブログ「Turnstile integration」 でこちらを推奨するスタンスを示しています。
この記事は、Web制作者の方も、自社サイトのご担当者様も、両方が読める形でまとめました。
- Cloudflareアカウント作成からTurnstile発行
- WordPressへのCF7連携
- honeypotとの併用
- よくあるつまずきとFAQ
までを順を追ってお伝えします。
「reCAPTCHAだと重い」「ユーザーにチェック操作させたくない」「Googleの追跡が気になる」…そんな方にこそ、Turnstileは刺さる選択肢です。
「自分でやるのは難しそう」というご担当者様へ
アカウント作成(STEP 1〜2)まではご自身でやっていただいて、その後の設定(STEP 3〜7)は制作会社にお任せする形が一般的です。
当社でもホームページ保健室でご相談を受け付けています。
なぜContact Form 7にスパム対策が必須なのか
CF7は便利ですが、初期状態のままだとスパムにとって完全に無防備です。
最近は1サイトで「1日100件超」のスパムが届くケースも珍しくありません。
スパム対策ゼロの状態は「無防備」
CF7はWordPress公式プラグインとして圧倒的なシェアを持つフォームプラグインですが、初期状態ではCAPTCHA系の機能が一切入っていません。
つまり、フォームのURLを知っているボットからすれば、何の障害もなく自動投稿し放題の状態。最近は海外からのスパム問合せが急増していて、ある日突然100件超のスパムが2日で押し寄せた、というケースもありました。
スパム放置のリスク
- お問い合わせメールに本物の問合せが埋もれて見落とす
- 自動返信メールが大量に送信されてサーバー負荷・送信制限に到達
- 添付されたURLが悪質サイトの場合、スタッフがうっかりクリックする危険
「うちは小さいサイトだから大丈夫」というのは通用しません。
フォームがある=ボットが見つけたら攻撃対象になる、と考えておくのが現実的です💡
実は私も、ヒヤッとしたことがあります!
数年前、自社サイトでreCAPTCHA v2を入れて「まあ大丈夫だろう」と放置していたら、ある朝メールボックスに同じパターンの英語スパムが300件届いていたことがありました。
自動返信も全部送信されてサーバーに負荷がかかって、本物の問合せ1件に気づくのが半日遅れたんですよね。お客様の温度感が落ちる前に対応できなかった時は本当に焦りました💦
そこからは「お客様にも同じ思いをしてほしくない」と思って、Turnstile移行を積極的に提案しています。
なぜTurnstile?reCAPTCHAじゃダメ?
結論、プライバシー・費用・速度の3点でTurnstileが有利です。
reCAPTCHAは2024年以降Enterprise版への統合が進んでおり、規模が大きくなると課金リスクが上がる流れになっています。
CF7開発者さんもTurnstile推奨です。
TurnstileとreCAPTCHAの違い
| 観点 | Cloudflare Turnstile | Google reCAPTCHA v3 |
|---|---|---|
| 費用 | 完全無料・無制限 | 月100万回まで無料(超過は有料Enterpriseへ) |
| ユーザー操作 | チェック不要・透過判定 | チェック不要・スコア判定 |
| プライバシー | データ収集なし・Cookieなし | Googleがトラッキング・Cookie使用 |
| 表示 | 控えめなウィジェット(緑チェック) | 右下にバッジ常時表示 |
| 速度 | 軽量・高速 | やや重い |
| CF7公式対応 | 公式プラグインあり | 公式プラグインあり |
特に大きいのは、プライバシー面と費用面です。
Googleの規約変更で、reCAPTCHAは段階的にEnterprise版への統合が進められていて、規模が大きくなると課金リスクが上がる流れ。Turnstileなら今後その心配がありません。
Contact Form 7の開発者・三好隆之さん(Takayuki Miyoshi)も、CF7公式ブログの Turnstile integration 記事でTurnstileを推す姿勢を示しています。CF7との相性は折り紙付き、というわけです。
導入の全体像
最初に、これから何をするかの地図をお見せしますね。合計25分前後で完了します!
- Cloudflareアカウントを作成(5分)
└ メール認証して、ダッシュボードへ - Turnstileサイトを発行(3分)
└ Site Key と Secret Key を取得 - WordPressにプラグイン導入(5分)
└ Simple Cloudflare Turnstile を入れる - Site Key / Secret Key を設定 + CF7有効化(3分)
- CF7フォームに自動表示されているか確認(2分)
- honeypotも併用(2分)
- テスト送信で動作確認(5分)
順番にご案内しますね。STEP 1〜2はクライアント・ご担当者様の作業領域、STEP 3〜7は制作者・WP管理者の作業領域として分けて読んでいただいてOKです。
Cloudflareアカウントを作成する
所要5分・完全無料。 すでにCloudflareアカウントをお持ちの方はSTEP 2へ進んでください。
メールアドレスとパスワードを入力

- メールアドレス
会社用の長く使うもの(個人Gmail等は引き継ぎで困るので避けたい) - パスワード
8文字以上(記号・数字含む推奨) - Cloudflare認証にチェック
「Sign Up」ボタンをクリック。
認証メールを確認
入力したメールアドレスにCloudflareから認証メールが届きます。「Verify email」ボタンをクリックして認証完了。

用途を選択(またはSkip)
認証が済むと、まず「Welcome! How do you plan to use Cloudflare?」というようこそ画面が出てきます。
「Personal」「Professional」「Personal & Professional」の3つから用途を選ぶ画面ですが、Turnstileの利用そのものには影響しません。
迷ったら右下の「Skip →」でスキップしてもOKです。

- Personal
個人ブログ・自分のポートフォリオサイト用 - Professional
クライアントの企業サイト・お仕事サイト用 - Personal & Professional
両方の用途で使う方 - Skip
後で決めたい方(あとからでも変更可能)
後からでも変更できるので、深く考えなくて大丈夫です。
Skipすると、もう1段「How would you like to get started?」というオンボーディング画面が続きます。

- Build and scale apps globally
アプリ開発・コンピュート/AI/ストレージ用 - Protect your apps and users
セキュリティ系(WAF・Bot対策など)。Turnstileに一番近いカテゴリ - Connect and accelerate traffic
CDN・DNSなどネットワーク系 - Skip
何も選ばずに進む(OK)
こちらもTurnstileの利用そのものには影響しないので、Skipで問題ありません。
強いて選ぶならTurnstileはセキュリティ系なので「Protect your apps and users」が近いですが、迷ったらSkipでサクッと進みましょう!
ダッシュボードに到達
用途を選ぶ(またはSkip)と、ダッシュボードに入れます。

これでアカウント作成は完了です!
右上のアカウントアイコン → 「My Profile」 → 「Authentication」から、2段階認証(2FA)を有効にしておくとより安心です。
Turnstileサイトを発行する
所要3分。
ダッシュボードからTurnstileの設定画面に進み、サイトを登録してSite KeyとSecret Keyの2つを取得します。
サイドバーから「Turnstile」にアクセス
左サイドバー「Protect & Connect」グループの中にある「Application security」をクリックして展開すると、メニュー内に「Turnstile」があります。

画面上部の Quick search(Mac: ⌘K / Windows: Ctrl+K)に「Turnstile」と入力すると、メニューを探さずに一発で開けます。
「Add widget」をクリック
Turnstileの「Overview」画面が開きます。中央の「Get started」カードにある「Add widget」ボタンをクリック。

「Add widget」の右にある「Migrate from a CAPTCHA Service」は、すでに reCAPTCHA を使っている方向けの移行支援ツールです。
今回は新規導入の手順なので、そのまま「Add widget」で進めてOKです。
サイト情報を入力
以下の情報を入力します。
| 項目 | 入力内容 |
|---|---|
| Widget name | わかりやすい名前(例:自社サイト お問い合わせフォーム) |
| Hostname Management | 「Add Hostnames」ボタンから設置するドメインを追加(例:example.com)。1ウィジェットで最大10個まで登録可能 |
| Widget Mode | Managed (Recommended) を選択 |
| Skip future security rule challenges (旧Pre-clearance) | No のまま(標準利用はOFFでOK) |

Widget modeの違い
| モード | 表示・動作 | 使いどころ |
|---|---|---|
| Managed (Recommended) | Cloudflareが自動判定。多くは非対話/不可視で完了し、高リスクのみ追加チャレンジ表示 | 基本これでOK(推奨) |
| Non-interactive | ローディングスピナーで検証中表示。操作は不要 | UX一貫性を保ちつつ「動いてる感」を見せたい時 |
| Invisible | 画面上に何も表示せずサイレント検証 | 視認チェックを完全に消したい時 |
迷ったら Managed (Recommended) が最も安全で実績があります。
これは Pre-clearance の新表記です。Cloudflareプロキシ環境で、Turnstileを通過したユーザーが その後の他のセキュリティルールも自動でバイパス できる仕組み。
通常のフォームスパム対策が目的なら 「No」のままでOK です。Cloudflareプロキシ+WAFルール連動の高度な利用をしている場合のみ「Yes」を検討してください。
Site key / Secret key を取得
「Create」をクリックすると、「Successfully created Turnstile widget!」 という緑のメッセージとともに Site key と Secret key が発行されます。

各キーボックスの「Click to copy」をクリックすればコピーできます。
後でWordPress側に貼り付けるので、メモ帳やパスワード管理ツールに控えておきましょう。
画面下部に 「Note: you will be able to view your keys again later.」 と表示されている通り、この画面を閉じても後から再閲覧可能。慌ててコピーしなくて大丈夫です。
ただし Secret key は絶対に他人に見せないように!
パスワード管理ツールへの保管をおすすめします。
キーボックスの上にある2つのリンクは、Cloudflare公式ドキュメントへのショートカットです。
今回のCF7プラグイン経由の手順では使いません(プラグインが内部で連携処理してくれるため)。プラグインを使わず自前でTurnstileを実装したい方向けの参照用リンクです。
ご担当者様の作業はここまでです
Site Key と Secret Key の2つを制作会社(または社内のWP担当者)に共有していただければ、ここから先は技術側で対応できます。
「STEP 3以降は誰かにお願いしたい」という方は、ぜひこちらからご相談ください。
WordPressにプラグインを導入する
所要5分。
無料プラグイン「Simple CAPTCHA Alternative with Cloudflare Turnstile」(旧名・通称: Simple Cloudflare Turnstile)を入れるだけです。
ここからは技術側の作業になります。
プラグイン名
「Simple CAPTCHA Alternative with Cloudflare Turnstile」(旧名・通称: Simple Cloudflare Turnstile)をインストールします。
作者は Elliot Sowersby / RelyWP。WordPress公式リポジトリにある完全無料のプラグインで、10万サイト以上で使われている定番です。Contact Form 7だけでなく、WPForms・Gravity Forms・WooCommerce・Elementor等にも対応しています。
導入手順

- WordPress管理画面 → プラグイン → 新規追加
- 検索ボックスに「Simple Cloudflare Turnstile」と入力
- 該当プラグイン(作者: Elliot Sowersby / RelyWP)の「今すぐインストール」をクリック
- インストール後、「有効化」をクリック
Site Key / Secret Keyを設定する
所要3分。
STEP 2で取得した2つのキーを、プラグイン設定画面に貼り付けるだけです。
設定画面へアクセス
WordPress管理画面の 「設定」 → 「Simple CAPTCHA Alternative with Cloudflare Turnstile」 から設定画面を開きます。
Site Key / Secret Key を貼り付け
- Site Key:STEP 2で取得したSite Key
- Secret Key:STEP 2で取得したSecret Key
「APIキーの設定」セクションの「サイトキー」「シークレットキー」欄にそれぞれ貼り付けます。まだ「変更を保存」は押さずに次のSTEPへ進んでください。

「フォームでTurnstileを有効化する」でCF7をON
同じ設定画面の下のほうに「フォームでTurnstileを有効化する」セクションがあります。「Contact Form 7」項目の「すべてのCF7のフォームで有効化」チェックボックスをON にします。
必要に応じて他のフォーム(WordPressログイン・コメント・WooCommerceチェックアウト等)も同時に有効化できます。設定が終わったら「変更を保存」をクリック。

「応答テスト」で動作確認(必須!)
「変更を保存」を押すと、画面に 「もうすぐ完了です…」 ボックスが現れて、「APIキーが更新されました。Turnstileの応答を以下よりテストしてください。」 というメッセージが表示されます。

プラグイン自身が 「テストが正常に完了するまで、Turnstileはどのフォームにも追加されません」 と書いている通り、ここを通さないと設定したCF7フォームにTurnstileが表示されません。
「保存して終わり」と思って公開ページを見て「あれ、表示されない…」となるのを防ぐために必須のステップです。
- 表示された Turnstile ウィジェットのチェックマークを操作(多くは自動完了)
- ウィジェット内に緑の 「成功しました!」 が出る
- 下の緑ボタン 「応答テスト →」 をクリックして確定
- 画面上部に緑文字で 「✅ 成功 ! Turnstile はこれらの API キーで正しく動作します。」 と表示されたらテスト完了

このメッセージが出れば STEP 4 完了 です。お疲れさまでした!
CF7フォームに自動表示されているか確認
所要2分。 実は STEP 4 までで設定が完了 していて、お問い合わせフォームを表示すると自動的にTurnstileが出ています。フォーム本文を触る必要はありません。
このプラグインは、設定画面でCF7を有効化すると サイト内のすべてのCF7フォームに自動でTurnstileを差し込む 仕組みです。
フォームごとにショートコードを書き加える必要がありません。
公開ページのフォームを開く
お問い合わせページなど、CF7フォームを設置してあるページを公開ビューで開いてください。
送信ボタンの近くにTurnstileのウィジェット(緑のチェックマーク)が表示されていればOKです。
特定のフォームだけ手動で配置したい場合(オプション)
「全CF7フォーム自動」がデフォルトですが、表示位置を細かく制御したい 場合はショートコード を CF7 のフォーム編集画面で送信ボタンの直前に手動配置することもできます。
<label> お名前
[text* your-name] </label>
<label> メールアドレス
[email* your-email] </label>
<label> 件名
[text* your-subject] </label>
<label> メッセージ本文(任意)
[textarea your-message] </label>
[cf7-simple-turnstile] ←←←ここに挿入
[submit "送信"]
通常はSTEP 4 の設定だけで完結するので、こだわりがなければ ショートコードは不要 です。
honeypotを併用する(さらにスパムをブロック)
所要2分。 Turnstileだけでも十分ですが、honeypotを併用すると「ほぼ完全防御」レベルまで持ち上がります。
honeypotとは
人間には見えない「罠フィールド」を設置して、ボットだけが入力してしまうものを弾く仕組みです。Turnstileと違って完全にバックグラウンドで動作するので、ユーザーには何の影響もありません。
CF7 Apps(旧Honeypot)プラグインの導入
「CF7 Apps – Honeypot, Database, Redirection, Webhook, and Addons for Contact Form 7」(作者: Saad Iqbal / WPExperts、30万サイト以上で稼働)をインストール&有効化。
※ 旧称「Contact Form 7 Honeypot」 がリブランドされて、現在はhoneypot以外にもデータベース保存・リダイレクト・Webhook等のApp集合体になっています。検索する時は「CF7 Apps」または「Contact Form 7 Honeypot」どちらでもOK。
有効化したら、WordPress管理画面 → CF7 Apps ダッシュボードで 「Honeypot App」を有効化 してください。
ショートコード追加
フォーム本文に以下を追加。
[honeypot website-honeypot]
ボット側からはただのフィールドに見えるので、入力してしまう=スパム判定でブロックされます。
テスト送信で動作確認
所要5分。 通常送信・意図的な不正送信・運用後ログ確認の3パターンで確認しましょう。
通常の送信テスト
- 公開ページのフォームを開く
- Turnstileのウィジェットが表示されているか確認
- 全項目入力して「送信」
- メールが届くか確認
Turnstileを意図的に外したテスト
開発者ツール(F12キー)でTurnstileのHTMLを削除してから送信してみる → エラーになればOK。
しばらく運用してログ確認
導入後、数日〜1週間ほど運用してからスパム到達数を確認します。劇的に減っていれば成功です!
よくあるつまずき・FAQ
Turnstileが表示されない
以下を確認してください。
- Site Keyの貼り付けが正しいか(コピペミス・空白混入など)
- ドメイン設定がCloudflare側と一致しているか(www有無、サブドメインの違いなど)
- ブラウザのコンソール(F12 → Console)にエラーが出ていないか
「Verification failed」とエラーが出る
Secret Keyの設定ミスが多いです。プラグイン設定画面で再度貼り直してみてください。
すでにreCAPTCHAを入れている。両方入れてもいい?
重複は推奨しません。 Turnstileに切り替える方針なら、既存のreCAPTCHA関連の設定(CF7のIntegration設定)は無効化してから進めてください。
クライアントのアカウントで作るべき?制作者のアカウント?
クライアント所有がベストです。 理由は、Cloudflareアカウントはドメインやサーバーと同じ「資産」扱いだから。今後の引き継ぎ・移管を考えると、クライアント側で作成→制作者をMember招待が一番きれいです。
アカウント作成の依頼で注意点は?
私がいつもクライアント様にお願いしているのは以下です。
- メールアドレスは「会社用の長く使うもの」を指定
- パスワード管理ツール(1Password等)に登録してもらう
- 2段階認証を必ず有効化
- 制作者をMember(管理者権限)として招待
設定が不安。代行してもらえる?
はい、kontaworksではホームページ保健室で1回完結の相談・代行を受け付けています。STEP 1〜2のアカウント作成だけご担当者様にお願いして、その後の設定〜動作確認まで丸ごと代行可能です。
Contact Form 7のスパム対策、まずはTurnstileから
ここまでの流れをまとめます。
- Contact Form 7は標準でスパム対策ゼロ → ボットの格好の標的
- 対策はCloudflare Turnstileがおすすめ(無料・軽量・プライバシー重視)
- アカウントはクライアント所有が原則。制作者をMember招待で運用
- 設定は25分前後で完了
- honeypot併用でほぼ完全防御に
3,000件以上のサイトを見てきた中で、ここ半年は本当にスパム被害のご相談が増えています。「うちはまだ大丈夫」と思っているうちに、ある日いきなり100件届く——というのが最近のパターン。先回りして対策しておくのが、いちばんラクです。
💬 「うちのフォームもスパムまみれかも…」という方へ
Cloudflare Turnstile導入はもちろん、CF7まわりの設定全般・WordPressのセキュリティ強化まで、こんたホームページ製作所のホームページ保健室で対応しています。
「まず話だけでも聞いてみたい」も大歓迎です!
ホームページ保健室
「ホームページがわからなすぎる」とひとりで悩んでいませんか?

法人~個人まで2,500サイトを制作したWebサイト制作技術の専門家が、
ホームページの技術的なこと~運用方法まで、
なんでも解決する『ホームページ保健室』をご利用ください。
\ 何日も悩んでいたことが、一瞬で解決 /










