Google reCAPTCHA とは?基本から設定・管理方法まで徹底解説
「フォームからスパムが大量送信されていた」
そんな連絡がサーバー会社から届いたら焦りますよね。
実際にそんな経験をきっかけに導入したのが、GoogleのreCAPTCHA(リキャプチャ)です。
この記事では、reCAPTCHAの基本的な仕組みから、WordPressへの設定手順、複数サイトの管理方法までまとめています。
reCAPTCHA とは
reCAPTCHA(リキャプチャ)は、Webサイトへのスパムやボットによる悪用を防ぐための、Googleが提供する無料のセキュリティサービスです。
もともとはカーネギーメロン大学が開発したサービスでしたが、2009年にGoogleが買収し、現在はGoogleのサービスとして提供されています。
参考:reCAPTCHA - Wikipedia
参考:reCAPTCHA によるウェブサイトのセキュリティと不正防止 | Google Cloud
フォームへのスパム送信や、自動プログラム(ボット)による不正アクセスを防ぐ目的で、世界中のWebサイトで広く利用されています。
バージョンごとの違い
reCAPTCHAにはいくつかのバージョンがあり、それぞれ仕組みと見た目が異なります。
現在、新規導入するならv3一択です。
| バージョン | 見た目 | 特徴 |
|---|---|---|
| v1 | 歪んだ文字を入力するフォーム | 旧来のCAPTCHA。現在は廃止 |
| v2 | 「私はロボットではありません」チェックボックス | ユーザーが能動的に操作する必要あり |
| v3 | 完全に非表示 | バックグラウンドで自動判定。現在の主流 |
reCAPTCHA v3 の仕組み
v3はユーザーに何も操作させず、バックグラウンドで自動的に「人間かボットか」を判定します。
判定に使われる情報
- マウスの動き(人間らしい曲線的な動きか)
- クリックのタイミング
- ページの滞在時間
- ブラウザの情報
- IPアドレス
- Googleが蓄積した過去の行動データ
スコアによる判定
分析結果は 0.0〜1.0のスコア で表されます。
- 0.9 → ほぼ確実に人間
- 0.5 → 判断が難しい
- 0.1 → ほぼボット
スコアをもとにフォーム送信のブロック判定が行われます。
ユーザーは何も操作しなくてよいため、使いやすさを保ちながらスパムを防げるのが最大のメリットです。
サイト上の表示について
v3を導入すると、ページ右下に小さなreCAPTCHAのバッジ(盾マーク)が表示されます。

チェックボックスなどは一切表示されません。
またバッジはフォームのあるページだけでなく、サイト全体のすべてのページに表示されます。
導入手順①:キーの発行方法
1. Google reCAPTCHA 管理画面にアクセス
https://www.google.com/recaptcha/admin にアクセスして 「+」マークをクリックします。

2. 新しいサイトを登録
以下の項目を入力します。

- ラベル:管理しやすい名前(例:サイト名)
- reCAPTCHAタイプ:「スコアベース v3」を選択(初期状態)
- ドメイン:対象サイトのドメインを入力(例:example.com)
- プロジェクト名:既存のプロジェクトを利用する場合は、利用するプロジェクトを選択。特に決まっていない場合は新規作成するので、「Google reCAPTCHA」などわかりやすい名前を入力
「送信」をクリックすると、次のキー発行に進みます。
3. キーを取得
登録完了後、以下の2つのキーが発行されます。
| キー | 用途 |
|---|---|
| サイトキー | フロントエンド(HTMLに埋め込む)用 |
| シークレットキー | サーバーサイド(WordPress等の設定画面)用 |
この2つのキーをWordPressやCMSの設定画面に入力して使用します。
導入手順②:Contact Form 7への設定方法
WordPressのフォームプラグイン「Contact Form 7(CF7)」でのreCAPTCHA v3設定手順です。
- WordPress管理画面 →「お問い合わせ」→「インテグレーション」を開く
- reCAPTCHAの「インテグレーションのセットアップ」をクリック
- 「サイトキー」と「シークレットキー」を入力して保存
キーを登録するだけで自動的に全フォームに適用されます。
フォームのコードを編集する必要はありません。
キーの管理と料金について
アカウントとキーの構造
Googleアカウント(1つ)
└── reCAPTCHA管理画面
├── サイトキー①(サイトA用)
├── サイトキー②(サイトB用)
└── サイトキー③(サイトC用)1つのGoogleアカウントで、複数サイト分のキーをまとめて管理できます。
キーの発行数に制限はありません。
キーはドメインごとに発行する
1つのキーを複数サイトで使い回すことは推奨されません。
- セキュリティ上、キーが漏れた際の影響範囲を最小限にするため
- 管理画面でサイトごとのスコアや統計を個別に確認するため
- 登録したドメイン以外では動作しない仕組みのため
サイトごとに個別のキーを発行するのがベストプラクティスです。
料金は通常利用は無料
- 通常利用は無料
- 月間100万リクエストを超える大規模サイトになると、有料の reCAPTCHA Enterprise への移行を案内されることがある
- 一般的な中小規模のサイトであれば無料の範囲で十分
バッジを非表示にする方法
reCAPTCHA v3のバッジが邪魔な場合、CSSで非表示にできます。
CSSを追加
WordPressの場合:外観 → カスタマイズ → 追加CSS に以下を追加
.grecaptcha-badge {
visibility: hidden;
}必須:利用規約の明示
Googleの利用規約により、バッジを非表示にする場合はフォーム付近に以下のテキストを表示する必要があります。
このサイトはreCAPTCHAで保護されており、Googleのプライバシーポリシーと利用規約が適用されます。
CF7のフォーム編集画面でフォームの末尾に追加しておくとよいでしょう。
reCAPTCHA v3の技術的な仕組み:JavaScriptの読み込みからスコア取得まで
reCAPTCHA v3は、以下の3つのステップで動作します。
1. JavaScriptの読み込み
ページのヘッダーに以下のスクリプトを読み込むことで、reCAPTCHAが起動します。
<script src="https://www.google.com/recaptcha/api.js"></script>2. トークンの生成
フォームの送信ボタンが押されると、以下の関数が呼び出され、トークンが生成されます。
grecaptcha.execute('サイトキー', {action: 'submit'})3. サーバーサイドでの検証
生成されたトークンとシークレットキーをGoogleのAPIに送信します。
https://www.google.com/recaptcha/api/siteverifyGoogleから以下のようなレスポンスが返ってきます。
{
"success": true,
"score": 0.9,
"action": "submit"
}scoreが0.5以上であれば人間と判定してメールを送信し、0.5未満であればボットと判定してブロックします。
なお、スコアの算出に使われる具体的なデータや判定ロジックの詳細はGoogleが非公開としています。
参考:https://developers.google.com/recaptcha/docs/v3
