Guide

問い合わせフォームのスパムを減らす

スパムの典型パターンと、項目設計・確認画面・サーバー側でできる対策を整理します。

先に結論

お問い合わせフォームのスパムは、「項目を増やす」「確認画面を置く」「サーバー側で機械っぽい送信を弾く」の組み合わせでかなり減らせます。 完全にゼロにはできませんが、本物の問い合わせが埋もれない状態には近づけます。

108.works のお問い合わせフォーム生成(Former)は、項目選択から PHP を作る無料ツールです。設置先のサーバーで動く前提で、下の対策を意識して設計すると効果が出やすいです。

よく来るスパムの型

現場でよく見るパターンです。どれか当てはまったら、対策を足すタイミングです。

  • 英語の宣伝・リンクだらけ … 本文に URL が並ぶ、または「SEO」「backlink」などの定型文
  • 名前とメールだけ埋めて本文が空 … 必須項目が甘く、機械が最短で送っている
  • 同じ文言が短時間に何度も来る … 連投。レート制限やトークンがないと止まりにくい
  • 全角・絵文字だけの意味不明な本文 … フィルター回避用のノイズ送信

「迷惑フォルダに入れる」だけでは、たまに来る本物の問い合わせも一緒に埋もれます。送信そのものを減らす方が先です。

フォーム設計でできること

1. 必須項目を適切に置く

名前・メール・本文の3点は、問い合わせ用途なら必須にしてよいことが多いです。項目が少なすぎると機械に優しいフォームになります。 逆に、電話番号を無理に必須にすると、本当に相談したい人が送れなくなるので、用途に合わせてください。

2. 確認画面を挟む

入力 → 確認 → 送信、の2段階にすると、単純なボットは通過しにくくなります。人間にとっても誤送信が減ります。 Former で確認画面ありの構成を選べる場合は、スパム対策としても有効です。

3. 「今すぐ営業したい人」向けの項目を増やしすぎない

URL 入力欄、会社名、予算など、営業スパムが埋めやすい欄が増えるほど、宣伝投稿の的になります。本当に必要な項目だけ残します。

4. プレースホルダだけで説明しない

ラベルと短い説明文があると、利用者は迷いにくく、機械的な空欄送信も減ります。「なんでも書いて」より「サイトのURLが分かれば書いてください」の方が、内容の質も上がります。

サーバー側で効きやすい対策

  • CSRF トークン/セッション … フォームを開いてから送る流れを強制する。直接 POST だけの攻撃を弱められる
  • ハニーポット(見えない欄) … 人間には見えない入力欄に値が入ったら拒否。古典的だが、まだ効くことが多い
  • 送信間隔の制限 … 同じ IP から数秒おきの連投を弾く
  • 本文の簡易ルール … URL が多すぎる、特定キーワードだらけ、極端に短い/長い、などを拒否または保留

これらは設置先の PHP やサーバー設定の話です。フォーム生成ツールが吐いたコードをそのまま置くだけだと足りない場合は、 フォーム設置代行調査・相談で現状確認もできます。

届いたあとで切り分ける

送信を減らす対策と並行して、受信側のルールも整えると楽です。ただし「怪しいものは全部捨てる」は本物も消えます。

  • 件名にサイト名や「お問い合わせ」を固定する … メールクライアントのフィルタで拾いやすくなる
  • 本文の先頭に「どのページから送られたか」を入れる … 営業スパムと本物の切り分けが速い
  • 迷惑フォルダだけを見ない … 週に一度、受信箱以外もざっと見る運用にする

WordPress のプラグインフォームや外部サービス(Google フォームなど)に切り替える選択もあります。 既存サイトのデザインに合わせたい・サーバー上で完結させたい場合は、Former のような自前 PHP の方が向くことが多いです。

やってはいけないこと・やりすぎ注意

  • CAPTCHA を最初から必須にする(利用者を減らすことがある。スパムが酷いときから段階的に)
  • メールアドレスの「形式チェック」だけで安心する(スパムも正しい形式で来る)
  • 受信を全部捨てるフィルタ(本物も消える)
  • 個人情報を余計に取る(預かりが増えるだけで、スパム対策にはならない)
  • 「スパム対策済み」とサイト上で大げさに宣伝する(効果の保証にはならない)

自分で試す順番

  1. いまのフォームを眺める 必須項目・確認画面・変な入力欄の有無を確認
  2. 必要なら作り直す Former で項目を選び、確認ありの構成を検討
  3. 設置後に自分で送ってみる 届くか、件名・本文が読みやすいかを確認
  4. まだ多いならサーバー側を足す ハニーポットや連投制限。難しければ相談

設置先が PHP を置けない(STUDIO、Wix、GitHub Pages など)場合は、別のフォーム手段が必要です。 どれが使えるかはFAQの設置条件も参照してください。

フォーム生成を開く

登録不要。欲しい項目を選んで、サイトに載せられる PHP を受け取れます。