WordPressのお問い合わせフォームを公開していると、英語の営業メールや不審なURLを含むメッセージが届くことがあります。件数が増えると確認に時間がかかり、本来対応すべき問い合わせを見落とす原因にもなります。
ただし、最初から複数の対策プラグインを入れる必要はありません。フォームの種類とスパムの傾向を確認し、利用者の負担が少ない方法から段階的に追加するのが基本です。
この記事では、WordPressのお問い合わせフォームに届くスパムを減らす方法を、7つの手順に分けて解説します。
1.どのフォームから届いているか確認する
最初に、迷惑メールが本当にWordPressのお問い合わせフォームから送られているかを確認します。
メール本文やヘッダー、フォームの通知設定を見て、次の項目を整理します。
- 送信元になっているフォーム
- 届き始めた時期
- 一日に届く件数
- 本文の言語や共通する文言
- URLの有無
- 同じ送信元が繰り返されているか
サイト内に問い合わせ、資料請求、採用など複数のフォームがある場合は、通知メールの件名へフォーム名を入れておくと判別しやすくなります。
送信元が分からないまま対策すると、別のフォームだけを保護してしまうことがあります。まず対象を一つに絞ります。
2.WordPressとフォームプラグインを更新する
WordPress本体、テーマ、フォームプラグインが古い場合は、バックアップを取ったうえで更新します。
更新前には次を確認します。
- WordPress本体のバージョン
- 使用中のフォームプラグイン
- PHPの対応バージョン
- バックアップから復元できる状態か
- 更新後に送信テストができるか
スパム対策機能が追加・改善されていても、古いバージョンのままでは利用できない場合があります。対策プラグインを増やす前に、現在の構成を正常な状態へ戻すことが先です。
更新後は、自分のメールアドレスからテスト送信し、管理者側へ通知が届くことと、送信完了画面が表示されることを確認します。
3.フォーム標準のスパム対策を確認する
問い合わせフォームによって、利用できる対策は異なります。まずは現在使用しているプラグインの公式ドキュメントを確認します。
代表的な方法には次があります。
- スパム判定サービスとの連携
- CAPTCHAやボット判定
- Honeypotと呼ばれる非表示項目
- 禁止語やURL数による判定
- 一定時間内の連続送信を制限する機能
たとえばContact Form 7は、AkismetやreCAPTCHAなどのスパム対策と連携できます。ただし、連携サービスを有効にしただけでなく、フォーム側の設定が必要になる場合があります。
非公式の追加プラグインを選ぶときは、最終更新日、対応しているWordPressのバージョン、利用者数、サポート状況も確認します。
4.利用者の操作が少ない対策から試す
最初は、正規の利用者へ負担をかけにくい方法から試します。
Honeypotは、人には見えない入力欄をフォームへ追加し、すべての項目を機械的に埋めるボットを判別する方法です。画像選択や文字入力を求めないため、問い合わせの操作を増やしにくい利点があります。
一方で、高度なボットには回避される可能性があります。そのため、Honeypotだけで止まらない場合は、スパム判定サービスやCAPTCHAを追加します。
一度に複数の方法を入れると、どの対策が効いたか分からなくなります。まず一つ追加し、数日間の件数と正常な送信への影響を確認します。
5.Akismetなどのスパム判定を利用する
Akismetは、送信された内容を分析してスパムを判定するサービスです。対応しているフォームプラグインと連携すれば、利用者へパズルなどを求めず、バックグラウンドで判定できます。
Contact Form 7で利用する場合は、氏名、メールアドレス、URLなどのフォーム項目へ、Akismetが判定に使うためのオプションを設定します。単にAkismetを有効化しただけでは、フォーム項目の情報を十分に渡せない場合があるため、公式の設定方法を確認します。
また、料金や利用条件はサイトの用途によって異なります。個人サイトか商用サイトかを確認し、現在の公式プランに合う形で利用します。
誤判定の可能性はゼロではありません。導入直後はスパム判定された内容を確認し、正常な問い合わせが除外されていないか見ておきます。
6.CAPTCHAやTurnstileを追加する
Honeypotや内容判定だけで件数が減らない場合は、CAPTCHA系の対策を検討します。
選ぶときは、次の点を確認します。
- 使用中のフォームに正式対応しているか
- 利用者に画像選択や文字入力を求めるか
- モバイルでも操作しやすいか
- プライバシーポリシーへの追記が必要か
- 正常な送信を誤って止めていないか
Cloudflare Turnstileのように、利用者へ明示的な操作を求めないことを重視した仕組みもあります。ただし、WordPressへ追加した表示だけで判断せず、サーバー側で検証が正しく行われる対応方法を選ぶ必要があります。
設定後は、ログイン中の管理者だけでなく、シークレットウィンドウとスマートフォンでも送信テストを行います。
7.受信後の確認方法も整える
スパムを完全にゼロにしようとすると、正規の問い合わせまで止める可能性があります。そのため、受信後に見落とさない仕組みも必要です。
- 通知メールの件名へサイト名とフォーム名を入れる
- 返信先アドレスをフォーム入力者のアドレスへ設定する
- 管理用メールと一般メールを分ける
- フォーム送信内容を一定期間保存する
- 迷惑メールフォルダを定期的に確認する
- 添付ファイルの種類と容量を制限する
Contact Form 7は、送信内容をWordPress内へ保存する機能を標準では持ちません。必要な場合は同じ開発元のFlamingoなどを検討できます。ただし、個人情報を保存することになるため、保存期間、閲覧権限、削除方法も決めておきます。
メールが届かない問題は、スパム対策ではなく送信設定やメール認証が原因の場合もあります。対策後は必ず正常な問い合わせの送受信を確認します。
おすすめの導入順
スパム対策は、次の順で一段ずつ進めると原因を切り分けやすくなります。
- WordPressとフォームプラグインを更新する
- 送信元のフォームを特定する
- フォーム標準の対策を有効にする
- Honeypotまたはスパム判定を追加する
- 改善しなければCAPTCHA系を追加する
- PCとスマートフォンで正常送信を確認する
- 数日後にスパム件数と誤判定を見直す
プラグインを増やしすぎると、設定の競合や表示速度への影響が起きることもあります。追加後は、WordPressが遅いときの改善方法で紹介している確認方法も使い、フォーム以外の表示へ影響していないか確認します。
まとめ
WordPressのお問い合わせスパムは、対策を一つ追加すれば必ず解決するものではありません。まず送信元と傾向を確認し、利用者の負担が少ない方法から段階的に追加します。
重要なのは、スパム件数を減らすことだけでなく、正常な問い合わせを止めないことです。設定変更のたびにテスト送信し、数日後に結果を見直すところまでを一つの作業として進めます。
参考資料
- Contact Form 7「Spam filtering with Akismet」
https://contactform7.com/spam-filtering-with-akismet/ - Contact Form 7「reCAPTCHA (v3)」
https://contactform7.com/recaptcha/ - Akismet「Use Akismet with your contact forms」
https://akismet.com/support/getting-started/using-akismet-with-your-contact-forms/ - Cloudflare Docs「Validate the token」
https://developers.cloudflare.com/turnstile/get-started/server-side-validation/
確認日:2026年9月16日