Google reCAPTCHA から Cloudflare Turnstile へ移行した話【Contact Form 7・初心者向け手順つき】

目次

きっかけは Contact Form 7 のお知らせ

WordPress の問い合わせフォームに Contact Form 7 を使っているのですが、ある日インテグレーション画面にこんなメッセージが出ているのに気づきました。

Turnstile は Cloudflare によるスマートな CAPTCHA 代替サービスです。Contact Form 7 は Turnstile とのインテグレーションモジュールを提供し、あなたのフォームをスパムボットから守ります。Google reCAPTCHA とは異なり Turnstile は無料で利用できます。reCAPTCHA を使うべき理由が特にないのであれば Turnstile を選択してください。

「reCAPTCHA とは異なり Turnstile は無料」という一文がちょっと引っかかって、YouTube やブログで調べてみると、「reCAPTCHA が有料化するので Turnstile に移行しよう」という情報がたくさん出てきました。

私のサイトでもずっと reCAPTCHA を使っていたので、これは移行しておいた方が良さそうだなと思い、実際にやってみることにしました。この記事は、その作業をスクショを撮りながら一通りやってみた記録です。同じところで止まっている人の参考になればうれしいです。

そもそも reCAPTCHA は「もう有料」なの?

ここは少し誤解しやすいところなので、自分の理解を整理しておきます。

調べてみたところ、結論としては「今すぐ課金されるわけではないが、放っておくと管理が面倒になる」という状況でした。

  • reCAPTCHA v2 / v3 の「Classic 版」は、今のところ引き続き無料で使える
  • ただし Google は、すべての reCAPTCHA ユーザーを 2025 年末までに Google Cloud 版へ移行させる予定
  • 移行後は Google Cloud プロジェクトと紐づき、クレジットカード登録が前提になる
  • 無料枠は月 10,000 件の評価まで。それを超えると課金対象になる

普通の問い合わせフォームで使っている分には、無料枠を超えることはあまりないようです。でも、

  • Google Cloud の管理画面を触らないといけない
  • クレジットカードの登録が必要になる
  • 大量アクセスやスパム攻撃があると無料枠を超える可能性がある

というあたりが、個人や小規模サイトを運営している身としては地味に面倒だなと感じました。Contact Form 7 の公式も Turnstile を推奨していますし、Turnstile は無料で検証回数の制限もなく、300 ドメインまで使えるとのこと。これなら乗り換えておいた方が安心、という判断で移行を決めました。

「reCAPTCHA で特に困っていないなら無理に乗り換えなくてもいい」という意見もあります。とはいえ、Turnstile は軽くて表示も速く、デメリットがほとんどないので、これから対策するなら Turnstile で良いと思います。

Turnstile とは

Cloudflare が提供している、CAPTCHA の代替サービスです。reCAPTCHA と同じように「人間かボットか」を判定してフォームをスパムから守ってくれますが、

  • 完全無料(商用利用もOK)
  • 訪問者にユーザー情報を Google に送らない(プライバシー面で安心)
  • 動作が軽い
  • Contact Form 7 が公式対応していて導入が簡単

というのが特徴です。私が試したときは、ほとんどの訪問者が気づかないうちに通過する「マネージド(管理)」モードを使いました。

移行の手順

ここから実際の作業です。全体で 10〜15 分くらいで終わりました。

ステップ 0 :作業のタイミングに注意

reCAPTCHA のキーを消してから Turnstile のキーを入れるまでの間、一時的にフォームが送信できなくなる可能性があります。問い合わせの少ない時間帯にまとめてやるのがおすすめです。私は深めの時間帯に一気にやりました。

ステップ 1 :Cloudflare のアカウントを用意

Cloudflare の Turnstile ページ からアカウントを作ります。Google アカウントですぐ作れます。

すでに Cloudflare アカウントを持っている人は、それをそのまま使えば OK です。サイトを Cloudflare に移管する必要はありません。Turnstile の機能だけ使えれば大丈夫です。

複数サイトを運営している場合も、アカウントは 1 つにまとめておく方が管理がラクです。1 アカウントの中にサイトごとのウィジェットをいくつも作れるので、わざわざ別アカウントを作る必要はありませんでした。

ステップ 2 :Turnstile ウィジェットを作成

Cloudflare の管理画面の左メニューから「アプリケーション セキュリティ」→「Turnstile」を開きます。見つからないときは、画面上部の「クイック検索」に Turnstile と入力すると一発で飛べます。

「ウィジェットを追加」をクリックして、次の 3 つを設定します。

  • ウィジェット名:あとで自分が分かれば何でも OK。複数サイトを管理するなら サイト名-contact のように用途が分かる名前にしておくと、後から見たときに迷いません。
  • ホスト名:対象サイトのドメインを https:// を付けずに入力(例:example.com)。すでに Cloudflare にサイトを登録している場合は、候補として自動で出てくることもあります。
  • ウィジェット モード:「管理(推奨)」を選択。これが一番バランスの良いモードで、ほとんどの訪問者は何も操作せず通過し、怪しいアクセスにだけ確認が出ます。

「事前クリアランス」という項目は「いいえ」のままで大丈夫でした。問い合わせフォームのスパム対策が目的なら不要です。

設定したら「作成」をクリック。すると サイトキー(Site Key) と シークレットキー(Secret Key) の 2 つが表示されます。この 2 つを次のステップで Contact Form 7 に貼ります。

