WordPressで作ったサイトからついにコメントや問い合わせが来たと思ったらただのスパムだったということはよくある話です。

特にスパムコメントはWordPressの仕様上とても送りやすいことから、数百件ものスパムコメントが書き込まれることもあります。そのためスパムコメントに関してはしっかり対策していることが多いのですが、問い合わせフォームに関しては何も対策していないという方は結構いらっしゃるでしょう。

そこでこの記事ではWordPressで作成したサイトの問い合わせフォームからスパムが送られてこないようにする対策方法を解説します。

お問合せフォームから送られてくるスパムの対策方法

お問い合わせフォームからスパムが送られてこないようにする対策方法はいくつかあります。

  • reCAPTCHAを導入する
  • Googleフォームを利用する
  • Akismetを利用する

reCAPTCHAを導入する

reCAPTCHAを導入するのが一つの選択です。スパムのほとんどは自動化されたBOTによるものであるため、BOT対策用のreCAPTCHAを問い合わせフォームに設置すれば、BOTからのスパムを受け取らないようにできます。

ちなみにreCAPTCHAとは、以下のような「私はロボットではありません」の認証ボックスのことです。見かけたことがある人も多いかもしれません。

このreCAPTCHAは人間ではないBOTを弾きやすいようになっており、無料で導入できます。

導入方法

reCAPTCHAに対応したお問い合わせフォーム作成プラグインは色々ありますが、ここではContact Form7を使った方法を解説します。

まずはreCAPTCHA用のコードを取得します。以下のreCAPTCHA作成ページにアクセスしてください。

>>Google reCAPTCHA

アクセスしたら、

  • reCAPTCHAを利用するサイト名
  • reCAPTCHAタイプ
  • reCAPTCHAを使用するサイトのドメイン

それぞれ入力していきます。

reCAPTCHAタイプは必ずreCAPTCHA v3を選択してください。Contact Form7はreCAPTCHA v3にしか対応していません。

必要な入力項目に入力し終わったら[送信]をクリックして次のページに進みます。作成が完了するとサイトキーとシークレットキーが表示されるので、それぞれメモ帳などに控えておいてください。

次にContact Formにサイトキーとシークレットキーを設定していきます。

WordPress管理画面を開き、左メニューの[お問い合わせ]->[インテグレーション]をクリックしてください。

サイトキーとシークレットキーを入力する項目があるのでそれぞれ入力して保存します。

有効なサイトキーとシークレットキーを入力すると「reCAPTCHA はこのサイト上で有効化されています。」と表示されます。

この状態でトップページや記事ページなどどこでもいいので開いてみてください。右下にreCAPTCHAアイコンが追加されているはずです。

このアイコンが表示されていたら

reCAPTCHAアイコンを非表示にしたい場合

自動的に表示してreCAPTCHAアイコンはCSSをカスタマイズすることで簡単に非表示にすることができますが、CSSで強制的に非表示する行為は利用規約違反であり認められていません。

一応reCAPTCHAアイコンを非表示にする方法はあるのですが、今回紹介した方法(reCAPTCHA v3を使用した方法)ではできませんので、もしreCAPTCHAアイコンを非表示にしつつreCAPTCHAでスパムBOT対策をしたいのであればWordPressのお医者さんまでご相談ください。

Googleフォームを活用する

Googleフォームを使って問い合わせフォームを作成するのが最も簡単なスパム対策方法です。

Googleフォームには初めからスパム対策に使えるreCAPTCHAが実装されており、Contact Form7のような面倒な作業をしなくてもスパム対策を行えます。

集まった問い合わせをスプレッドシートで管理することもできるため、管理のしやすさを考慮してもGoogleフォームを使う方法がかなりいいかもしれません。

導入方法

導入方法は簡単で、Googleフォームで問い合わせフォームを作成し、そのフォームの埋め込みコードを貼り付けるだけです。まずは何でも良いのでGoogleフォームにアクセスして問い合わせフォームを作成しましょう。

チェックボックスや選択項目なども載せられますが、フォームの作成方法についてここでは割愛します。

Googleフォームで問い合わせフォームを作成したら[送信]を押してください。

 

[送信]を押すと共有方法の選択画面が表示されます。「送信方法」の[<>]をクリックしてください。

「HTMLを埋め込む」の下にあるHTMLコードをコピーします。

コピーしたらカスタムHTMLブロックを作成して貼り付けます(Gutenbergの場合)。

