MENU

【WordPress】コンタクトフォームでスパムが送られてこないようにする方法を解説

WordPress でブログを運営するためには問い合わせフォームが不可欠ということでコンタクトフォームを導入したのはいいものの、スパムメールが大量に届いていて困っている人もいるはずです。

そこで今回は、コンタクトフォームでスパム対策をする方法を解説していきます。

目次から探す

コンタクトフォームでスパム対策をする方法

コンタクトフォームでスパム対策をする場合、Akismetを使うのがセオリーでしたが、Akismetの無料版は商用利用不可であり広告を掲載しているサイトには使えない(アフィリエイトサイトも不可)ので、今回はreCaptchaを使った方法を解説します。

WordPressプラグインのコンタクトフォームには、reCaptchaの設定項目が用意されており、reCaptchaの設定を行うと、スパムBOTによるスパムの問い合わせを防ぐことができます。

STEP
reCaptchaのキーを取得する

一旦コンタクトフォーム側の設定はおいておき、reCaptchaの設定に必要な API キーを取得しに行きます。

reeCaptcha管理画面にアクセスしたら、+をクリックしてreCaptchaを追加します。

reCaptchaを使用するサイトの登録画面が表示されるので、各項目をそれぞれ入力していきます。

項目名詳細
ラベルreCaptcha管理画面に表示する名前。何でも良い
reCAPTCHAタイプ表示するreCaptchaの種類。
必ずreCAPTCHA v3を選択してください
ドメインreCaptchaを導入するサイトのドメイン。
例:nidea.jp
入力例

必要項目をすべて入力したら先に進んでください。

サイトキーと シークレットキーが表示されるので、表示された画面を閉じずそのままにしておくか、メモ帳などにコピーして控えておいてください。

STEP
WordPress 側でのreCaptchaの設定

reCaptchaの取得が完了したら、コンタクトフォームにキャプチャの設定をしていきます。

コンタクトフォームのメニュー項目にあるインテグレーションを選択します。

一番下にあるreCAPTCHAインテグレーションのセットアップをクリックしてください。

先ほど取得したサイト Key と Secret key をそれぞれ入力します。

手入力だと高確率で間違えるので、必ずコピーペーストしてください。

入力したら変更を保存を押してreCaptchaを有効化します。

変更を保存したあと、問い合わせフォームを設置しているページにアクセスしてみてください。

ページ右下にreCaptchaを導入できていることを示すアイコンが表示されているはずです。

コンタクトフォームを設置しているページでのみreCaptchaを有効化する

コンタクトフォームで設定できるreCaptchaは、問い合わせフォームが表示されているページかどうかにかかわらず全ページで表示する仕様になっており、トップページなどでも表示されてしまいます。

PCだとあまり気にならないサイズですがスマホだと結構邪魔なので、問い合わせフォームがあるページでだけreCaptchaを有効化する方法をカンタンに解説します。

STEP
問い合わせフォームを設置しているページのスラッグをメモしておく

問い合わせフォームを設置しているページのスラッグをメモしておきます。

スラッグとは、パーマリンク設定画面で設定できるページ固有のURLの部分のことです。

STEP
functions.phpを編集する

使用しているテーマの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万回までであれば無料で使えるようになっています。

一時期有料化することで話題になったことがありましたが、月間100万PVに満たない小規模なサイトには関係のない話だったりします。

functions.phpを編集してコンタクトフォームを設置しているページでのみreCaptchaを有効化していた場合、普通のWebメディアなら1億~10億PVくらいまで問題ない(問い合わせページはめったにアクセスされない)ので、functions.phpを編集できる人は、コンタクトフォームを設置しているページのみreCaptchaを有効化しておくといいでしょう。

Googleフォームに乗り換えるのもおすすめ

WordPress 内で問い合わせフォームを作成できるコンタクトフォームは便利なプラグインではありますが、セキュリティ対策やスパムコメント対策が必要になるなど、利便性はそこまでいいとは言いません。

プラグイン数を少なくしたいからコンタクトフォームは使いたくないという人もいるはずです。

そういう人はGoogleフォームで問い合わせフォームを作成してもいいかもしれません。

Googleフォームは何もしなくてもスパムコメント対策がされている優秀なフォーム作成サービスであり、無料で使えます。

このような問い合わせフォームをカンタンに作れる

カスタマイズ性が非常に高く、チェックボックスやラジオボタン・ファイルのアップロード項目・プルダウンメニューなどを直感的に作成できます。

当サイトは、管理のしやすさ・スパム対策・WordPress非依存で使い回せる・プラグイン不要などの観点からGoogleフォームで問い合わせフォームを作成し、フッターに問い合わせフォームへのリンクを設置しています。

別にコンタクトフォームにこだわる理由はない、むしろコンタクトフォームのデザインが質素で気になるから乗り換えたい人はGoogleフォームを使ってみるといいでしょう。

よかったらシェアしてね!
目次から探す