Contact Form 7のスパム対策方法|迷惑メールを減らす設定と注意点

WordPressで問い合わせフォームを設置すると、いつの間にか英語の営業メール、URLが大量に含まれた怪しい問い合わせ、ボットによる同じ文面の連続送信が届くようになることがあります。Contact Form 7はWordPress向けのフォームプラグインとして非常に広く使われているため、スパム送信の標的になりやすい面があります。
スパムメールを放置すると、本来の問い合わせを見落とす、メール管理に余計な手間がかかる、フォームが悪用されてサーバーに負担をかけるといった問題につながります。しかし、適切な対策を組み合わせれば、スパムの大半は減らすことができます。
この記事では、Contact Form 7でできるスパム対策を、初心者の方でも実行しやすい順番で解説します。reCAPTCHA、Akismet、チェックボックスの追加、URL付きスパムの制限、外国語スパムへのひらがなチェックまで、設定方法と注意点をまとめています。どれか一つだけで完全に防げるものはないため、サイトの状況に合わせて複数の方法を組み合わせることが大切です。
Contact Form 7でスパム対策が必要な理由
Contact Form 7は世界中のWordPressサイトで使われているプラグインです。利用者が多い分、スパム送信者にとっても狙いやすいターゲットとなっています。問い合わせフォームはウェブサイトに訪問した人であれば誰でも送信できる仕組みのため、ボットと呼ばれる自動送信プログラムが悪用しやすいという特性もあります。
Contact Form 7でスパムが多くなる主な原因は次のとおりです。まず、フォームが外部に公開されていることで、ボットがURLを見つけて自動で送信を繰り返すケースがあります。次に、スパム送信者が自社サービスの宣伝を不特定多数のフォームに送り続けるケースがあります。また、フィッシング目的でURLが含まれた文章を送りつけるケースも見られます。
スパムを放置した場合のリスクは、受信ボックスが汚れるだけでなく、重要な問い合わせが埋もれてしまうことです。取引先や顧客からの問い合わせを見落としてしまえば、機会損失や信頼低下につながります。また、大量の送信が続くとサーバーやメールサーバーに負荷がかかり、他の機能に影響が出ることもあります。
さらに、フォームが悪用されてサーバーを踏み台にした迷惑メール送信に使われるケースも存在します。送信したのは第三者であっても、そのサーバーからスパムが届いたと判断されれば、自サイトのメールが迷惑メールとして扱われるリスクもあります。WordPressやContact Form 7のバージョンを常に最新に保つこと、そしてスパム対策を早めに講じることが、サイト運営の安定につながります。
Contact Form 7でできる主なスパム対策
Contact Form 7には、複数のスパム対策を組み合わせて使う方法があります。まず全体像を把握してから、自分のサイトに合った対策を選ぶとよいでしょう。
| 対策方法 | 効果 | 難易度 | 向いているケース |
|---|---|---|---|
| Google reCAPTCHA | ボットによる自動送信を防ぐ | 中(Googleアカウント設定が必要) | ボット送信全般に有効。まず導入したい基本対策 |
| Akismet | 送信内容をスパム判定して振り分ける | 中(APIキー取得が必要) | ボット以外の人手によるスパムにも効果的 |
| チェックボックス・承諾確認 | 機械的な自動送信を一定程度防ぐ | 低(フォーム設定のみ) | 導入が簡単。reCAPTCHAと併用する補助対策として |
| URL付き送信の制限 | URLを含む営業・フィッシングメールを減らす | 中(設定ファイル編集が必要) | URL付きスパムが特に多い場合 |
| ひらがなチェック | 日本語を含まない外国語スパムを弾く | 中(カスタマイズが必要) | 英語・外国語スパムが多い日本語専用サイト |
| WordPress・プラグインの更新 | 既知の脆弱性を塞ぐ | 低(管理画面から操作) | 全サイト共通。常に最新版を維持する |
以下では、それぞれの対策の概要を説明します。設定手順はこの後のH2セクションで詳しく解説します。
Google reCAPTCHAを導入する
Google reCAPTCHAは、フォームに送信しようとしているのが人間かボットかを自動で判定する仕組みです。利用者の操作パターンやブラウザの情報をGoogleが分析し、不審なアクセスを検出します。現在よく使われているのは「reCAPTCHA v3」で、利用者が画像認証などの操作を行う必要がなく、バックグラウンドで自動的に判定されます。
Contact Form 7では、管理画面の「インテグレーション」からreCAPTCHAの設定を行うことができます。Google側でサイトを登録して取得したサイトキーとシークレットキーを入力するだけで連携できます。ボットによる大量送信に対して高い効果があり、スパム対策の基本として最初に検討したい方法です。
具体的な設定手順は「Google reCAPTCHAを使ったContact Form 7のスパム対策手順」で説明します。
Akismetでスパム判定を行う
Akismetは、送信された問い合わせの内容をスパムかどうか自動で判定するプラグインです。WordPress.comを運営するAutomatticが提供しており、WordPressにデフォルトでインストールされています。名前、メールアドレス、本文などの情報をもとにスパム判定が行われます。
Contact Form 7のフォームタグに専用の属性を追加することで、Akismetが各フィールドを判定に使えるようになります。個人・非商用サイトは無料で利用できますが、商用サイトは有料プランが必要です。また、利用にはAkismetのAPIキーが必要で、アカウント登録後に取得します。reCAPTCHAとAkismetを組み合わせると、ボット送信だけでなく人手によるスパムにも対応できます。
チェックボックスや承諾確認を追加する
フォームに「送信前に確認しました」のようなチェックボックスや、プライバシーポリシーへの同意確認を追加することで、機械的な自動送信を一定程度防ぐことができます。ボットはこうした確認項目を無視して送信することが多いため、完全にスパムを防ぐ方法ではありませんが、手軽に導入できる補助対策として有効です。
Contact Form 7のフォームエディタで専用のタグを使って追加できます。設定自体はシンプルで、プラグインを追加インストールする必要もありません。reCAPTCHAなどと組み合わせて使うことで、スパムの減少につながります。
URL付きの問い合わせを制限する
営業メールやフィッシング目的のスパムは、本文にURLが含まれていることが多い傾向があります。URLを含む問い合わせを制限することで、特定のスパムを減らせる場合があります。Contact Form 7には「許可しないメッセージ」の設定項目があり、URLを含む送信を弾くようにカスタマイズすることが可能です。
ただし、URLを含む正当な問い合わせをしてくる利用者もいます。たとえば、ウェブサイトのURLを添えて相談内容を送ってくるケースです。このため、URL制限を使う場合は業種やサイトの特性を考慮し、必要に応じて「URLを含む場合は電話でお問い合わせください」のような案内を合わせて設置するとよいでしょう。
ひらがなチェックで外国語スパムを減らす
日本語サイトへのスパムには、英語など外国語で書かれた内容が多く見られます。こうした外国語スパムへの対策として、本文にひらがなが含まれていない場合は送信を拒否する設定が有効です。日本語での問い合わせが主体のサイトであれば、ひらがなを含まない送信は外国語スパムの可能性が高いと判断できます。
この設定はContact Form 7のカスタマイズで対応する方法と、追加プラグインを使う方法があります。ただし、外国人のお客様からの問い合わせを受けることがあるサイト、英語対応を行っているサイトでは、正当な問い合わせまで拒否してしまうリスクがあります。ひらがなチェックは、日本語専用の問い合わせ窓口に限定して使うのが適切です。
Google reCAPTCHAを使ったContact Form 7のスパム対策手順
reCAPTCHAの設定は、Google側でのキー取得とWordPress側での設定の2つのステップに分かれます。順番に進めてください。
Google reCAPTCHAのキーを取得する
- Googleアカウントにログインした状態で、Google reCAPTCHAの管理画面(https://www.google.com/recaptcha/admin)にアクセスします。
- 「+」ボタンをクリックして新しいサイトを登録します。
- 「ラベル」に管理しやすい名前(サイト名など)を入力します。
- 「reCAPTCHAのタイプ」で「reCAPTCHA v3」を選択します。
- 「ドメイン」にWordPressサイトのドメイン(例:example.com)を入力して追加します。
- 利用規約に同意し、「送信」をクリックします。
- 表示された「サイトキー」と「シークレットキー」をメモします。この2つのキーは次のステップで使います。
Contact Form 7にreCAPTCHAを設定する
- WordPressの管理画面にログインします。
- 左側のメニューから「お問い合わせ」→「インテグレーション」をクリックします。
- 「reCAPTCHA」の項目を探し、「インテグレーションのセットアップ」をクリックします。
- 先ほど取得した「サイトキー」と「シークレットキー」をそれぞれの入力欄に貼り付けます。
- 「変更を保存」をクリックします。
保存後、フォームのあるページを開いて実際に送信テストを行い、フォームが正常に動作するか確認してください。reCAPTCHA v3の場合、画面上には小さなバッジが表示されますが、利用者が操作する必要はありません。
なお、reCAPTCHAの設定後はContact Form 7のフォームタグを手動で変更する必要はありません。インテグレーションを有効にするだけで、管理しているすべてのフォームに適用されます。
Akismetを使ったContact Form 7のスパム対策手順
Akismetを使うには、プラグインの有効化とAPIキーの取得が必要です。商用サイトの場合は有料プランへの登録が求められますので、事前に確認してください。
Akismetを有効化してAPIキーを取得する
- WordPress管理画面の「プラグイン」→「インストール済みプラグイン」を開きます。
- 「Akismet Anti-Spam」が表示されていれば「有効化」をクリックします。表示されていない場合は「新規追加」からインストールします。
- 有効化後、「Akismetの設定」をクリックします。
- 「APIキーを取得」から WordPress.com のアカウント登録またはログインを行います。
- プランを選択します(個人・非商用サイトであれば無料プランを選択できます)。
- 取得したAPIキーをAkismetの設定画面に入力して保存します。
Contact Form 7のフォームとAkismetを連携する
AkismetがContact Form 7の送信内容を正確に判定するには、フォームタグに判定対象のフィールドを指定する必要があります。具体的には、フォームエディタでテキストフィールドや(メール)フィールドに専用の属性(akismet:author、akismet:author_email、akismet:author_urlなど)を追加します。
この設定方法はContact Form 7のバージョンやAkismetのバージョンによって異なる場合があります。Contact Form 7の公式ドキュメントやAkismetの解説ページを参照しながら設定することをおすすめします。設定後は必ずテスト送信を行い、正常に動作しているか確認してください。
スパムが止まらない場合に追加したい対策
reCAPTCHAやAkismetを導入してもスパムが続く場合は、スパムの種類を見極めて対策を追加する必要があります。どのようなスパムが多いかによって、有効な対策が異なります。
| スパムの特徴 | 追加で有効な対策 | 注意点 |
|---|---|---|
| URLが含まれる | URL付き送信の制限 | URLを含む正規の問い合わせを弾く可能性あり |
| 英語・外国語が多い | ひらがなチェック | 外国語対応サイトには不向き |
| 同じ内容の大量送信 | セキュリティプラグイン・サーバー側の制限 | 正規ユーザーへの影響がないか確認が必要 |
| 特定のキーワードが繰り返される | 禁止ワードの設定 | 定期的な見直しが必要 |
URL付きスパムが多い場合
本文中にURLが含まれる問い合わせが多い場合、URLを含む送信を制限するカスタマイズが有効です。Contact Form 7の設定ファイルやfunctions.phpを使って、URLパターンを含む送信をエラーとして返す方法があります。
ただし、正規の問い合わせでもURLを含むケースはあります。たとえば、「当社サイトのこのページについて相談したい」という内容でURLを貼り付けてくるユーザーや、制作依頼の参考として他のサイトのURLを添付するユーザーがいます。業種によってはURL制限が問い合わせの障壁になることもあるため、フォームの用途と照らし合わせて判断してください。
英語・外国語のスパムが多い場合
日本語サイト向けのスパム対策として、送信内容にひらがなが含まれていない場合は送信を拒否する方法があります。日本語での問い合わせであれば、ほぼ必ずひらがなが含まれるため、ひらがなを含まない送信を外国語スパムとして除外できます。
この方法はContact Form 7のカスタムバリデーション機能や、対応プラグインを使って実装します。日本語専用の問い合わせ窓口であれば効果的ですが、英語対応のサービスを提供しているサイト、外国人のお客様からの問い合わせが想定されるサイトでは使用を避けるか、フォームを用途別に分けて適用範囲を限定することをおすすめします。
ボットによる大量送信が多い場合
reCAPTCHAを導入してもボット送信が続く場合は、複数の対策を組み合わせる必要があります。セキュリティプラグイン(Wordfenceなど)を導入してボットのアクセス自体を制限する方法や、サーバー側でIPアドレスをブロックする方法が考えられます。
また、フォームのURLを変更したり、フォームへのアクセスに制限をかけたりする方法も場合によっては有効です。ただし、こうした設定はサーバーやWordPressの管理に一定の知識が必要なため、不安な場合はサイト運用を担当している制作会社やエンジニアに相談することをおすすめします。フォームだけでなく、WordPress全体のセキュリティを意識した運用が根本的な対策につながります。
Contact Form 7のスパム対策で注意したいこと
スパム対策を強化する際に気をつけたいのは、対策が強すぎると正規の問い合わせまで届かなくなる可能性があることです。設定ミスや過剰な制限によって、本当に連絡を取りたいお客様がフォームを送信できなくなるケースがあります。
以下の点を確認しながら設定を進めてください。
- reCAPTCHAのサイトキーとシークレットキーが正しく入力されているか
- reCAPTCHAの設定後に実際のフォームでテスト送信を行ったか
- URL制限を設定した場合、URLを含む正当な問い合わせが届かなくなっていないか
- ひらがなチェックを導入した場合、対象ユーザーに外国語対応が含まれていないか
- Contact Form 7・Akismet・WordPress本体が最新バージョンになっているか
- スパム対策後もしばらく受信状況を監視して、問い合わせが届いているか確認しているか
また、スパム対策のプラグインや設定を複数入れすぎると、互いに干渉して動作が不安定になることがあります。導入した対策が増えたときは、テスト送信を繰り返して問題がないか確認する習慣をつけておくとよいでしょう。
reCAPTCHAはGoogleのサービスのため、Googleのポリシー変更や仕様変更が動作に影響することがあります。スパムの状況やプラグインの更新情報を定期的に確認し、必要に応じて設定を見直すことが安定した運用につながります。
Contact Form 7のスパム対策を導入した後に確認すること
スパム対策の設定が完了したら、必ずテスト送信を行ってください。設定した内容が正しく機能しているかを確認するためには、実際にフォームから送信してみることが最も確実です。
テスト送信で確認すべき内容は以下のとおりです。
- フォームの送信ボタンが押せるか、エラーメッセージが表示されずに送信完了画面に進めるか
- 管理者宛に問い合わせメールが届いているか
- 自動返信メールを設定している場合、送信者のメールアドレス宛に返信が届いているか
- reCAPTCHAのバッジがページ上に表示されているか(reCAPTCHA v3の場合)
- スパム判定で正規の送信がブロックされていないか
テスト送信で問題がなければ、しばらく実際の受信状況を観察します。スパムが減ったか、正規の問い合わせは届いているかを確認し、問題があれば設定を調整します。スパム対策は「設定して終わり」ではなく、定期的な確認と見直しが必要です。特に新しいスパムの手口が広まった場合は、既存の対策だけでは対応できないこともあるため、適宜追加対策を検討してください。
まとめ
Contact Form 7のスパム対策は、1つの方法だけで完全に解決できるものではありません。reCAPTCHA、Akismet、チェックボックス、URL制限、ひらがなチェックなど、複数の対策を自サイトの状況に合わせて組み合わせることが重要です。
WordPressを使い始めたばかりの方は、まずreCAPTCHAの導入とAkismetの有効化から始めることをおすすめします。この2つだけでも、多くのボット送信や自動スパムを減らすことができます。そのうえで、URLを含むスパムや外国語スパムが多い場合は、状況に応じてさらなる対策を追加してください。
なお、もしそういった迷惑メールやスパムメールの設定が面倒だという方は、ずっと無料で使える迷惑メール防止専用プラグインの「迷惑メールブロッカーPro」もぜひお試しください。


