お問い合わせフォームの下に「私はロボットではありません」と出たり、画面の右下に小さなマークが出たりするのを見たことがあると思います。
あれが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でハマった例
- reCAPTCHAを特定ページだけに読み込ませる方法: 全ページにバッジとスクリプトが出ていたので、お問い合わせページ以外で外した
- Contact Form 7のreCAPTCHAをCloudflare Turnstileに切り替えた理由と注意点: 無料の回数が減っていたのに気づいて乗り換えたら、全ページ読み込みの罠をもう一度踏んだ
迷ったときの確認ポイント
- フォームを実際に送ってみて、ちゃんと届くか確かめる。入れたあとしばらくは、怪しいメッセージが減ったかも見ておく
- 無料の回数を超えそうか、Google Cloudの管理画面の使用量と、公式の料金ページで確認する
- 余裕があれば、フォームのないページで右下のバッジが出ていないか見る(開発者ツールの「ネットワーク」で
recaptchaやturnstileを探すと、もっと確実です) - 乗り換えるなら、使っているフォームのプラグインが対応しているかを先に見る
あわせて知っておきたい用語
- Cloudflare Turnstile
- Cloudflareが出している、人かボットかを見分ける仕組み。reCAPTCHAの代わりに使える。
- スパム
- 勝手に大量に送られてくる、広告や迷惑なメッセージ。フォームにもボットから届く。
- WAF
- サイトに届く攻撃っぽいリクエストを、手前で止める仕組み。フォームだけでなくサイト全体を守る。
- Contact Form 7
- WordPressでよく使われる、お問い合わせフォームのプラグイン。reCAPTCHAやTurnstileに対応している。