個人ブログ・小規模サイト向けの無料Contact Form 7 のスパム対策
WordPressでContact Form 7を使っていると、
ある日突然、英語のスパムや怪しいメッセージが大量に届くようになることがあります。
この記事では、個人ブログ・小規模サイト向けに無料でできる Contact Form 7 のスパム対策をまとめます。
※ 大規模サイト・EC・会員制サービス向けの記事ではありません。
まず結論
以下の ①だけで基本的なスパム対策は可能です。さらに ②を追加すると、より強固になります。
- Google reCAPTCHA v3(Googleの自動スパム対策)
- Akismet(WordPress公式のスパム対策サービス)
どちらも
- 無料で使える
- 公式サービス
- 多くのWordPressサイトで実績あり
なので、安心して導入できます。
Google reCAPTCHA v3を設定する
reCAPTCHA v3 とは、Google公式のスパム対策サービスです。ユーザーにチェック操作をさせることなく、裏側で「人間かボットか」を自動判定してくれます。
Google reCAPTCHA v3の無料枠について
Google reCAPTCHA v3は完全無料のサービスではありませんが、月約1万回分の判定まで無料で使用できます。
通常の個人ブログや小規模サイトでこの上限に達することはほぼありません。
Contact Form 7 の設定画面へ
WordPressの管理画面から「お問い合わせ」→「インテグレーション」をクリックします。

次の画面で「reCAPTCHA v3」 をクリックします。

reCAPTCHA(v3)を選択
Contact Form 7のサイトが開きます。「reCAPTCHA 管理コンソール」をクリックします。

キーを発行
設定内容は以下になります。
- ラベル:任意(サイト名など)
- タイプ:reCAPTCHA v3
- ドメイン:自分のブログのドメイン

設定が終わったら、「送信」をクリックします。送信すると
- サイトキー
- シークレットキー
が発行されます。これをメモしておきます。
キーをContact Form 7 に入力する
WordPressの管理画面から「お問い合わせ」→「インテグレーション」→「インテグレーションのセットアップ」でサイトキーとシークレットキーに先ほど発行した文字列を貼り付けて保存します。

これで、reCAPTCHA v3 の設定は終わりです。
正常に設定できたかの確認
reCAPTCHA v3 の設定が完了すると、サイトの右下に「reCAPTCHA」バッジが表示されます。

このバッジが表示されていれば正常に動作しています。これでスパムはブロックされているはずです。
それでもまだスパムが頻繁に届く場合は、次のAkismetも設定することをおすすめします。
Akismet を設定する
Akismet は、WordPress公式のスパム対策サービスです。
お問い合わせフォームだけではなく、コメントへのスパムも対策してくれます。
コメント欄を公開していて、頻繁にスパムが届いて困っているという人もAkismetをブログにAkismetを設定しておきましょう。
Akismet の導入手順
Akismetを使ったスパム対策は以下の手順で行います。
- Akismetを設定する
- Contact Form 7で設定する
①の設定を行うだけでAkismetは有効になり、コメントのスパムはこれだけで対策できます。ただ、Contact Form 7にAkismetを使うためには②のContact Form 7側での設定が必要になります。
Akismetを設定する
まずはAkismetの設定から始めます。
Akismetの詳しい初期設定については、有名ブロガーのヒトデさんの記事が非常に分かりやすいので、参考として紹介しておきます。
上記のヒトデさんの記事で紹介されている Akismetの設定手順は、「コメントスパム対策」を目的としたものです。
ですが、基本設定はフォームスパムとコメントスパムで共通ですので、記事の内容そのままを行って貰えばOKです。 この後、Contact Form 7用の追加の設定を行います。

ヒトデさんは、ブログアフィリエイトに関する書籍も出版している有名ブロガーです。
ヒトデさんの記事は、読みやすく、初心者にとってブログ記事の書き方としても参考になるので、Akismetの設定を行う際はその点にも注目しながら読んでみてほしいです。
ヒトデさんの書籍については、この記事の最後で紹介します。
Contact Form 7で設定する
Akismetの設定が終わったら、次はContact Form 7側の設定を行います。
管理画面で「お問い合わせ」→「コンタクトフォーム」からコンタクトフォームの編集画面を開きます。
現在はこのような表示になっているはずです。

この中の「your-name」と「your-email」の部分に「akismet:」の文字が入った文字列を追記します。
| 元の文字列 | 追記後 |
|---|---|
| [text* your-name] | [text* your-name akismet:author] |
| [email* your-email] | [email* your-email akismet:author_email] |
設定が終わると、このようになります。

Contact Form 7の動作テストをする
以下のテスト用文字列を入力してフォーム送信します。
- 名前欄:
viagra-test-123 - メール欄:
akismet-guaranteed-spam@example.com
これらのマジックワードはテスト用に予約されているため、正しく設定できていれば、
スパムとしてブロックされた旨のエラー表示が出ます。

エラーメッセージが表示されたら、問題なく設定できています。

以上で、スパム対策の設定は終わりです。
今回紹介した方法は、比較的小規模の個人ブログで利用できる方法です。
大規模サイトや会員制サービスの場合は別の設計が必要になりますが、まずは自分のサイト規模に合った対策を選びましょう。
[PR]書籍紹介
記事内で紹介したヒトデさんの書籍です。
ブログ初心者が最初に知っておくべき知識が1冊にまとまった一冊。
ブログ運営やアフィリエイトに興味がある方は、必読です。


