WordPress

reCAPTCHAとは?フォームのスパム対策の仕組みと、Turnstileに乗り換えた理由

公開 約4分で読めます

TL;DRこの記事の要点

  • reCAPTCHAは、フォームを送っているのが人かボットかを見分けるGoogleの仕組み
  • 無料は月10,000回の判定まで(課金なしのキーは超えるとエラー)
  • Contact Form 7は全ページに読み込むので、お問い合わせページ以外で外した
  • 今はCloudflare Turnstileに乗り換えている
目次6項目
  1. reCAPTCHAとは?人かボットかを見分ける仕組み
  2. どんなときに出てくる?
  3. 無料で使える?
  4. 自分はこう使ってきました
  5. reCAPTCHAでハマった例
  6. 迷ったときの確認ポイント

お問い合わせフォームの下に「私はロボットではありません」と出たり、画面の右下に小さなマークが出たりするのを見たことがあると思います。
あれがreCAPTCHA(リキャプチャ)です。
このブログでも、お問い合わせフォームのスパム対策に使っていました。

信号機の写真を選ばされるやつ?

それもreCAPTCHA。今はチェックなしで見分ける種類もあるよ。

reCAPTCHAとは?人かボットかを見分ける仕組み

reCAPTCHAは、Googleが提供している、フォームを送っているのが人かボット(自動で動くプログラム)かを見分ける仕組みです。
ボットが勝手にフォームを送ってくる、いわゆるスパムを防ぐために使います。

種類は、大きく分けて2つあります。

  • チェックボックスが出るもの(v2): 「私はロボットではありません」にチェックを入れる。怪しいと判断されると、写真を選ぶ問題が出る
  • チェックも画像選びも求めないもの(v3): ページでの動きから人らしさを点数にして、その点数をもとにサイト側が通すかどうかを決める。このブログで使っていたときは、画面の右下に小さなバッジが出ていた

このブログで使っていたのは、チェックを求めないほう(v3)でした。

どんなときに出てくる?

  • お問い合わせフォームや、会員登録のフォーム
  • ログイン画面(ボットによるログインの試行を減らす)
  • コメント欄や、レビューの投稿フォーム

どれも、ボットに送られると困るフォームです。
WordPressなら、Googleでサイト用のキー(サイトとGoogleをつなぐための文字列)を作って、Contact Form 7のようなフォームのプラグインに登録すると使えます。

無料で使える?

Googleの公式ドキュメントでは、無料で使えるのは月に10,000回までとされています。
数えるのは、フォームの送信の数ではなく、reCAPTCHAが「人かどうか」を判定した回数です(公式の資料ではassessment=評価、と呼ばれています)。

課金を有効にしていないプロジェクトで新しく作ったキーの場合、10,000回を超えた分はエラーになります。
つまり、勝手にお金がかかることはありませんが、超えると判定がエラーになります。
どのくらい使っているかは、Google Cloudの管理画面で確かめられます。
数字の感覚をつかむためにも、一度見ておくと安心です。

昔はもっと使えたの?

2024年に変わるまでは、月100万回までだったよ。気づいたのは、だいぶあとだった。

料金や無料の範囲は変わることがあるので、使う前にGoogleの料金のページで確かめておくのがおすすめです。

自分はこう使ってきました

最初はreCAPTCHA v3。全ページに読み込まれていた

このブログのお問い合わせフォームは、Contact Form 7で作っています。
最初は、スパム対策にreCAPTCHA v3を入れていました。

ところが、入れてみたら、フォームのないトップページにも右下のバッジが出ていました。
Contact Form 7は、reCAPTCHAを設定すると、フォームがあるかどうかに関係なく、全ページにスクリプト(reCAPTCHAを動かすためのプログラム)を読み込む作りだったんです。

なので、Claude Codeに、お問い合わせページ以外ではスクリプトを外す処理を入れてもらいました。

今はCloudflare Turnstileに乗り換えた

そのあと、Contact Form 7の管理画面に、reCAPTCHAの移行についての警告が出ました。
調べてみると、無料で使える回数が月100万回から1万回に減っていました。

ちょうどContact Form 7が、6.1からCloudflare Turnstile(ターンスタイル)に標準で対応していたので、乗り換えることにしました。
設定の作業は、Claude Codeにやってもらっています。
Turnstileも、人かボットかを見分ける仕組みで、無料で使えます。

乗り換えたら、全ページの問題はなくなった?

同じことが起きた。外すコードは、名前を変えるだけで使い回せたよ。

今(2026年10月25日に確認)は、Turnstileのスクリプトはお問い合わせページだけで読み込まれていて、トップページには出ていません。

reCAPTCHAでハマった例

迷ったときの確認ポイント

  1. フォームを実際に送ってみて、ちゃんと届くか確かめる。入れたあとしばらくは、怪しいメッセージが減ったかも見ておく
  2. 無料の回数を超えそうか、Google Cloudの管理画面の使用量と、公式の料金ページで確認する
  3. 余裕があれば、フォームのないページで右下のバッジが出ていないか見る(開発者ツールの「ネットワーク」でrecaptchaやturnstileを探すと、もっと確実です)
  4. 乗り換えるなら、使っているフォームのプラグインが対応しているかを先に見る

あわせて知っておきたい用語

Cloudflare Turnstile
Cloudflareが出している、人かボットかを見分ける仕組み。reCAPTCHAの代わりに使える。
スパム
勝手に大量に送られてくる、広告や迷惑なメッセージ。フォームにもボットから届く。
WAF
サイトに届く攻撃っぽいリクエストを、手前で止める仕組み。フォームだけでなくサイト全体を守る。
Contact Form 7
WordPressでよく使われる、お問い合わせフォームのプラグイン。reCAPTCHAやTurnstileに対応している。

この記事が参考になったら、応援クリックをお願いします

Cat's Handこの記事を書いた人

Web制作歴10年以上。WordPressのテーマカスタマイズやコーディングを中心に、副業・本業ともにweb制作に携わっています。このブログでは、実際に手を動かして分かったことを書いています。