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

Contact Form 7を使っていると、英語の営業メールやURL付きのスパム、あるいはボットによる大量送信が届いて困った経験はないでしょうか。フォームを公開しているだけで、国内外から自動的に迷惑な問い合わせが届くようになるケースは珍しくありません。
放置しておくと、本当に必要なお客様からの問い合わせをスパムと見誤って見落とすリスクが生じます。また、メールボックスが混雑して管理が煩雑になるだけでなく、フォームが悪用されてセキュリティ上のリスクにつながる場合もあります。
Contact Form 7のスパム対策には、Google reCAPTCHA・Akismet・チェックボックスの承諾確認・URL拒否・ひらがなチェックなど、複数の方法があります。完全にゼロにすることは難しいですが、状況に合わせて組み合わせることで大幅に減らすことができます。
この記事では、スパム対策が必要な理由から、各対策の特徴と設定手順、スパムが止まらない場合の追加策、導入後の確認方法までをまとめています。WordPress初心者の方でも参考にしながら設定できるよう、手順を具体的に説明します。
Contact Form 7でスパム対策が必要な理由
Contact Form 7は日本国内でも広く使われているWordPress用の問い合わせフォームプラグインです。利用者が多く、設置方法も広く知られているため、残念ながらスパム送信の対象にもなりやすい環境にあります。
問い合わせフォームは、サイトを訪れた人が名前・メールアドレス・本文を入力して送信できる仕組みです。この「外部から自由に送信できる」という性質が、悪意のある第三者やボットに利用されやすい理由になっています。
Contact Form 7でスパムが届く主な原因は次のとおりです。
- ボットによる自動送信:プログラムが自動的にフォームを見つけて大量送信します。人間が操作しているわけではなく、サイトを問わず無差別に行われます。
- 営業・広告目的の手動スパム:SEO業者や広告業者などが手動でフォームに営業文を送るケースです。英語や中国語で届くことが多く、URLが本文に含まれていることが特徴です。
- フィッシング・攻撃目的の悪用:フォームを経由してフィッシングサイトへ誘導したり、サーバーやCMSの脆弱性を探るための情報を送ってくる場合もあります。
スパムを放置すると、次のような問題が起こりやすくなります。
- 本物の問い合わせをスパムと見誤って見落とす
- メールボックスが圧迫されて管理が難しくなる
- 大量送信によってサーバーに負荷がかかる場合がある
- フォームが悪用されることでサイト全体のセキュリティに影響が出る可能性がある
Contact Form 7はデフォルトの状態ではスパム対策機能がほとんど搭載されていないため、プラグインや設定の追加によって自分でスパム対策を行う必要があります。WordPressやContact Form 7本体を最新の状態に保つことも、セキュリティ上の基本として重要です。
Contact Form 7でできる主なスパム対策
スパム対策にはいくつかの方法があり、それぞれ効果が出やすいケースや導入の難易度が異なります。まず全体像を把握してから、自分のサイトに合った方法を選ぶとよいでしょう。
| 対策方法 | 主な効果 | 難易度 | 向いているケース |
|---|---|---|---|
| Google reCAPTCHA | ボット送信の自動判定・ブロック | 普通 | まずスパムを減らしたい場合の基本対策 |
| Akismet | 送信内容のスパム判定 | 普通 | reCAPTCHAと組み合わせて精度を高めたい場合 |
| チェックボックス・承諾確認 | 機械的な送信の一部を抑制 | 低い | 初心者が最初に試せる簡単な補助対策 |
| URL付き問い合わせの制限 | URLを含む営業・フィッシングスパムを抑制 | 普通〜高い | URL付きスパムが特に多い場合 |
| ひらがなチェック | 外国語スパムを制限 | 普通〜高い | 日本語のみの問い合わせを受けるサイト向け |
| WordPressとプラグインの更新 | 脆弱性対策・フォーム悪用リスクの低減 | 低い | すべてのサイトで必須の基本対策 |
以下では、各対策の概要をまとめます。詳しい設定手順は後半のセクションで説明します。
Google reCAPTCHAを導入する
Google reCAPTCHAは、アクセスが人間によるものかボットによるものかを自動で判定する仕組みです。Googleが提供しており、フォームへの自動送信を大幅に減らす効果が期待できます。
Contact Form 7では、WordPressの管理画面から「インテグレーション」メニューを開き、GoogleのreCAPTCHAサービスで取得したサイトキーとシークレットキーを入力するだけで有効になります。
reCAPTCHAにはv2とv3の2種類があります。v2は「私はロボットではありません」のチェックを表示するタイプ、v3はユーザーの操作を分析してスコアで判定するタイプです。Contact Form 7の最新バージョンではv3(スコアベース)に対応しており、フォームの使い勝手を妨げずに判定できます。詳しい設定手順は後半のセクションで説明します。
Akismetでスパム判定を行う
AkismetはWordPressに最初からインストールされているプラグインで、コメントや問い合わせの内容をスパム判定するための仕組みです。送信者の名前・メールアドレス・本文などをもとに、既知のスパムパターンと照合して判断します。
Contact Form 7のフォームタグに専用の属性を付けることで、Akismetの判定と連携できます。利用にはWordPress.comのアカウントとAPIキーの取得が必要です。個人・非商用サイトは無料で使えますが、商用サイトは有料プランが必要になる場合があります。
reCAPTCHAがボットによる送信を防ぐのに対して、Akismetは送信内容そのものを判定するため、手動スパムにも一定の効果があります。両方を併用することでより高い精度が期待できます。
チェックボックスや承諾確認を追加する
フォームに「個人情報の取り扱いに同意する」などのチェックボックスや承諾確認の項目を追加することで、単純なボット送信の一部を抑制できます。チェックが入っていないと送信できない設定にすることで、機械的な送信のハードルを上げる効果があります。
reCAPTCHAやAkismetと比べると単体での効果は限定的ですが、Contact Form 7の標準機能で追加でき、設定も簡単なため初心者でも取り組みやすい対策です。プライバシーポリシーへの同意チェックを設置する場合は、個人情報保護の観点からも有用です。
URL付きの問い合わせを制限する
営業メールやフィッシング目的のスパムには、本文中にURLが含まれているケースが非常に多いです。このようなスパムが多い場合、URLを含む問い合わせを拒否・制限する設定が有効です。
Contact Form 7では、フォームタグのオプションで入力値のバリデーション設定を行うか、functions.phpへのコード追加、またはWPForms Liteなどの補助プラグインを使う方法があります。ただし、サービス業や技術系サイトではURLを含む正当な問い合わせも多いため、業種や問い合わせの性質に合わせて使い分けることが重要です。URLを送る可能性があるユーザー向けにはフォームに注意書きを入れるなど、誤拒否を防ぐ工夫も必要です。
ひらがなチェックで外国語スパムを減らす
外国語(主に英語・中国語など)のスパムが多い場合、本文にひらがなが含まれていない送信を制限する方法が効果的です。日本語の問い合わせであれば、ほぼ必ずひらがなが含まれるという前提を利用した対策です。
具体的には、フォームの本文欄に正規表現によるバリデーションを設定し、ひらがなが一文字も含まれない送信をエラーとして返す設定を行います。Contact Form 7では「バリデーションフィルタ」の仕組みを使って実装します(functions.phpへのコード追加が必要になる場合があります)。
日本語のみの問い合わせを受けるサイトには有効ですが、海外のお客様や英語での問い合わせも受けるサイトでは使いにくい点に注意が必要です。サイトの対象ユーザーに合わせて使い分けてください。
Google reCAPTCHAを使ったContact Form 7のスパム対策手順
reCAPTCHAの設定は、大きく「Googleでキーを取得する」「WordPressで設定する」という2段階で行います。以下の手順を参考に進めてください。
- Google reCAPTCHAの管理ページにアクセスする
Googleアカウントでログインした状態で「Google reCAPTCHA」を検索し、公式の管理ページ(https://www.google.com/recaptcha/admin)を開きます。 - 新しいサイトを登録する
「+」ボタンまたは「サイトを作成」をクリックします。「ラベル」にサイト名などを入力し、reCAPTCHAの種類として「スコアベース(v3)」を選択します(Contact Form 7との互換性が高いためv3を推奨します)。 - ドメインを登録する
「ドメイン」欄に自分のサイトのドメイン(例:example.com)を入力して追加します。「www」あり・なしの両方が必要な場合はそれぞれ追加してください。 - 利用規約に同意して送信する
利用規約を確認し、同意にチェックを入れて「送信」をクリックします。 - サイトキーとシークレットキーをコピーする
登録が完了すると、「サイトキー」と「シークレットキー」が表示されます。どちらもコピーしてメモ帳などに一時保存しておきます。 - WordPress管理画面のContact Form 7設定を開く
WordPress管理画面のサイドバーから「お問い合わせ」→「インテグレーション」を選択します。 - reCAPTCHAのキーを入力する
「reCAPTCHA」の項目を探し、「サイトキー」と「シークレットキー」それぞれの欄に先ほどコピーした値を貼り付けます。 - 変更を保存する
「変更を保存」または「インテグレーション設定を保存」ボタンをクリックして完了です。 - テスト送信で動作確認する
フォームが設置されているページを実際に開き、テスト用の内容を入力して送信します。エラーが出ずに正常に送信できるか、管理者宛のメールが届くかを確認してください。
設定後、フォームの右下にreCAPTCHAのバッジ(小さなアイコン)が表示されるようになります。表示が確認できれば、reCAPTCHAが有効になっています。
Akismetを使ったContact Form 7のスパム対策手順
AkismetはWordPressにデフォルトでインストールされていますが、有効化とAPIキーの取得が必要です。以下の手順で設定を進めてください。
- Akismetを有効化する
WordPress管理画面の「プラグイン」→「インストール済みプラグイン」を開き、「Akismet Anti-spam」を探して「有効化」をクリックします。 - APIキーを取得する
有効化後、「Akismetアカウントを設定」のリンクが表示されます。クリックするとWordPress.comのサイトに移動します。アカウントを作成またはログインし、利用プランを選択してAPIキーを取得します(個人・非商用サイトは無料プランが利用可能です)。 - APIキーを入力する
WordPress管理画面に戻り、「Akismet」の設定画面でAPIキーを入力して保存します。 - Contact Form 7とAkismetを連携する
Contact Form 7のフォーム編集画面を開きます。名前・メールアドレス・本文などのフォームタグに、Akismetの判定に使う属性(akismet:author・akismet:author_email・akismet:author_urlなど)を付け加えることで、Akismetが送信内容を判定するようになります。Contact Form 7のバージョンや設定環境によって、連携の方法が異なる場合があります。 - テスト送信で動作確認する
設定後、フォームからテスト送信を行い、正常に届くかどうかを確認します。Akismetがスパムと判定した問い合わせは、WordPressの「コメント」欄のスパムフォルダに振り分けられる場合があります。
Akismetの精度はサービス側の学習データに依存するため、新しいスパムのパターンには追いつけない場合もあります。reCAPTCHAと組み合わせて使うことで、より高い効果が期待できます。
スパムが止まらない場合に追加したい対策
reCAPTCHAやAkismetを導入してもスパムが続く場合は、サイトの状況に応じて追加の対策を試してみましょう。状況別に有効な対策をまとめます。
| 状況 | 有効な追加対策 |
|---|---|
| URL付きスパムが多い | URLを含む本文の拒否設定、フォームへの注意書き追加 |
| 英語・外国語スパムが多い | ひらがなチェック(正規表現バリデーション) |
| ボットによる大量送信が多い | reCAPTCHAのスコア閾値調整、セキュリティプラグインの導入 |
| 特定のワードを含むスパムが多い | 禁止ワードの設定、Akismetのブラックリスト活用 |
| サーバー負荷が高い | サーバー側のIP制限・WAF(Webアプリケーションファイアウォール)の利用 |
URL付きスパムが多い場合
営業目的のスパムやフィッシング誘導を目的とした迷惑メールには、本文に「http://〜」や「https://〜」などのURLが含まれているケースが多くあります。このような特徴のあるスパムが多い場合は、URLを含む本文を拒否・警告対象にする設定が有効です。
Contact Form 7の設定では、フォームタグのバリデーション設定、またはfunctions.phpに独自のバリデーション処理を追加する方法があります。ただし、URLを添付した正当な問い合わせも存在します。たとえば、制作物のURLを送ってくるクライアントや、参考サイトのURLを伝えたいユーザーなどは、意図せずブロックされてしまいます。URL制限を設ける場合は、フォームに「URL付きのお問い合わせは別途メールにてお送りください」などの案内文を入れるとよいでしょう。
英語・外国語のスパムが多い場合
日本語のみのサービスを提供しているサイトで、英語・中国語・ロシア語などの外国語スパムが多い場合は、ひらがなチェックが有効です。送信された本文にひらがなが一文字も含まれていない場合にエラーを返す設定にすることで、外国語スパムの大部分をフィルタリングできます。
日本語の問い合わせにはほぼ必ずひらがなが含まれるため、誤拒否は起こりにくい対策です。ただし、英語や中国語でのお問い合わせを受け付けているサイト、または外国籍のお客様が多いサービスでは適用しないほうがよいでしょう。自社サイトの問い合わせ傾向を確認したうえで判断してください。
ボットによる大量送信が多い場合
特定のIPアドレスやプログラムから大量送信が届く場合は、reCAPTCHAだけでは対応しきれないことがあります。以下の補強対策を検討してください。
- reCAPTCHAのスコア閾値を調整する:v3の場合、スコアが低い(ボット判定が高い)送信をより厳しく制限する設定が可能です。
- セキュリティプラグインを導入する:Wordfenceなどのセキュリティプラグインを使うと、IPブロックや不正アクセスの検出が行えます。
- サーバー側でIP制限を行う:レンタルサーバーの管理画面やWAFを使って、特定のIPや国からのアクセスを制限できる場合があります。
- フォームのURLを変更する:特定のフォームURLを狙ったボット送信の場合、フォームのページURLを変えることで回避できる場合があります。
ボット送信対策はフォームだけでなく、WordPressサイト全体のセキュリティを強化する視点で取り組むことが重要です。WordPressとすべてのプラグインを最新バージョンに保つことも、セキュリティ対策の基本として忘れずに行いましょう。
Contact Form 7のスパム対策で注意したいこと
スパム対策を強化することは大切ですが、設定を強くしすぎると正規のお客様からの問い合わせまで届かなくなるリスクがあります。導入時には以下の注意点を確認しておきましょう。
- reCAPTCHAのキー設定ミスに注意する:サイトキーとシークレットキーを誤って入れ替えたり、取得したドメインと異なるサイトで使用したりすると、フォームが正常に動作しなくなります。設定後は必ずテスト送信で確認してください。
- URL制限の誤判定に注意する:URLを含む正当な問い合わせがブロックされてしまう場合があります。業種や問い合わせ内容に応じて慎重に判断し、フォームに案内文を入れるなど配慮が必要です。
- ひらがなチェックは使いどころを選ぶ:海外からの問い合わせも受けるサイトや、英語を使った正当な問い合わせが来るサービスでは向きません。適用する前に問い合わせの傾向を確認してください。
- プラグインの更新を怠らない:Contact Form 7やAkismetなどのプラグインは定期的に更新が行われます。古いバージョンを使い続けると、セキュリティ上の問題が生じる場合があります。WordPress管理画面から定期的にアップデートを確認してください。
- スパムが完全になくなるとは限らない:複数の対策を組み合わせてもスパムをゼロにすることは難しい場合があります。対策の効果を定期的に確認し、状況が変わったら設定を見直す姿勢が大切です。
- 自動返信メールの設定も確認する:スパム対策を変更した後、自動返信メールが正常に届くかどうかも必ず確認してください。フィルタが強すぎると、自動返信が迷惑メールフォルダに入る場合があります。
スパム対策は「導入して終わり」ではなく、定期的な見直しと調整が必要です。設定後も受信状況を観察して、必要であれば追加の対策を検討してください。
Contact Form 7のスパム対策を導入した後に確認すること
設定が完了したら、必ず動作確認を行いましょう。設定が正しく機能していないと、お客様の問い合わせが届かなかったり、スパムが素通りしてしまうことがあります。
以下のチェックリストを参考に、設定後の動作を確認してください。
- フォームのあるページを開き、テスト用の内容を入力して送信できるか
- 管理者宛のメール(通知メール)が正しく届くか
- 送信者(お客様役)への自動返信メールが届くか
- フォームにエラーが表示されず、送信後に完了メッセージが表示されるか
- reCAPTCHAのバッジがページに表示されているか(v3の場合)
- 迷惑メールフォルダに正常な問い合わせが振り分けられていないか
また、設定後しばらくは受信状況を定期的に確認することをおすすめします。スパムが以前より減ったかどうか、正常な問い合わせが届いているかどうかを見ながら、必要に応じて対策を追加・調整してください。
特にreCAPTCHAを導入した直後は、一部の環境でフォームのデザインや動作に影響が出る場合があります。スマートフォンからの送信も確認しておくと安心です。
まとめ
Contact Form 7のスパム対策は、1つの方法だけで完全に解決することは難しく、サイトの状況に合わせて複数の対策を組み合わせることが重要です。
初心者の方はまず、次の4点から始めるとよいでしょう。
- Google reCAPTCHAを設定してボット送信を判定する
- Akismetを有効化して送信内容のスパム判定を行う
- チェックボックス・承諾確認をフォームに追加する
- WordPressとプラグインのアップデートを定期的に行う
それでもスパムが続く場合は、URL付き問い合わせの制限やひらがなチェックなどの追加対策を状況に応じて組み合わせてください。完全にゼロにすることは難しいものの、適切な対策をとることでスパムを大幅に減らし、本来必要な問い合わせに集中できる環境を整えることができます。

