reCAPTCHA はスパムやその他の自動化された嫌がらせから守ります。
Contact Form 7 の reCAPTCHA インテグレーションモジュールを使えば、スパムボットによる不正なフォーム送信を遮断できます。
reCAPTCHA API の現在の最新バージョンは v3 です。バージョン 5.1 以降の Contact Form 7 はこの reCAPTCHA v3 API を使用します。reCAPTCHA v3 は人目につかないバックグラウンドで仕事をするので、これまでのように画像の中のぼやけたテキストを読ませたり、「私はロボットではありません」のチェックボックスを選択させたりする必要がなくなります。
注意: reCAPTCHA v3 と v2 の API キーはそれぞれ別のものです。v2 のキーは v3 の API では機能しません。再度サイトを登録して v3 のキーを新規に入手しましょう。
もしあなたが古いバージョンの Contact Form 7 を使っていて v2 API に対応した reCAPTCHA モジュールに関する情報を探しているなら、reCAPTCHA (v2) を参照してください。
サイトを登録する
reCAPTCHA の使用にあたって、まずあなたの WordPress の登録が必要です。reCAPTCHA は Google のサービスなので、使用には Google のアカウントが必要になります。そのアカウントで Google にログインして、My reCAPTCHA ページに移動します。下に見られるような簡単な登録フォームがあるはずです:
選択肢から reCAPTCHA v3 を選択して、Domains 項目にウェブサイトのドメインを入力します。
ウェブサイトの登録が済んだらそのサイトのサイトキー (site key) とシークレットキー (secret key) が取得できるようになります。
次に、WordPress の管理画面に移動して、お問い合わせ > インテグレーション ページを開きます。
そこに reCAPTCHA というタイトルのボックスが見つかるでしょう。その中にあるインテグレーションのセットアップボタンをクリックすると、サイトキーとシークレットキーの入力項目が表示されます。前のステップで取得した二つのキーをこれらの項目にペーストして、変更を保存ボタンをクリックします。
これで終わりです。これによりあなたのコンタクトフォームは reCAPTCHA のスコアを利用して、フォーム送信が人間からのものかそれともスパムボットからのものか判別することができるようになります。
reCAPTCHA v3 では CAPTCHA ウィジェット (reCAPTCHA v2 にあった「私はロボットではありません」のチェックボックス) が不要になりました。
Google公認 reCAPTCHA v3のロゴを消す方法
reCAPTCHA のブランドを視覚的にサイト内へ表示
ブログで「TOPへ戻るボタン」を設定している場合、スマホ表示でもパソコン表示でも、このreCAPTCHAのアイコンがかぶってしまう場合がありますが、これから紹介する方法で回避することもできます。
お問い合わせフォームやフッター等に以下の情報(ソースコード)をサイト中に表示することで、reCAPTCHA v3のロゴ(バッジ)を非表示にすることが可能です。
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。
reCAPTCHAバッジを非表示にするには、CSSへ以下のコードを追記します。
.grecaptcha-badge { visibility: hidden; }
上記の対策をとりましたが、それでも迷惑メッセージが届いた場合は、個別にブラックリストに追記する運用をするという選択肢があります。コンタクトフォームはコメントブラックリストに追加することで個別に対策することが可能です。投稿者のIPアドレスがわかるように、メッセージのテンプレートに「 差出人IP:[_remote_jp] 」を追加します。