⚠️ キーの取り扱い注意
シークレットキーは外部に漏らさないようにしてください。とくにブログ記事に手順を書くときは、スクショにキーが写り込まないように気をつけましょう。私はパスワード管理用のメモにコピーして保管しました。

ステップ 3 :Contact Form 7 にキーを登録

WordPress の管理画面に戻ります。

  1. 左メニューの「お問い合わせ」→「インテグレーション」を開く
  2. 「Turnstile」のカードにある「インテグレーションのセットアップ」をクリック
  3. 「サイトキー」と「シークレットキー」をそれぞれ貼り付ける
  4. 「変更を保存」をクリック

貼り付けるとき、キーの前後に余計なスペースや改行が入らないように注意してください。これはよくある失敗ポイントだそうです。

保存して「✓ Turnstile はこのサイト上で有効化されています。」と表示されれば登録成功です。

ステップ 4 :フォームの表示と送信をテスト(重要)

reCAPTCHA を消す前に、必ず先に動作確認をします。万が一 Turnstile に問題があっても、reCAPTCHA を残しておけば一時的に戻せるので、この順番が安心です。

雲のマークのバナーがつきました

  1. 問い合わせフォームのページを実際にブラウザで開く(ログアウト状態か、シークレット/プライベートウィンドウだと本番の見え方が確認できます)
  2. フォームに Cloudflare の雲マークのウィジェットが表示されているか確認
  3. 実際に自分宛にテスト送信して、メールが届くか確認

私の環境では、ショートコードを自分で入れなくてもフォーム上部に自動でウィジェットが表示され、緑のチェックで「成功しました!」と出ました。テスト送信もちゃんと通り、自動返信メールと通知メールの両方が届いたので、ここで移行は実質完了です。

もしフォームを開いてもウィジェットが見当たらない場合は、Contact Form 7 のフォーム編集画面で、送信ボタンの少し上あたりに [turnstile] を 1 行追加すると表示されます。位置を変えたいときも、このショートコードを置いた場所に表示されます。

ステップ 5 :reCAPTCHA のキーを削除

テストが無事に通ったら、reCAPTCHA のキーを削除します。残したままだと設定が重複して動作が不安定になることがあるので、片付けておく方が安全です。

「お問い合わせ」→「インテグレーション」の reCAPTCHA カードで「インテグレーションのセットアップ」を開き、「キーの削除」をクリックして保存します。

あわせて、もし以前フッターや問い合わせページに「このサイトは reCAPTCHA によって保護されています」という文言を手動で入れていた場合は削除して OK です。Turnstile ではウィジェット自体がその役割を果たすので、この文言は不要です。

つまずきやすいポイント・注意点

実際にやってみて、ここは引っかかりやすいなと思った点をまとめておきます。

  • キャッシュ系プラグイン:WP Fastest Cache や LiteSpeed Cache などを使っている場合、フォームのページはキャッシュ除外にしておくのが無難です。テストでおかしいときはここを疑うとよさそうです。作業後はキャッシュをクリアして、別のブラウザやスマホからも確認しておくと安心です。
  • 確認画面を使っている場合:Contact Form 7 Multi-Step Forms などで確認画面を入れていると、Contact Form 7 本体のインテグレーション機能がうまく動かないことがあるようです。その場合は別のプラグイン方式を検討する必要があります。私のフォームは確認画面なしのシンプルな構成だったので、公式のインテグレーションだけで問題ありませんでした。
  • テスト送信で届いたメールの片付け:動作確認のために送ったテストメールも本物の問い合わせとして届くので、確認できたらメールボックスから消しておくと整理になります。
  • 作業の順番:「reCAPTCHA を消す → Turnstile を入れる」ではなく、「Turnstile を入れて動作確認 → reCAPTCHA を消す」の順番がおすすめです。切り戻しができる状態を残しておくと精神的に安心です。

やってみた感想

身構えていたわりに、作業自体はとてもあっさり終わりました。一番大事なのは「Cloudflare でキーを 2 つ発行して、Contact Form 7 に貼る」だけで、ここがクリアできれば実質完了です。

Google Cloud の管理画面やクレジットカードを触らずに済むのも気が楽でしたし、フォームの表示も reCAPTCHA のときより軽くなった気がします。プライバシー面で訪問者の情報を Google に渡さない、というのも個人サイトを運営する身としては好印象でした。

複数サイトを運営している場合も、Cloudflare の 1 アカウントの中にサイトごとのウィジェットを追加していけばまとめて管理できるので、2 つ目以降はもっと早く終わると思います。

まとめ

  • reCAPTCHA は今すぐ有料というわけではないが、Google Cloud への移行・クレカ登録など管理が煩雑になっていく
  • Turnstile は無料・軽量・プライバシー配慮ありで、Contact Form 7 が公式対応していて導入が簡単
  • 手順は「Cloudflare でウィジェット作成 → キーを Contact Form 7 に登録 → 動作確認 → reCAPTCHA 削除」の流れ
  • 動作確認をしてから reCAPTCHA を消すと安心

同じように Contact Form 7 のお知らせを見て「移行した方がいいのかな?」と迷っている方の参考になればうれしいです。作業自体は思ったより簡単なので、早めに切り替えておくのがおすすめです。

目次