問い合わせフォームを設置すると、遅かれ早かれ「本来の問い合わせではない送信」が届き始めます。海外からの機械的なスパム、日本語で丁寧に書かれた営業提案、リンクだけが貼られた不審なメッセージ。毎朝フォームの通知を開いては閉じる数分が、積み重なって大きな時間になっている事業者は少なくありません。
この記事では、フォームスパムの実態を「送信者が誰か」で整理したうえで、代表的な5つの対策手法の効果と限界、そして現実的な組み合わせ方を解説します。
フォームスパムは2種類ある — botと人間
対策を考える前に、まず届いているスパムがどちらのタイプかを見分けることが重要です。同じ「迷惑な送信」でも、送り主がbotか人間かで有効な対策がまったく異なるためです。
bot(自動プログラム)によるスパム
プログラムがフォームを見つけて機械的に送信するタイプです。特徴は次のとおりです。
- 英語や不自然な日本語で、リンクやSEO業者の宣伝文が貼られている
- 同じ内容が短期間に何度も届く
- ページを開いてから送信までの時間が数秒と極端に短い
botは「フォームを見つけたら埋めて送る」を無差別に繰り返しているだけなので、機械であることを検知する仕組み(bot検証やハニーポット)で大部分を止められます。特にWordPressのContact Form 7など普及率の高いCMSのフォームプラグインは構造が広く知られているため標的になりやすく、詳しくはWordPressの問い合わせフォームにスパムが集まる理由と対策で解説しています。
人力のフォーム営業
もうひとつが、人間が手作業(または半自動のツール)で送ってくる営業目的の送信、いわゆるフォーム営業です。「お問い合わせフォームより失礼いたします」で始まる、SEO対策・広告運用・人材紹介・システム開発などの提案文がこれにあたります。
こちらは正規のフォームを人間が操作して送信するため、bot検知の仕組みでは原理的に防げません。reCAPTCHAを導入しても素通りするのはこのためです。フォーム営業の実態と対策はフォーム営業への対策を解説した記事で詳しく扱っています。
対策1: reCAPTCHAなどのbot検証
GoogleのreCAPTCHAに代表される、送信者がbotでないかを検証する仕組みです。画像選択やチェックボックス(v2)、行動スコアによる無人判定(v3)などの方式があります。
- 効果: 機械的なbot送信の多くを遮断できる
- 限界: 人力のフォーム営業には無力。設定次第では正規ユーザーの離脱も招く
導入は比較的容易で、bot対策としては定番です。ただし後述のとおり万能ではありません。詳しくはreCAPTCHAだけではスパムを防げない理由を参照してください。
対策2: ハニーポット
人間には見えない入力欄をフォームに仕込んでおき、そこに値が入っていたらbotと判定する古典的な手法です。botはHTML上のフィールドを機械的にすべて埋めようとする性質を逆手に取ります。
- 効果: 単純なbotに有効。ユーザー体験をまったく損なわない
- 限界: ハニーポットを回避する洗練されたbotや、人力送信には効かない
送信までの経過時間をチェックする手法(ページを開いて数秒で送信されたらbotとみなす)と組み合わせると精度が上がります。ユーザーに負担をかけない「静かなbot対策」として、最初に入れておきたい仕組みです。実装方法とアクセシビリティ上の注意点はハニーポットの仕組みと実装の注意点で詳しく解説しています。
対策3: 確認画面・二重チェック
送信前に確認画面を挟む、メールアドレスの確認入力を求めるなど、送信の手数を増やす方法です。
- 効果: 手数が増えるぶん、雑なbotや大量送信の効率を下げられる
- 限界: 正規ユーザーの離脱率も確実に上がる。人力営業はためらわず突破する
スパム対策としての効果は限定的で、コンバージョン率とのトレードオフが大きい点に注意が必要です。問い合わせ数を増やしたいサイトでは、確認画面の追加は慎重に判断すべきです。
対策4: 営業お断り文言
「営業目的のご連絡はお断りしております」とフォーム付近に明記する方法です。
- 効果: 一部の良識的な送信者には抑止になる。断りを明記したうえで送られた営業に対して、毅然と対応する根拠になる
- 限界: 大半のフォーム営業は文言を読まずに(あるいは読んでも)送信してくる
実務上、お断り文言だけでフォーム営業が止まることはまずありません。ただし方針を明示すること自体には意味があるため、他の対策と併用する前提で書いておく価値はあります。文言の具体例はお断り文言の例文集と書き方にまとめています。
対策5: AIによる内容判定
ここまでの4つが「送信させない」対策だったのに対し、発想を変えて**「送信は受け付けたうえで、内容をAIが読んで仕分ける」**アプローチです。
届いた送信の本文をAI(大規模言語モデル)が読み、「商談につながる問い合わせか」「サポート依頼か」「営業・スパムか」を人間が読むのと同じように文脈で判定します。
- 効果: bot検知では原理的に防げない人力のフォーム営業に対する、現状もっとも実効性のある対策。重要な問い合わせだけを通知させれば、確認の手間がゼロになる
- 限界: 判定は確率的なので、まれに誤判定はありうる。誤って弾いた送信を後から確認できる仕組み(全件保管の受信箱など)とセットで使うのが前提
AIによる仕分けの考え方は問い合わせ対応をAIで効率化する方法で詳しく解説しています。
5つの手法の比較表
| 手法 | botへの効果 | 人力フォーム営業への効果 | ユーザー体験への影響 |
|---|---|---|---|
| reCAPTCHA等のbot検証 | 高い | なし | 方式によっては離脱要因 |
| ハニーポット+時間チェック | 中〜高 | なし | なし |
| 確認画面・二重チェック | 低〜中 | ほぼなし | 離脱率が上がる |
| 営業お断り文言 | なし | 低い | なし |
| AIによる内容判定 | 高い(内容で判別) | 高い | なし |
現実的な組み合わせ方
すべてを導入する必要はありません。実務では次の二段構えが効率的です。
- 前段(送信前): ハニーポット+送信時間チェックで、単純なbotを静かに弾く。ユーザー体験を損なわないため副作用がない
- 後段(送信後): 通過した送信をAIが内容で判定し、重要なものだけを通知する。botの残党も人力営業も、ここで内容ベースで仕分けられる
この構成なら、正規の問い合わせには一切ハードルを課さずに、確認の手間だけを取り除けます。「スパムを完全にゼロにする」のではなく、**「スパムがあなたの時間を奪わない状態にする」**ことをゴールに置くのが現実的です。
なおフォームをこれから設置する段階であれば、問い合わせフォームの設置方法の比較記事で、スパム対策を最初から組み込んだ設置パターンを解説しています。
まとめ
- フォームスパムは「bot」と「人力のフォーム営業」の2種類。対策はそれぞれ異なる
- reCAPTCHAやハニーポットはbotには有効だが、人力のフォーム営業は素通りする
- 確認画面やお断り文言は、効果とコンバージョン低下のトレードオフに注意
- 人力営業まで含めて対処できるのは、内容そのものを読んで判定するAI型の対策
- 「ハニーポットで事前に弾き、AIで内容を仕分ける」二段構えが実務的な最適解