クラシックエディタを使っている方はテキストモードに切り替えてから貼り付けてください。ビジュアルモードのまま貼り付けると正常に読み込みが機能しません。

HTMLコードを埋め込んだ後ページを表示してみてください。以下のようにGoogleフォームが表示されたはずです。

この方法を使うと導入するプラグイン数も減らすことができるのでおすすめです。

Googleフォームのサイズやサイトによってはスクロールしないと問い合わせフォームが全部表示されないことがあるので、その時はWordPressのお医者さんまでお問い合わせくださいませ。

Akismetを導入する

3つ目が、WordPressをインストールした直後に入っていることが多いAkismetを使った方法です。スパムコメントのブロックでも有名なAkismetですが、実は問い合わせフォームのスパムブロックにも利用できます。

Akismetはスパムコメントの検出精度が高いため、問い合わせフォームから送られてくるスパムのブロックにも十分実用できるでしょう。

ただしAkismetと連携できる問い合わせフォーム作成プラグインは限られており、全ての問い合わせフォーム作成プラグインに使えるわけではないので注意してください。

導入方法

当ページでは問い合わせフォーム作成で有名なプラグイン「Contact Form 7」にAkismetを導入してスパムを防止する方法を紹介します。事前にContact Form7を導入して問い合わせフォームを作成しておいてください。

まずはAkismetアカウントのセットアップを進めていきましょう。

Akismetアカウントのセットアップ

スパムコメント対策の一環で既にAkismetを導入しているという方(設定済みの方)は読み飛ばしてください。

 

Akismetプラグインをインストールして有効化するとAkismetアカウント設定画面が表示されるので、[Akismet アカウントを設定]をクリックします。

 

画面中央の[SET UP YOUR AKISMET ACCOUNT]を選択

 

Akismetは有料版がありますが、スパム対策したいだけなら無料版で十分です。[Get Personal]からアカウント登録を進めてください。

無料登録のはずなのにクレジットカード番号を入力する画面が表示されますが、右側の金額が表示されているバーを一番左に動かすことで無料プラン(Personal)として登録できます。

右側のバーが[¥0 / YEAR]となるとクレジット番号を入力するか消えるので、メールアドレスと氏名、Akismet導入先サイトのURLを入力し、3つのチェックボックス全てにチェックを入れた後に青いボタン[CONTINUE WITH PERSONAL SUBSCRIPTION]をクリックしてください。

 

入力したメールアドレス宛に認証コードが送られてくるので入力してください。

認証が成功すると「Sighup Complete」と表示されて、に登録したメールアドレス宛に API キーが送信されてきます。

このAPIキーを控えておき、WordPress管理画面に戻ります。

 

WordPress管理画面から[設定]->[Akismet]へと進み、[Manually enter an API key]をクリックし、先ほど控えておいたAPIキーを入力します。

 

以下の画面が表示されたらAkismetのセットアップ完了です。

いくつか設定項目がありますが、問い合わせフォームに関係する設定はないので何もいじる必要はありません

無料プラン(Personal)選択時の注意点

ただし、以下のいずれかに当てはまるサイトは無料版Akismetを使用できません。

  • 広告を掲載している
  • 何らかの商品・サービスを提供している
  • ビジネスの宣伝・広告に使用している

いわゆる商用サイトでは有料版Akismetを使わないと規約違反になりますので注意してください。

Contact Form7の設定

Akismetを導入しただけではContact Form7のスパム対策はされません。

Akismetを導入したらWordPress管理画面の[お問い合わせ]->[コンタクトフォーム]からスパム対策したい問い合わせフォームを選択しましょう。

 

フォーム編集画面が表示されますが、以下の2箇所を修正して保存します。

  • [text* your-name]を[text* your-name akismet:author]に変更する
  • [textarea your-message]を[textarea your-message akismet:author_email]に変更する

Akismet導入済みの場合、これだけで問い合わせフォームのスパム対策が完了します。

既に紹介しているreCAPTCHAと組み合わせるとさらに強力なスパムフィルターとなるでしょう。

スパム対策でお困りならWordPressのお医者さんへ

問い合わせフォームからスパムばかり送られてきて時間のロスが大きいなど、なにかお困りでしたら当サイト「WordPressのお医者さん」までご相談ください。

スパム対策はもちろんのことSQLインジェクション対策などのWordPressセキュリティやWordPress高速化など様々なご相談をお受けさせて頂きます。

LINEでの無料相談も受け付けていますので、気になる方はぜひお問い合わせください。