WordPress でブログを運営するためには問い合わせフォームが不可欠ということでコンタクトフォームを導入したのはいいものの、スパムメールが大量に届いていて困っている人もいるはずです。
そこで今回は、コンタクトフォームでスパム対策をする方法を解説していきます。
コンタクトフォームでスパム対策をする方法
コンタクトフォームでスパム対策をする場合、Akismetを使うのがセオリーでしたが、Akismetの無料版は商用利用不可であり広告を掲載しているサイトには使えない(アフィリエイトサイトも不可)ので、今回はreCaptchaを使った方法を解説します。
WordPressプラグインのコンタクトフォームには、reCaptchaの設定項目が用意されており、reCaptchaの設定を行うと、スパムBOTによるスパムの問い合わせを防ぐことができます。
一旦コンタクトフォーム側の設定はおいておき、reCaptchaの設定に必要な API キーを取得しに行きます。
reeCaptcha管理画面にアクセスしたら、
をクリックしてreCaptchaを追加します。reCaptchaを使用するサイトの登録画面が表示されるので、各項目をそれぞれ入力していきます。
項目名 | 詳細 |
---|---|
ラベル | reCaptcha管理画面に表示する名前。何でも良い |
reCAPTCHAタイプ | 表示するreCaptchaの種類。 必ずreCAPTCHA v3を選択してください |
ドメイン | reCaptchaを導入するサイトのドメイン。 例:nidea.jp |

必要項目をすべて入力したら先に進んでください。
サイトキーと シークレットキーが表示されるので、表示された画面を閉じずそのままにしておくか、メモ帳などにコピーして控えておいてください。
reCaptchaの取得が完了したら、コンタクトフォームにキャプチャの設定をしていきます。
コンタクトフォームのメニュー項目にある
を選択します。
一番下にある
の をクリックしてください。
先ほど取得したサイト Key と Secret key をそれぞれ入力します。
手入力だと高確率で間違えるので、必ずコピーペーストしてください。
入力したら
を押してreCaptchaを有効化します。変更を保存したあと、問い合わせフォームを設置しているページにアクセスしてみてください。
ページ右下にreCaptchaを導入できていることを示すアイコンが表示されているはずです。
コンタクトフォームを設置しているページでのみreCaptchaを有効化する
コンタクトフォームで設定できるreCaptchaは、問い合わせフォームが表示されているページかどうかにかかわらず全ページで表示する仕様になっており、トップページなどでも表示されてしまいます。
PCだとあまり気にならないサイズですがスマホだと結構邪魔なので、問い合わせフォームがあるページでだけreCaptchaを有効化する方法をカンタンに解説します。
問い合わせフォームを設置しているページのスラッグをメモしておきます。
スラッグとは、パーマリンク設定画面で設定できるページ固有のURLの部分のことです。

使用しているテーマのfunctions.php
を開き、下記コードをfunctions.php
末尾に追記します。
add_action( 'wp_enqueue_scripts', function() {
$slug = 'contact'; //メモしていたスラッグを指定する
if(is_page($slug)) return;
wp_deregister_script( 'google-recaptcha' );
}, 100, 0);
$slug
には、コンタクトフォームを表示したいページのスラッグ名を指定してください。
これで、指定したスラッグを持つページでしかreCaptchaが読み込まれず、トップページはほかの記事ページなどでreCaptchaのアイコンが表示されなくなったはずです。
月間100万PV未満ならreCaptchaを使う方法がおすすめ
Google reCaptchaは月間100万回までであれば無料で使えるようになっています。
functions.phpを編集してコンタクトフォームを設置しているページでのみreCaptchaを有効化していた場合、普通のWebメディアなら1億~10億PVくらいまで問題ない(問い合わせページはめったにアクセスされない)ので、functions.phpを編集できる人は、コンタクトフォームを設置しているページのみreCaptchaを有効化しておくといいでしょう。
Googleフォームに乗り換えるのもおすすめ
WordPress 内で問い合わせフォームを作成できるコンタクトフォームは便利なプラグインではありますが、セキュリティ対策やスパムコメント対策が必要になるなど、利便性はそこまでいいとは言いません。
そういう人はGoogleフォームで問い合わせフォームを作成してもいいかもしれません。
Googleフォームは何もしなくてもスパムコメント対策がされている優秀なフォーム作成サービスであり、無料で使えます。

カスタマイズ性が非常に高く、チェックボックスやラジオボタン・ファイルのアップロード項目・プルダウンメニューなどを直感的に作成できます。
別にコンタクトフォームにこだわる理由はない、むしろコンタクトフォームのデザインが質素で気になるから乗り換えたい人はGoogleフォームを使ってみるといいでしょう。