【初心者向け】ワードプレスにリキャプチャを導入・設定する方法|スパム対策まで解説
はじめに
ワードプレスを運営していると、お問い合わせフォームへの迷惑メール、コメント欄への宣伝投稿、ログイン画面への不正アクセスなどに悩まされることがあります。これらの多くは、人間ではなく自動プログラムであるbotによって送信されています。
ワードプレスのスパム対策として有効なのが、Googleの「reCAPTCHA(リキャプチャ)」です。リキャプチャを導入すると、フォームを操作しているのが人間かbotかを判定し、自動送信によるスパムや不正アクセスを減らせます。
ただし、リキャプチャには複数の種類があり、導入する場所や利用中のプラグインによって設定方法が異なります。設定を間違えると、正規のユーザーまでフォームを送信できなくなることもあるため注意が必要です。
この記事では、初心者向けにワードプレスへリキャプチャを導入する方法を解説します。Contact Form 7への設定手順、ログイン画面やコメント欄の保護、よくあるエラーの対処法、リキャプチャ以外のスパム対策まで順番に確認していきましょう。
1. ワードプレスにリキャプチャを導入する前に知っておきたい基礎知識
1-1. リキャプチャとは?スパム対策に有効な理由
リキャプチャとは、Webサイトへのアクセスやフォーム送信が、人間による正常な操作なのか、botによる自動操作なのかを判定する仕組みです。
たとえば、短時間に何十件もお問い合わせを送信するbotや、同じ宣伝コメントを複数の記事に投稿するbotを検知し、処理を拒否したりスパムとして分類したりできます。
従来のCAPTCHAでは、画像に表示された文字の入力や、指定された写真の選択をユーザーに求める方式が一般的でした。現在のリキャプチャでは、チェックボックスや画像認証に加え、ユーザーの操作を妨げずバックグラウンドで危険度を判定する方式も利用できます。GoogleのreCAPTCHA v3は、ユーザーの操作をスコアとして評価し、その結果に応じて送信を許可する仕組みです。Google for Developers+1
リキャプチャを導入する主なメリットは、次のとおりです。
お問い合わせフォームへの自動送信を減らせる
コメントスパムを抑制できる
ログイン画面への総当たり攻撃を防ぎやすくなる
会員登録やパスワード再発行機能の悪用を減らせる
スパム確認や削除にかかる管理作業を軽減できる
ただし、リキャプチャだけですべての迷惑行為を防げるわけではありません。人間が手作業で送信するスパムには効果が限定されるため、AkismetやHoneypot、送信回数制限などを組み合わせることが重要です。
1-2. ワードプレスでスパムが発生しやすい場所
ワードプレスでは、ユーザーが情報を入力して送信できる場所がスパムの対象になりやすくなります。特に注意したいのは、次のようなページです。
お問い合わせフォーム
営業メールや詐欺サイトへの誘導、海外からの英文スパムなどが送信されやすい場所です。フォームの送信先に管理者のメールアドレスを設定している場合、大量の迷惑メールが直接届く可能性があります。
コメント欄
記事と関係のない宣伝文、外部サイトへのリンク、不正なプログラムを含む文字列などが投稿されることがあります。コメントを自動承認にしていると、そのままサイト上に公開されるため注意が必要です。
ログイン画面
ユーザー名とパスワードの組み合わせを繰り返し試す、ブルートフォース攻撃の標的になることがあります。ログイン試行回数の制限や二要素認証と併せてリキャプチャを導入すると、防御を強化できます。
ユーザー登録画面
会員登録を受け付けているサイトでは、botによる大量の偽アカウント作成が発生することがあります。登録通知やデータベースが不要な情報で埋まるだけでなく、サイトの機能を悪用される危険もあります。
パスワード再発行画面
メール送信機能を悪用し、大量の再発行メールを送られることがあります。ログイン画面だけでなく、パスワード再発行画面も保護対象に含めると安心です。
1-3. Google reCAPTCHA v2・v3の違い
Google reCAPTCHAには、主にv2とv3があります。
reCAPTCHA v2では、「私はロボットではありません」というチェックボックスをクリックする形式がよく知られています。操作内容が疑わしいと判定された場合は、画像を選択する追加認証が表示されます。
v2には、チェックボックスを表示せず、送信ボタンを押したときに認証を実行するInvisible reCAPTCHAもあります。通常のユーザーには追加操作を求めず、疑わしいアクセスにだけ認証を表示できる方式です。Google for Developers+1
一方、reCAPTCHA v3では、基本的にチェックボックスや画像認証を表示しません。サイト上での操作を分析し、1.0に近いほど正常、0.0に近いほどbotの可能性が高いというスコアを返します。サイト側は、そのスコアを基準にフォーム送信の許可や拒否を判断します。Google for Developers
両者の違いを整理すると、次のようになります。
| 比較項目 | reCAPTCHA v2 | reCAPTCHA v3 |
|---|---|---|
| 判定方法 | チェックボックスや画像認証 | 操作をスコアで評価 |
| ユーザー操作 | 必要になる場合がある | 原則として不要 |
| わかりやすさ | 認証されていることが見える | バックグラウンドで動作 |
| 離脱への影響 | 認証が複雑だと影響しやすい | 比較的少ない |
| 設定の考え方 | 認証の成否で判定 | スコアの基準値で判定 |
| 主な用途 | ログイン、登録、フォーム | フォーム、サイト全体のリスク判定 |
なお、v2とv3では使用するキーの種類が異なります。v2用のサイトキーをv3の設定欄に入力しても動作しないため、利用するバージョンに合わせてキーを発行してください。Contact Form 7でも、v2とv3のキーを共用することはできません。Contact Form 7
1-4. 初心者にはどのリキャプチャがおすすめか
初心者には、使用しているフォームプラグインが標準対応しているリキャプチャを選ぶ方法がおすすめです。
Contact Form 7を使用している場合は、プラグインの管理画面から設定できるreCAPTCHA v3が候補になります。Contact Form 7ではバージョン5.1以降、標準のreCAPTCHA連携としてv3が使用されています。フォーム内にチェックボックス用のタグを追加する必要はありません。Contact Form 7+1
一方、ログイン画面やコメント欄に導入する場合は、保護する場所を管理画面で選択できる専用プラグインが便利です。コードを編集せずに設定できるため、テーマの更新によって設定が消える心配も少なくなります。
どちらを選ぶか迷った場合は、次の基準で判断しましょう。
ユーザーの操作を増やしたくない場合:reCAPTCHA v3
認証の存在をユーザーにわかりやすく示したい場合:reCAPTCHA v2
Contact Form 7の標準機能を使いたい場合:reCAPTCHA v3
ログイン画面やコメント欄も保護したい場合:対応プラグインが推奨する方式
誤判定の状況を見ながら調整したい場合:スコアを利用するv3
重要なのは、リキャプチャの種類だけで決めるのではなく、使用中のテーマやプラグインが対応しているかを確認することです。
2. ワードプレスにリキャプチャを設定するための準備
2-1. Googleアカウントを用意する
Google reCAPTCHAを利用するには、Googleアカウントが必要です。
個人のGoogleアカウントでも登録できますが、企業サイトやクライアントのサイトに導入する場合は、担当者が退職しても管理できる共通の管理用アカウントを用意すると安心です。
また、サイトの管理を複数人で行う場合は、reCAPTCHAの設定画面で必要な管理者を追加しておきましょう。サイトキーを発行したアカウントがわからなくなると、ドメインの追加や設定変更が難しくなります。
準備する情報は次のとおりです。
Googleアカウント
リキャプチャを導入するサイトのドメイン
使用するreCAPTCHAの種類
設定対象となるフォームや画面
ワードプレス管理画面のログイン情報
2-2. reCAPTCHA管理画面でサイトを登録する
GoogleアカウントでreCAPTCHAの管理画面にログインし、導入するサイトを登録します。
登録画面では、管理しやすいラベルを入力します。「会社名」「サイト名」「本番サイト」など、後から見て判別できる名前にしましょう。
次に、使用するreCAPTCHAの種類を選択します。プラグイン側がv3を要求している場合はv3、v2のチェックボックスに対応している場合はv2を選びます。
ドメイン欄には、通常、次のようにホスト名だけを入力します。
example.com
https://やページのパス、末尾のスラッシュは入力しません。Googleの設定では、登録したドメインに加えて、そのサブドメインでもキーを利用できます。別のドメインでも利用する場合は、対象となるドメインを追加登録します。 Google for Developers+1
テスト環境で使用する場合は、ステージング環境のドメインも登録してください。ローカル環境で検証する場合は、必要に応じてlocalhostを許可ドメインへ追加します。
2-3. サイトキーとシークレットキーを取得する
サイト登録が完了すると、次の2種類のキーが発行されます。
サイトキー
ブラウザ側でリキャプチャを呼び出すための公開キーです。ワードプレスのプラグイン設定画面では、「サイトキー」「Site Key」「Public Key」などの名称で表示されます。
シークレットキー
リキャプチャから返された認証結果をサーバー側で検証するための秘密情報です。「シークレットキー」「Secret Key」などの欄に入力します。
サイトキーはWebページ側で使用されるため、通常はページのソースコードから確認できます。一方、シークレットキーは外部に公開してはいけません。
キーを入力するときは、次の点に注意してください。
サイトキーとシークレットキーを逆にしない
前後に空白を入れない
v2とv3のキーを混在させない
他サイト用のキーを流用しない
シークレットキーを記事や公開資料に掲載しない
キーが流出した可能性がある場合は、管理画面で再発行や設定変更を行い、ワードプレス側の登録情報も更新しましょう。
2-4. 導入前に確認しておきたい注意点
リキャプチャを設定する前に、サイトのバックアップを取得しておきましょう。プラグインを追加したことで、フォームが動かなくなったり、JavaScriptのエラーが発生したりする可能性があるためです。
最低限、次の項目を確認してください。
ワードプレス本体が更新されているか
使用中のテーマが更新されているか
フォームプラグインが更新されているか
PHPのバージョンがプラグインの動作条件を満たしているか
キャッシュを削除できる状態か
テスト送信を受け取れるメールアドレスがあるか
バックアップから復元できるか
本番サイトへ直接導入するのが不安な場合は、ステージング環境で動作を確認してから反映します。
また、同じフォームに複数のCAPTCHAプラグインを設定すると、JavaScriptの二重読み込みや送信判定の競合が起きることがあります。既存のスパム対策機能を確認し、役割が重複するプラグインは必要以上に増やさないようにしましょう。
3. ワードプレスにリキャプチャを導入する主な方法
3-1. プラグインを使って導入する方法
初心者に最もおすすめなのは、リキャプチャ対応プラグインを使う方法です。
一般的なプラグインでは、サイトキーとシークレットキーを入力し、保護する画面にチェックを入れるだけで設定できます。テーマのファイルを直接編集しないため、更新後も設定が残りやすい点がメリットです。
プラグインを選ぶときは、次の項目を確認しましょう。
使用したいreCAPTCHAのバージョンに対応している
ログインやコメントなど、保護したい場所に対応している
現在のワードプレス環境で利用できる
更新が継続されている
利用中のフォームプラグインと競合しない
設定画面やサポート情報がわかりやすい
プラグインの評価数だけでなく、最終更新日や対応バージョンも確認することが大切です。
3-2. Contact Form 7に設定する方法
Contact Form 7には、reCAPTCHAとの連携機能が用意されています。ワードプレス管理画面の「お問い合わせ」からインテグレーション設定を開き、サイトキーとシークレットキーを登録します。
reCAPTCHA v3はバックグラウンドで動作するため、フォーム編集画面にCAPTCHA用の項目を追加する必要はありません。設定後にページ右下などへreCAPTCHAのバッジが表示されていれば、スクリプトが読み込まれている可能性が高いと判断できます。Contact Form 7
ただし、バッジが表示されているだけでフォーム送信全体が正常とは限りません。必ず実際にテスト送信を行い、メール受信まで確認してください。
3-3. WPFormsなどフォームプラグインに設定する方法
WPFormsをはじめとするフォーム作成プラグインにも、CAPTCHA連携機能が用意されている場合があります。
一般的な設定の流れは次のとおりです。
フォームプラグインの設定画面を開く
CAPTCHAまたはスパム対策の項目を選ぶ
reCAPTCHAの種類を選ぶ
サイトキーとシークレットキーを入力する
対象フォームの設定でreCAPTCHAを有効にする
フォームを保存する
公開ページで送信テストを行う
プラグイン全体の設定だけでは、各フォームにリキャプチャが反映されないことがあります。キーを登録した後、フォームごとの設定も確認しましょう。
無料版と有料版で利用できるCAPTCHAの種類が異なる場合もあります。導入前に、現在利用しているプランで対応しているか確認してください。
3-4. ログイン画面やコメント欄に設定する方法
Contact Form 7の標準連携で保護できるのは、基本的にContact Form 7で作成したフォームです。ワードプレスのログイン画面やコメント欄を保護するには、それらに対応したプラグインを使用します。
設定対象として、一般的に次のような項目があります。
ログインフォーム
新規ユーザー登録フォーム
パスワード再発行フォーム
コメント投稿フォーム
WooCommerceのログイン・登録フォーム
独自の会員登録フォーム
すべての場所を一度に有効にすると、不具合が起きた際に原因を特定しにくくなります。まずログイン画面、次にコメント欄というように、一つずつ有効化して動作確認すると安全です。
ログイン画面に設定した後は、管理者自身がログインできるか必ず確認してください。設定中は、別のブラウザでログイン済みの管理画面を開いておくと、問題が起きたときに設定を戻しやすくなります。
3-5. コードを使って手動導入する方法
プラグインを使わず、テーマや独自プラグインへコードを追加する方法もあります。ただし、サーバー側の検証処理まで正しく実装する必要があるため、初心者にはおすすめしません。
手動導入では、主に次の処理が必要です。
reCAPTCHAのJavaScriptを読み込む
フォーム送信時に認証トークンを取得する
トークンをフォームデータと一緒にサーバーへ送る
サーバーからGoogleの検証先へトークンを送信する
返された結果やスコア、アクション名、ホスト名を確認する
条件を満たした場合だけフォーム処理を実行する
画面上にバッジやチェックボックスを表示しただけでは、十分な対策になりません。取得したトークンをサーバー側で検証し、失敗した送信を拒否する必要があります。
従来方式のreCAPTCHAトークンは短時間で失効し、一度しか検証できないため、ページ表示時ではなく送信操作に合わせて取得することが重要です。Google for Developers+1
手動導入する場合は、親テーマのfunctions.phpを直接編集するのではなく、子テーマや独自プラグインとして実装しましょう。
4. プラグインでワードプレスにリキャプチャを設定する手順
4-1. リキャプチャ対応プラグインをインストールする
ワードプレス管理画面から「プラグイン」→「新規プラグインを追加」を開き、導入するプラグインを検索します。
インストール前に、説明欄で次の内容を確認してください。
対応するreCAPTCHAの種類
保護できるフォームや画面
ワードプレスの対応バージョン
PHPの動作条件
最終更新日
設定方法
他のCAPTCHA機能との併用条件
問題がなければ「今すぐインストール」をクリックし、インストール完了後に「有効化」を選択します。
プラグインを有効化した直後にログイン画面の保護が始まる製品もあるため、先にGoogle側でサイトキーとシークレットキーを取得しておくとスムーズです。
4-2. サイトキーとシークレットキーを入力する
プラグインの設定画面を開き、Googleから取得したサイトキーとシークレットキーを入力します。
入力後は、次の点を再確認しましょう。
選択したreCAPTCHAのバージョンとキーが一致している
サイトキーをSite Key欄に入力している
シークレットキーをSecret Key欄に入力している
コピー時に余分な空白や改行が入っていない
現在のドメインがGoogle側に登録されている
保存ボタンを押した後、接続テスト機能がある場合は実行します。
「キーが無効」「ドメインが一致しない」と表示された場合は、同じ値を何度も入力し直すのではなく、Google側のキー種別と登録ドメインを確認してください。
4-3. リキャプチャを表示する場所を選ぶ
次に、リキャプチャを有効にする場所を選びます。
一般的な設定項目は次のとおりです。
ログイン
ユーザー登録
パスワード再発行
コメント投稿
お問い合わせフォーム
WooCommerce
独自フォーム
最初からすべてにチェックを入れるのではなく、被害が発生している場所から優先的に設定しましょう。
たとえば、コメントスパムが問題になっている場合はコメント欄だけ、お問い合わせスパムが多い場合はフォームだけを有効にします。問題なく動作することを確認してから保護範囲を広げると、トラブルが起きたときの原因を特定しやすくなります。
v2を使用する場合は、チェックボックスのテーマや大きさを選べることがあります。スマートフォンでフォームからはみ出さないかも確認してください。
4-4. 設定後に動作確認する
リキャプチャの設定後は、管理画面だけでなく実際の公開ページで確認します。
テストするときは、次の操作を行いましょう。
ワードプレスとブラウザのキャッシュを削除する
ログアウト状態またはシークレットウィンドウでページを開く
パソコンからフォームを送信する
スマートフォンからフォームを送信する
自動返信メールと管理者通知メールを確認する
入力エラーが正しく表示されるか確認する
ログインやコメント投稿が正常に行えるか確認する
管理者としてログインしている状態では、キャッシュやセキュリティ設定の影響を受けず、問題を見落とすことがあります。一般ユーザーと同じ条件で確認することが大切です。
4-5. スパム投稿が減ったか確認する
リキャプチャの導入効果は、設定直後ではなく、数日から数週間の送信状況を見て判断します。
確認する項目は次のとおりです。
迷惑メールの受信件数
コメントスパムの件数
ログイン失敗回数
正常な問い合わせの件数
ユーザーからの送信エラー報告
リキャプチャ管理画面の判定状況
フォームプラグインのスパムログ
スパムが完全になくならなくても、件数が大幅に減っていれば効果が出ています。
一方、問い合わせ件数が急にゼロになった場合は、スパムだけでなく正常な送信まで拒否している可能性があります。自分で定期的にテスト送信し、受信できる状態を維持しましょう。
5. Contact Form 7でリキャプチャを設定する方法
5-1. Contact Form 7のインテグレーション設定を開く
ワードプレス管理画面へログインし、左側のメニューから「お問い合わせ」→「インテグレーション」を開きます。
画面内に表示されるreCAPTCHAの項目を探し、「インテグレーションのセットアップ」などの設定ボタンをクリックします。
設定項目が表示されない場合は、次の点を確認してください。
Contact Form 7が有効化されている
Contact Form 7が更新されている
管理者権限でログインしている
管理画面のJavaScriptエラーが発生していない
他のセキュリティプラグインが管理画面を制限していない
更新前にはバックアップを取得し、ワードプレス本体やPHPとの対応状況も確認しましょう。
5-2. reCAPTCHAのキーを登録する
Google側で発行したreCAPTCHA v3のサイトキーとシークレットキーを入力します。
入力後に設定を保存すれば、Contact Form 7で作成したフォームへreCAPTCHAの判定が適用されます。通常、フォーム編集画面へ[recaptcha]などのタグを追加する必要はありません。
古い解説記事では、フォーム内にreCAPTCHAタグを設置する方法が紹介されていることがあります。しかし、Contact Form 7のreCAPTCHA v3連携では、専用タグを使わずバックグラウンドで処理されます。古いv2用キーはv3の設定には使用できません。Contact Form 7+1
設定後は、公開ページの右下付近にreCAPTCHAバッジが表示されるか確認します。ただし、テーマや画面幅によって表示位置が変わる場合があります。
5-3. フォーム送信テストを行う
キーを登録したら、Contact Form 7で作成したすべての重要なフォームをテストします。
確認手順は次のとおりです。
キャッシュを削除する
お問い合わせページをシークレットウィンドウで開く
必須項目を正しく入力して送信する
完了メッセージが表示されるか確認する
管理者宛ての通知メールを確認する
自動返信メールを設定している場合は受信を確認する
必須項目を空欄にした場合のエラーも確認する
フォームを複数設置している場合は、資料請求、採用応募、予約、見積もりなど、フォームごとにテストしてください。
メールが届かない場合は、リキャプチャではなく、メール送信設定や迷惑メール判定が原因のこともあります。送信完了メッセージが表示されるか、フォームの保存データやメールログに記録が残るかを確認し、問題を切り分けましょう。
5-4. リキャプチャが表示されない場合の確認ポイント
reCAPTCHA v3は、v2のような「私はロボットではありません」というチェックボックスを表示しません。フォーム上に認証欄がなくても、右下などにバッジが表示されていれば正常に動作している可能性があります。
バッジも表示されない場合は、次の項目を確認してください。
サイトキーとシークレットキーが正しいか
v3用のキーを使用しているか
Google側に正しいドメインを登録しているか
ブラウザの開発者ツールにJavaScriptエラーがないか
キャッシュやJavaScript最適化機能が干渉していないか
Cookie同意ツールがスクリプトを停止していないか
広告ブロック機能が通信を遮断していないか
テーマの
wp_head()やwp_footer()が正しく実装されているか
なお、reCAPTCHAバッジをCSSで非表示にすること自体はGoogleの案内上認められていますが、その場合はリキャプチャによって保護されていることと、Googleのプライバシーポリシーおよび利用規約への案内を、ユーザーが確認できる位置に表示する必要があります。Google for Developers+1
6. ワードプレスのスパム対策を強化する追加設定
6-1. コメントスパム対策を行う
コメントを受け付けている場合は、リキャプチャに加えてワードプレス標準のコメント設定も見直しましょう。
管理画面の「設定」→「ディスカッション」では、コメントの承認方法や保留条件を設定できます。
おすすめの設定例は次のとおりです。
コメントを手動承認する
初回投稿者のコメントを承認待ちにする
複数のリンクを含むコメントを保留する
禁止キーワードを登録する
古い記事のコメント欄を閉じる
コメントを使用しないサイトでは機能を無効にする
コメント欄が不要であれば、記事ごとに閉じるだけでなく、新規投稿の標準設定も無効にしておくと管理しやすくなります。
6-2. ログイン画面の不正アクセス対策を行う
ログイン画面には、リキャプチャ以外の対策も組み合わせましょう。
特に有効なのは、次の対策です。
ログイン試行回数を制限する
二要素認証を導入する
強力で使い回していないパスワードを使用する
不要な管理者アカウントを削除する
ワードプレス本体とプラグインを更新する
不審なログイン履歴を確認する
XML-RPCを使用していない場合は制限を検討する
ログインURLの変更は、自動攻撃を減らす補助策にはなりますが、それだけで十分なセキュリティ対策になるわけではありません。二要素認証や回数制限を優先しましょう。
6-3. お問い合わせフォームの迷惑メール対策を行う
お問い合わせフォームでは、リキャプチャと次の対策を組み合わせると効果的です。
Honeypotを設置する
必須項目を適切に設定する
入力文字数に上限を設定する
URLを大量に含む送信を拒否する
同一IPからの連続送信を制限する
禁止キーワードを設定する
日本語を含まない送信を条件付きで分類する
送信データを管理画面にも保存する
ただし、日本語を含まない文章を一律で拒否すると、海外の顧客や外国人ユーザーからの正規の問い合わせまで失う可能性があります。サイトの対象ユーザーに合わせて設定してください。
また、送信完了画面に詳細なエラー理由を表示しすぎると、botに判定条件を推測されることがあります。利用者にはわかりやすく案内しつつ、内部の判定条件は必要以上に公開しない設計が理想です。
6-4. Akismetなど他のスパム対策プラグインと併用する
Akismetは、コメントやフォームの内容をスパムデータと照合し、迷惑投稿を判定するサービスです。リキャプチャが送信者の操作やアクセスを判定するのに対し、Akismetは送信された文章や関連情報をもとにスパムを分類します。WordPress.org+1
役割が異なるため、リキャプチャとAkismetを併用することで、異なる種類のスパムに対応しやすくなります。
ただし、複数のスパム対策を厳しく設定しすぎると、正常な問い合わせまで拒否される可能性があります。導入後はスパム件数だけでなく、正規の送信が減っていないかも確認してください。
Akismetの利用条件や料金はサイトの用途によって異なることがあるため、導入時に最新のプランを確認しましょう。
6-5. 海外スパムやbot対策を強化する
海外からのアクセスを対象としていないサイトでは、WAFやセキュリティサービスを使った国・地域単位の制限も選択肢になります。
ただし、国外アクセスを完全に遮断すると、海外出張中の管理者、海外在住の日本人、検索エンジンや外部サービスなどにも影響する可能性があります。
最初から全面的に遮断するのではなく、次のような段階的な対策がおすすめです。
フォームにリキャプチャを設定する
HoneypotやAkismetを併用する
同一IPからの送信回数を制限する
攻撃の多いIPアドレスを遮断する
必要に応じて国・地域単位の制限を行う
WAFのログを確認してルールを調整する
アクセス制限を行った後は、検索エンジンの巡回や外部API、決済機能などに影響していないかも確認しましょう。
7. リキャプチャ設定でよくあるエラーと対処法
7-1. 「サイトキーが無効です」と表示される場合
「サイトキーが無効です」「ERROR for site owner」などと表示される場合は、次の原因が考えられます。
v2用とv3用のキーを間違えている
サイトキーとシークレットキーを逆に入力している
Google側に登録したドメインが間違っている
本番サイト用のキーを別ドメインで使用している
コピー時に空白や改行が入っている
キーを発行した直後で設定が反映されていない
プラグインが対応していない方式を選択している
Googleの管理画面では、キーごとに利用できるドメインが制限されています。ドメイン確認を無効化することもできますが、キーの不正利用につながるため、十分なサーバー側検証を行えない場合は無効化しないでください。Google for Developers
まず現在のプラグインが要求しているバージョンを確認し、そのバージョン用のキーを新しく発行する方法が確実です。
7-2. リキャプチャが表示されない場合
reCAPTCHA v3ではチェックボックスが表示されないため、「フォーム内に認証欄がない」という状態だけではエラーと判断できません。
v2を設定しているのにチェックボックスが表示されない場合、またはv3のバッジが表示されない場合は、次の順番で確認します。
ブラウザとワードプレスのキャッシュを削除する
シークレットウィンドウで開く
キーの種類を確認する
登録ドメインを確認する
JavaScriptエラーを確認する
キャッシュ系プラグインを一時停止する
Cookie同意ツールの設定を確認する
他のCAPTCHAプラグインを一時停止する
一時的に標準テーマへ変更して確認する
プラグインやテーマを停止する場合は、必ずバックアップを取り、アクセスの少ない時間帯またはステージング環境で作業しましょう。
7-3. フォームが送信できない場合
リキャプチャ設定後にフォームを送信できなくなった場合は、認証トークンの取得やサーバー側の検証に失敗している可能性があります。
主な原因は次のとおりです。
JavaScriptが読み込まれていない
キャッシュ機能によって古いフォームが表示されている
JavaScriptの遅延読み込みで実行順序が変わった
セキュリティプラグインが通信を遮断している
Cookie同意前に必要なスクリプトが実行されない
サーバーから外部サービスへの通信に失敗している
スコアが基準値を下回っている
複数のCAPTCHA機能が競合している
まず自分の環境だけで発生しているのか、ほかのブラウザやスマートフォンでも発生するのか確認してください。
次に、キャッシュ系プラグインの削除、JavaScript最適化の一時停止、競合しそうなプラグインの停止という順番で原因を切り分けます。
7-4. reCAPTCHA v3の判定が厳しすぎる場合
reCAPTCHA v3では、ユーザーの操作に応じてスコアが返されます。一般的な実装例では0.5が判断基準の出発点として案内されていますが、適切な数値はサイトのアクセス状況や用途によって異なります。Google for Developers
Contact Form 7でも、スコアが一定の基準を下回った送信はスパムとして扱われます。判定が厳しすぎる場合は、まずフォームのスパムログやreCAPTCHA管理画面の統計を確認しましょう。Contact Form 7
いきなり基準値を大きく下げるのではなく、次の順番で対応します。
正常な送信のスコアを確認する
誤判定が特定の端末やページだけで起きていないか調べる
キャッシュやJavaScriptエラーを解消する
セキュリティ機能の競合を確認する
必要な場合に限り、基準値を少しずつ調整する
基準値を下げすぎると、今度はbotの送信を通過させやすくなります。変更前後のスパム件数と正常送信数を比較してください。
7-5. キャッシュ系プラグインと干渉する場合
キャッシュ系プラグインには、JavaScriptを圧縮、結合、遅延実行する機能があります。これらの処理によってreCAPTCHAの実行順序が変わると、トークンを取得できずフォーム送信に失敗することがあります。
問題が疑われる場合は、次の機能を一つずつ無効化します。
JavaScriptの結合
JavaScriptの圧縮
JavaScriptの遅延読み込み
外部スクリプトの読み込み遅延
お問い合わせページのページキャッシュ
CDN側の自動最適化
すべてのキャッシュを無効にする必要はありません。問題の原因となっているスクリプトやページだけを除外できる場合は、除外設定を利用しましょう。
設定変更後は、ワードプレス、サーバー、CDN、ブラウザのキャッシュをすべて削除してからテストします。
8. ワードプレスにリキャプチャを導入する際の注意点
8-1. ユーザーの離脱につながらない設定にする
スパム対策を厳しくしすぎると、正規のユーザーに負担をかけてしまいます。
特にreCAPTCHA v2の画像認証では、画像がわかりにくかったり、何度も認証を求められたりすると、ユーザーがお問い合わせを諦める可能性があります。
フォームの目的に合わせて、セキュリティと使いやすさのバランスを考えましょう。
資料請求や購入直前のフォームでは操作を増やしすぎない
スマートフォンで表示が崩れないか確認する
エラー時に入力内容が消えないようにする
送信できなかった場合の連絡手段を用意する
高齢者や支援技術の利用者にも配慮する
誤判定が多い場合は別方式も検討する
迷惑メールが減っても、正規の問い合わせまで減ってしまっては本末転倒です。
8-2. プライバシーポリシーへの記載を確認する
リキャプチャを導入すると、ユーザーのブラウザからGoogleのサービスへ通信が行われます。GoogleのFAQでは、リスク分析のために必要なCookieが使用されることも案内されています。Google for Developers
サイトのプライバシーポリシーには、外部サービスを利用していること、必要な情報が外部事業者へ送信される可能性があることなどを、実際の運用に合わせて記載しましょう。
また、reCAPTCHAバッジを非表示にする場合は、保護機能を使用していることと、Googleのプライバシーポリシーおよび利用規約への案内を、ユーザーが確認できる場所に表示する必要があります。Google for Developers+1
法令や業界ルールへの対応が必要なサイトでは、一般的なひな形をそのまま使わず、専門家へ確認することも検討してください。
8-3. 表示速度への影響を確認する
リキャプチャを導入すると、外部のJavaScriptを読み込むため、ページの表示速度に影響する可能性があります。
導入前後で次の項目を比較しましょう。
ページの読み込み時間
スマートフォンでの操作感
JavaScriptのエラー
フォームが操作可能になるまでの時間
外部通信の回数
ページ速度測定ツールの結果
ただし、速度改善を目的にreCAPTCHAのスクリプトを強く遅延させると、フォーム送信時に認証が間に合わなくなることがあります。
表示速度だけでなく、フォームが確実に送信できることを優先し、問題が起きない範囲で最適化してください。
8-4. テーマやプラグインとの相性を確認する
ワードプレスでは、テーマやプラグインがそれぞれJavaScriptやフォーム処理を追加しています。そのため、特定の組み合わせでリキャプチャが動作しない場合があります。
競合が疑われるときは、次の方法で原因を調べます。
バックアップを取得する
ステージング環境を用意する
キャッシュを削除する
関係のないプラグインを一つずつ停止する
標準テーマへ一時的に変更する
ブラウザの開発者ツールでエラーを確認する
問題のある組み合わせを特定する
本番サイトで一度に複数の設定を変更すると、どの変更が原因かわからなくなります。一つ変更するたびに動作確認を行いましょう。
9. リキャプチャ以外のスパム対策方法
9-1. Akismetを使う
Akismetは、コメントやお問い合わせの送信内容を分析し、スパムの可能性が高い投稿を分類するサービスです。
リキャプチャのようにユーザーへ認証操作を求めないため、フォームの使いやすさを維持しながらスパム対策を追加できます。
Akismetを導入するときは、次の点を確認しましょう。
利用中のフォームプラグインが連携に対応しているか
サイトの用途に適した利用プランか
スパムに分類された内容を確認できるか
正常な送信が誤判定されていないか
個人情報の取り扱いをプライバシーポリシーへ反映しているか
Akismetは、リキャプチャの代わりというより、異なる判定方法を追加する対策として活用すると効果的です。WordPress.org+1
9-2. Honeypotを使う
Honeypotは、人間には見えない入力欄をフォーム内に設置し、その欄へ値を入力した送信をbotと判定する方法です。
一般ユーザーには追加操作が発生しないため、使いやすさを保ちやすい点がメリットです。また、画像認証を必要としないため、フォームの見た目も変わりません。
ただし、高度なbotはHoneypotを回避することがあります。そのため、Honeypotだけに頼るのではなく、次の対策と組み合わせましょう。
リキャプチャまたはTurnstile
送信時間の判定
IP単位の回数制限
Akismet
禁止キーワード
サーバー側の入力検証
Honeypot用の項目をCSSだけで単純に非表示にすると、支援技術を利用しているユーザーへ影響する場合があります。アクセシビリティに配慮して実装されたプラグインを選ぶことが大切です。
9-3. Cloudflare Turnstileを使う
Cloudflare Turnstileは、Webフォームをbotから保護するためのCAPTCHA代替サービスです。ブラウザ側でチャレンジを実行してトークンを発行し、サーバー側でトークンを検証する仕組みになっています。Cloudflare Docs+1
Google reCAPTCHAを使いたくない場合や、ユーザーへの負担を抑えたい場合の選択肢になります。
Contact Form 7にはTurnstileとのインテグレーション機能も用意されています。Contact Form 7公式サイトでは、reCAPTCHAを使用する特別な理由がない場合、Turnstileを選ぶ方法も推奨されています。Contact Form 7
導入手順はリキャプチャと似ており、Cloudflare側でサイトを登録してサイトキーとシークレットキーを取得し、対応プラグインへ入力します。
ただし、既存のreCAPTCHAと同時に有効化すると競合する可能性があります。切り替える場合は、一方を無効にしてから動作確認してください。
9-4. フォーム項目や送信制限を見直す
フォームの設計を見直すだけでも、スパムを減らせる場合があります。
たとえば、次のような対策が有効です。
必須項目を設定する
電話番号やメールアドレスの形式を検証する
本文の最小文字数と最大文字数を設定する
URLの入力数を制限する
同じ内容の連続送信を拒否する
ページ表示直後の不自然に速い送信を拒否する
同意チェックを設置する
送信回数に上限を設ける
ただし、項目を増やしすぎるとフォームの入力負担が大きくなります。スパム対策だけを目的に不要な質問を追加するのではなく、問い合わせ対応に必要な項目へ絞りましょう。
9-5. IP制限や国外アクセス制限を活用する
特定のIPアドレスから大量のスパムが届いている場合は、サーバーやWAFで対象IPを制限する方法があります。
また、日本国内だけを対象にしたサービスで、特定の国や地域から攻撃が集中している場合は、国外アクセス制限も候補になります。
ただし、IPアドレスは変更されることがあり、複数の利用者が同じIPを共有している場合もあります。広い範囲を安易に遮断すると、正常なユーザーまでアクセスできなくなる可能性があります。
制限を実施する際は、次の点に注意してください。
アクセスログで攻撃元を確認する
期間を区切って遮断する
管理者自身のアクセス元を除外する
検索エンジンや外部サービスへの影響を確認する
問い合わせ減少やエラーの発生を監視する
定期的にルールを見直す
IP制限は、リキャプチャやフォーム側の対策を補助する方法として利用しましょう。
まとめ
ワードプレスにリキャプチャを導入すると、お問い合わせフォーム、コメント欄、ログイン画面などを狙ったbotの自動送信を減らせます。
初心者が導入する場合は、コードを直接編集するのではなく、Contact Form 7のインテグレーション機能や、ログイン・コメント欄に対応したプラグインを利用する方法がおすすめです。
設定の基本的な流れは、Googleアカウントを用意し、reCAPTCHAの管理画面でサイトを登録して、発行されたサイトキーとシークレットキーをワードプレスへ入力するだけです。ただし、v2とv3ではキーの種類が異なるため、利用中のプラグインが対応するバージョンを必ず確認してください。
導入後は、リキャプチャの表示だけでなく、実際にフォームを送信してメールが届くところまで確認することが重要です。パソコンとスマートフォン、ログイン状態とログアウト状態など、複数の環境でテストしましょう。
スパムが減らない場合は、Akismet、Honeypot、Cloudflare Turnstile、送信回数制限、WAFなどを組み合わせると対策を強化できます。
一方、設定を厳しくしすぎると、正常なユーザーまでフォームを送信できなくなります。スパム件数と正規の問い合わせ件数を定期的に確認し、サイトの使いやすさを保ちながら調整していきましょう。

