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のバッジ(盾マーク)が表示されます。

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設定手順です。

  1. WordPress管理画面 →「お問い合わせ」→「インテグレーション」を開く
  2. reCAPTCHAの「インテグレーションのセットアップ」をクリック
  3. 「サイトキー」と「シークレットキー」を入力して保存

キーを登録するだけで自動的に全フォームに適用されます。
フォームのコードを編集する必要はありません。


キーの管理と料金について

アカウントとキーの構造

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/siteverify

Googleから以下のようなレスポンスが返ってきます。

{
  "success": true,
  "score": 0.9,
  "action": "submit"
}

scoreが0.5以上であれば人間と判定してメールを送信し、0.5未満であればボットと判定してブロックします。

なお、スコアの算出に使われる具体的なデータや判定ロジックの詳細はGoogleが非公開としています。

参考:https://developers.google.com/recaptcha/docs/v3

あなたへのおすすめ