14 日間の無料トライアル実施中 — クレジットカード不要、script タグ 1 行で今日から試せます
スパム対策

reCAPTCHA v3 の設定方法|問い合わせフォームへの導入としきい値の決め方

reCAPTCHA v3 の設定手順を、キーの取得からContact Form 7・素のHTMLへの組み込み、サーバー側検証まで公式ドキュメントに沿って解説。スコアの読み方としきい値の決め方、設置後の確認方法もまとめます。

公開 2026年7月21日更新 2026年7月23日11
目次INDEX
  1. 01手順1:サイトキーとシークレットキーを取得する
  2. 02手順2:フォームに組み込む
  3. 03スコアの読み方としきい値の決め方
  4. 04設置後の確認と、つまずきやすい点
  5. 05正しく設定しても止まらないもの:人が書いた営業メール
  6. 06よくある質問
  7. 07明日やること

reCAPTCHA v3 の設定は、キーを2つ取ってフォームに貼るだけで終わります。難しいのはその先、スコアのしきい値をいくつにするかです。この記事は、自社サイトの問い合わせフォームにこれから reCAPTCHA を入れる Web 担当者・情シス・問い合わせ担当者向けです。結論から書くと、しきい値は既定の 0.5 から動かさず、まず記録だけ取ってください。扱うのは設定手順としきい値の判断までで、すでに設定済みなのに営業メールが減らないという段階の方はreCAPTCHA で営業メールが減らない理由のほうが近いはずです。

手順1:サイトキーとシークレットキーを取得する

キーの発行は Google アカウントがあれば管理コンソールで完結します。ただし入れる前に一点。Contact Form 7 の開発元は公式ページで「Google has a plan to make all reCAPTCHA users migrate to reCAPTCHA Enterprise. This means a cost increase for many of you.」と告知しています(Contact Form 7 公式)。無料の前提で設計するなら、この移行予告は把握しておいてください。

  1. reCAPTCHA 管理コンソールの登録画面を開き、識別用のラベルを入力します。
  2. reCAPTCHA タイプで v3 を選びます。
  3. ドメイン欄に対象サイトのドメインを入力します。www の有無に注意し、両方使っているなら両方登録します。
  4. サイトキー(HTML に書いてよい)とシークレットキー(サーバー側だけで使う)が発行されます。

問い合わせフォームなら v3 が基本です。

v2 チェックボックスv2 Invisiblev3
利用者の操作「私はロボットではありません」をクリック不要(既存ボタンで発火)不要
サイトが受け取るもの通過/不通過通過/不通過0.0〜1.0 のスコア
Contact Form 7 の標準対応なし(アドオン要)なしあり

Google は v3 を「a pure JavaScript API returning a score」と説明しています(バージョン比較)。弾く仕組みではなく、疑わしさの目盛りを渡す仕組みです。

