Google reCAPTCHA はボットによる不正アクセスやスパム送信を防止する仕組みですが、v2とv3では仕様やユーザー体験が大きく異なります。
Next.js やフォームサービスと組み合わせる際にも理解が必要なので、備忘録としてまとめます。
目次
reCAPTCHA v2 と v3 の基本的な違い
reCAPTCHA v2

- 「私はロボットではありません」チェックボックスや画像選択テストを表示する
- ユーザーに明示的な操作を求める
- 判定は「OK / NG」の2値
g-recaptcha-response
をフォームに含めて送信 → サーバー側で検証
reCAPTCHA v3

- ユーザー操作なしで自動的にスコア判定
- スコア(0.0〜1.0)でボットらしさを判定し、しきい値は開発者が設定
- フロントで
grecaptcha.execute()
を呼び出してトークンを取得 - ユーザー体験を損なわない(チェックボックス・画像なし)
reCAPTCHA v2 と v3 の使い分けの目安
v2 を選ぶ場合
- セキュリティ重視(確実に人間確認が必要なフォーム)
- 管理画面や重要な取引系の操作
v3 を選ぶ場合
- UX重視(チェックなしで自然に送信したい場合)
- 問い合わせフォーム、コメント投稿、日記アプリの投稿など