Cloudflare TurnstileをreCAPTCHAの代わりとしてWordPressに導入する

スパム対策として利用していた Google reCAPTCHA が従量制に変更されたため、Cloudflare Turnstile に移行することにしました。

従量制の中身は、1ヶ月10,000件までは無料なので、小規模のサイトや個人ブログではそうそう超えることはなさそうですが、ある日突然大量スパムの標的になる可能性も否めません。

Google Cloud の課金を無効にしている場合は、月間の無料枠に近づくか、上限を超えると、課金を有効にするよう通知されるそうです。10,000件を超えても無課金のままだとエラー判定になるとか。

詳しくは Google Cloud に関する下記ドキュメントにまとめられていました。

そもそも reCAPTCHA に限らず「従量制」というルールに警戒心があり、忘れた頃に請求がきて焦るという経験は身に覚えがあるので、ここは始めから 無料 としているサービスに移行した方が心の安寧を保てると思い、今回導入するにいたりました。

(以下の作業手順や画面は、2025年9月に行った内容です)

Cloudflareのアカウントをつくる

アカウントの作成は、Cloudflare のサイトにアクセスして「無料で始める」のボタンをクリックします。

Cloudflare トップページ

方法はいくつかありますが、Googleアカウントと連携すればすぐに作成できました。

Cloudflareアカウント作成のためのサインアップ画面

Turnstileからサイトキーとシークレットキーを取得する

Cloudflare ダッシュボードを開き、左メニューから Turnstile を選択して、ウィジェットを追加 ボタンをクリックします。

Cloudflare の Turnstile ページ

ウィジェットを追加 ページに移るので、 任意でウィジェット名 を入力し、 ホスト名の追加 ボタンを押下すると、ページ右側から入力画面がスライドして表示されます。

Cloudflare の ウィジェットを追加 ページ

表示された ホスト名の追加 の項目に、ホスト名(ドメイン名)を入力して、追加 ボタンを押します。

Cloudflare の ホスト名の追加 画面でホスト名を入力する

下部に追加したホスト名が表示されるので、チェックボックスをチェックして、追加 ボタンを押します。

Cloudflare の ホスト名の追加 画面で追加したホスト名をチェックして追加する

すると、元の ウィジェットの追加 ページに戻り、ホスト名がリストに追加されるので、右下の 作成 ボタンを押します。

Cloudflare の ウィジェットを追加 ページで追加したホスト名のウィジェットを作成する

「Turnstile ウィジェットの作成に成功しました。」の文言とともに、サイトキー シークレットキー が表示されます。

Cloudflare の ウィジェットを追加 ページ でサイトキーとシークレットキーを取得する

WordPressのプラグインに設定する

次に Turnstile で取得したキーを、以下の 2つ のプラグインに設定していきます。

Contact Form 7 のお問い合わせフォームに入力して送信ボタンを押すと、黄色枠で「入力内容に問題があります。確認して再度お試しください。」というエラーが出るようになりました。

Contact Form 7 の黄色枠エラー「入力内容に問題があります。確認して再度お試しください。」

入力フォームの Turnstile 設定は、2つのプラグインで以下のように使い分けていました。

  • お問い合わせフォームは Contact Form 7 のインテグレーションから設定
  • その他のフォームは Simple CAPTCHA Alternative with Cloudflare Turnstile で設定

不具合が分かってから、2つのプラグインの Turnstile 機能を交互に停止して検証したところ、どちらかの設定を削除または無効にするとエラーは起こらず送信できました。以下は停止するための作業内容です。

  • Contact Form 7 のインテグレーション設定の削除する
  • Simple CAPTCHA Alternative with Cloudflare Turnstile プラグインを無効化する(「すべてのCF7のフォームで有効化」にチェックを外していてもエラーは出たため)

アップデートのどこかでコンフリクトを起こすようになったみたいです。そのため、すべてのフォームに設定できる Simple CAPTCHA Alternative with Cloudflare Turnstile に統一することにしました。

対応手順は以下の通りです。

  1. Contact Form 7(お問い合わせ)から Turnstile のインテグレーションを 削除 する。
  2. Simple CAPTCHA Alternative with Cloudflare Turnstile の Contact Form 7 の Turnstile を 有効化 する。

今後のアップデートで解消されるかもしれませんが、ひとまず上記の方法で対処しました。

Contact Form 7 に設定する

WordPress 左メニューの お問い合わせ から インテグレーション を選択します。Contact Form 7 をすでに利用していて、reCAPTCHA にキーを設定していた場合は、前もって削除しておきましょう。

【更新:2025/12/19】ここから下の Contact Form 7 の設定はせずに、Simple CAPTCHA Alternative with Cloudflare Turnstile から Contact Form 7 の設定を行います。

Turnstile の設定は インテグレーションのセットアップ ボタンをクリックしてキーの入力画面を開きます。

Contact Form 7 の Turnstile にインテグレーションのセットアップを行う

取得したサイトキーとシークレットキーを入力して 変更を保存 します。

Contact Form 7 に Turnstile のサイトキーとシークレットキーを設定する

このままだと Turnstile のウィジェットがフォームの先頭に表示されます。

お問い合わせフォームの Turnstile ウィジェットの位置が上

これではレイアウトとして少々見にくいので、フォームの編集画面をから [turnstile] タグを [submit “送信”] の手前に挿入して、表示位置を移動させました。

お問い合わせフォームに[turnstile] タグを挿入する

ウィジェットが下記のように、送信ボタンの手前に配置されると思います。

お問い合わせフォームの Turnstile ウィジェットの位置が下

Simple CAPTCHA Alternative with Cloudflare Turnstile に設定をする

Simple CAPTCHA Alternative with Cloudflare Turnstile は、Turnstile を WordPress のログインフォームなどの入力画面に設定するためのプラグインで、プラグインを追加 からインストールして有効化します。

Simple Cloudflare Turnstileプラグインを追加して有効化する

WordPress 左メニューの 設定 から、Simple Cloudflare Turnstile の設定画面を開き、API キーの設定 の項目に取得したサイトキーとシークレットキーを入力します。

Simple Cloudflare Turnstile にサイトキーとシークレットキーを設定する

Turnstile を有効にするフォームのチェックボックスをチェックして、変更を保存 をクリックします。Contact Form 7 はすでに設定済みで重複するためチェックはしていません。
【更新:2025/12/19】Contact Form 7 にもチェックを入れて有効化します。

WordPressのフォームに Simple Cloudflare Turnstile から Turnstile を有効化する

保存したあと、「もうすぐ完了です…」の枠の中にある、ミドリ色の 応答テスト → ボタンを押します。

Simple Cloudflare Turnstileの応答テスト

成功!Turnstile はこれらの API キーで正しく動作します。」の文字がでたら完了となります。

Simple Cloudflare Turnstileの応答テストの成功

最後の 応答テスト ボタンを見落として押さなかったため、計測されなくて困惑した、ということがありました……。

計測内容の確認

Cloudflare ダッシュボードから Turnstile を開いて、先ほど設定したウィジェットの右端にある 分析を表示 のテキストリンクをクリックをすると、計測内容が確認できると思います。

フィードバックを送る

いただいたフィードバックは事前の了承なく今後の投稿に活用させていただく場合がございます。あらかじめご了承ください。また、個人に関する情報やメールアドレスが公開されることはありません。※ のある入力欄は必須項目になります。