なお v2 用のキーは v3 では動かず、登録し直しが必要です(Contact Form 7 公式に「keys for v2 don't work with the v3 API」と明記)。また Google の v3 ドキュメント冒頭には現在「This page is deprecated. See the reCAPTCHA Enterprise documentation page」との告知が出ています。

手順2:フォームに組み込む

Contact Form 7 は管理画面にキーを貼るだけ、自作フォームはサーバー側の検証まで書いて完了です。

Contact Form 7 の場合。管理画面の「お問い合わせ」→「インテグレーション」(英語表記では Contact > Integration)で「reCAPTCHA」ボックスの「インテグレーションのセットアップ」を開き、キー2つを貼って保存します。v3 はウィジェットが不要なので [recaptcha] フォームタグは要りません(残っていても 5.1 以降は無視)。標準対応は v3 のみで、v2 にはアドオンが必要だと公式 FAQにあります。設定全体はContact Form 7 のスパム対策にまとめました。

素の HTML の場合。サイトキー付きで API を読み込み、送信時にトークンを取ってサーバーへ送ります。

<script src="https://www.google.com/recaptcha/api.js?render=サイトキー"></script>
<script>
  grecaptcha.ready(function () {
    grecaptcha.execute('サイトキー', {action: 'submit'})
      .then(function (token) { /* token をバックエンドへ送る */ });
  });
</script>

Google は「reCAPTCHA tokens expire after two minutes.」とし、「make sure to call execute when the user takes the action rather than on page load」と、利用者が操作した時点で呼ぶよう明記しています(いずれもv3 の公式文書)。読み込み時に取ると、長文を書くフォームでは失敗します。

サーバー側は、トークンを https://www.google.com/recaptcha/api/siteverify へ POST します(secretresponse、任意で remoteip)。v3 の応答には success のほか scoreaction が入り、公式は「when you verify the reCAPTCHA response, you should verify that the action name is the name you expect」と、action 名の照合まで行うよう求めています(v3 の公式文書)。hostname の確認も忘れずに。頻出エラー timeout-or-duplicate は公式のエラーコード一覧で「too old or has been used previously」、つまり2分超過か二重検証と説明されています(エラーコード一覧)。

この検証を省くと reCAPTCHA は機能しません。自作フォームで最も多い設定漏れがここです。

スコアの読み方としきい値の決め方

スコアは 0.0〜1.0 で「1.0 is very likely a good interaction, 0.0 is very likely a bot」、既定値は「By default, you can use a threshold of 0.5.」です(v3 の公式文書)。Contact Form 7 の既定も 0.50 で、wpcf7_recaptcha_threshold フィルターフックで変更できます。

ただし Contact Form 7 の公式 FAQ は、その変更方法を示した直後に「However, don't rush into doing this. You should grasp and analyze the current situation first.」(急がず、まず現状を把握し分析すること)と釘を刺しています。Google 本体も同じ順番で、まず何もせずに実行し、管理コンソールでトラフィックを見てから決めるよう勧めています。実トラフィックで学習する性質上、導入直後やステージング環境のスコアは本番と異なるとも明記されています。

もう一つ、数字を動かす前に知っておくべき事実があります。後半で示す実フォームデータでは、reCAPTCHA v3 を通過したうえで営業と判断できる送信がフォームの用途により 12.9〜73.1% 残っていました。しきい値をいくつにするかの議論は、この事実を見てからのほうが早く終わります。

段階やること
1. 記録だけ(〜2週間)スコアを保存する。低スコアでも送信は通す
2. 分布を見る(〜1か月)管理コンソールと自前ログでスコアの散らばりを確認
3. 決める(1か月後)既定 0.5 で問題ないか検証。動かすなら下げる方向を先に

この記事でもっとも伝えたい点はここです。しきい値を上げる前に、落ちた送信を人が後から見られる状態にしてください。上げて先に消えるのは営業メールではありません。会社の共有 IP から送っている人、古いブラウザの人、モバイル回線の人、プライバシー保護の拡張機能を入れている人、支援技術を使っている人です。いずれも本物の問い合わせ側に多く含まれます。

しかも弾かれた送信は、送信者にエラーが出るだけで受信箱に何も残らず、消えたこと自体に気づけません。営業を1通見逃すコストは削除の数秒。見積依頼を1件失うコストはそれと釣り合いません。

設置後の確認と、つまずきやすい点

動いているかは、バッジ・管理コンソールの統計・個別スコアの3点で確かめます。

  • バッジと統計:正しく動いていればページ右下にバッジが出ます(Contact Form 7 公式 FAQ にも同旨の記載)。出ないなら script が読み込まれていません。管理コンソールではリクエスト数やスコアの状況、action 名を指定していれば上位10件のアクション別内訳も見られます。
  • 個別スコア:Contact Form 7 では Flamingo プラグインを併用すると、送信ごとの実スコアとスパムログを確認できます。自作フォームなら siteverify の score を送信内容と一緒に保存します。これが前章の「記録だけ取る」の実装にあたります。

Flamingo に「reCAPTCHA response token is empty.」と出る場合、公式 FAQ はスクリプト未読込が主因で、多くはテーマの作りに起因すると説明しています。ドメイン登録の www 有無のずれも定番です。

正しく設定しても止まらないもの:人が書いた営業メール

既定どおり設定すれば自動投稿はかなり止まります。止まらないのは、営業担当者が手で書いて送っている問い合わせです。

私たちは自社サイトと複数の実サイトに Hajik を設置して運用し、届いた送信を1件ずつ見ています。以下は Hajik が分析した、美容商社(国内最大手・上場)の実フォームデータです。3種類のフォーム・合計 1,894 件・約20か月分、いずれも reCAPTCHA v3 を通過した送信。この中に、一目でボットとわかるものは事実上ありませんでした。reCAPTCHA は期待どおり働いていたのです。

フォームの用途件数・期間営業と判断できるもの本物らしい判定が難しい
問い合わせフォーム534件・20か月12.9%54.9%32.2%
汎用フォーム1,211件・18か月56.2%16.5%25.2%
採用フォーム149件・18か月65.8%(中途のみ 73.1%)

分類は簡易的なヒューリスティックで、業種・規模・フォームの性格により比率は大きく変わります。一社・一時点のサンプルとして読んでください。

注目すべきは右端で、人が読んでも即断できない層が常に4分の1から3分の1あります。ここを機械のスコアだけで決めさせると事故が起きます。加えて営業送信のスコアは高く出ます。実在のブラウザで人が入力しているのだから当然です。しきい値を 0.7 や 0.9 にしても営業は減らず、本物だけが落ちます(自動化の検知でどこまで止まるかはフォームの bot 対策にまとめています)。

必要なのは、自動化を見る層の上に内容を読む層を重ねることです。Hajik はこの内容判定を担当し、script タグ1行で送信の瞬間に日本語の文面を判定します(reCAPTCHA と併用可)。効果は 99% 以上の遮断で、残りおよそ1%は人が判断する前提。既定はブロックではなくラベル付けです(reCAPTCHA との比較)。reCAPTCHA だけを入れている状態からの次の一手は問い合わせフォームのスパム対策ツール比較にパターン別でまとめています。

よくある質問

しきい値はいくつにすればいいですか

既定の 0.5 のまま動かさないでください。Google も Contact Form 7 も、変更前に現状のトラフィックを見ることを勧めています。上げるなら、弾かれた送信を人が後から確認できる仕組みが先です。

バッジが表示されません。設定できていないのでしょうか

その可能性が高いです。開発者ツールでスクリプトの読み込みを確認し、Contact Form 7 なら Flamingo のスパムログも合わせて見てください。

設定したのに営業メールが減りません。設定ミスですか

多くの場合ミスではありません。ログに reCAPTCHA が弾いた記録があるなら、自動投稿には機能しています。残るのは人が手で送ったもので、スコアでは止まりません。仕分けの組み方は問い合わせフォームの営業メール対策にまとめています。

明日やること

  1. 管理コンソールで v3 のキーを発行する。ドメインは www の有無を両方登録する。
  2. Contact Form 7 なら「インテグレーション」にキーを貼る。自作フォームなら siteverify での検証と actionhostname の照合まで実装する。
  3. しきい値は 0.5 のまま触らず、スコアを送信内容と一緒に保存する仕組みを先に作る。
  4. 1か月後にそのスコアを開き、営業メールが低スコアで落ちているかを確かめる。落ちていないなら、必要なのはしきい値の調整ではありません。

自社フォームに何が届いているかは無料診断で確認できます。判定結果を見てから決めたい場合は、14日間の無料トライアルでラベル付けだけの観察モードから試せます。

あわせて読みたい

その営業メール、貼るだけで弾く。

script タグを 1 行貼るだけ。14 日間は無料、クレジットカードもいりません。まずは観察モードで、いま届いているメールの選別を確かめられます。