Blog

【2026年最新】お問い合わせフォームの迷惑メール対策設定まとめ(備忘録)

2026年09月10日

ホームページのお問い合わせフォームに毎回悩まされる「迷惑メール」。ボットからの自動スパムと、人間が手打ちで送ってくる営業メールでは、そもそも対策の方向性が違います。2026年時点でおすすめの設定を、備忘録としてまとめておきます。

結論から言うと、対策は大きく2段構えで考えるのが正解です。

  • ボット対策:Cloudflare Turnstile(reCAPTCHAより無料・軽量・公式推奨)
  • 人間が送る営業メール対策:Akismet+禁止ワード+同意チェックボックスの3段構え

なぜTurnstileを選ぶのか

これまで定番だったGoogleのreCAPTCHAは、提供形態がGoogle Cloudに統合され、一定以上のトラフィックがあると有料になるケースが出てきています。一方でCloudflareが提供するTurnstileは無料で、Contact Form 7側も「reCAPTCHAを使うべき理由が特にないならTurnstileを」と公式に推奨しています。

TurnstilereCAPTCHA
料金無料(300ドメインまで)一定アクセス数超で有料化のケースあり
操作性面倒な操作がほぼ不要v2は画像選択などの手間がある場合も
Contact Form 7対応公式推奨・標準機能(v6.1以降)従来からサポート
検証回数上限制限なしプランにより変動

reCAPTCHAとTurnstileは同時に有効化するとフォームが正常に動かなくなるため、必ずどちらか一方だけを選ぶ。特別な理由がなければTurnstile一択でOK。

Turnstile導入の流れ(Contact Form 7)

全体の流れはシンプルで「Cloudflareでキーを発行 → WordPressに登録 → フォームにコード追加」の3ステップ。Contact Form 7バージョン6.1以降は標準機能として組み込まれているため、追加プラグインは不要。

  1. Cloudflareアカウントを作成(dash.cloudflare.com
  2. 左メニューの「Turnstile」→「ウィジェットを追加」。ウィジェット名・対象ドメインを入力し、ウィジェットモードは「マネージド(管理)」を選択
  3. 発行された「Site Key」「Secret Key」を控える
  4. WordPress管理画面「お問い合わせ」→「インテグレーション」→「Cloudflare Turnstile」の「インテグレーションのセットアップ」でキーを入力し保存
  5. 対象フォームの編集画面で、送信ボタンの直前に [turnstile] を追加して保存
  6. フォームページを開き、送信ボタン上にCloudflareのバッジが表示されればOK。実際に試し送信して確認

注意:既にreCAPTCHAを設定している場合は、「インテグレーション」画面から必ず先に解除してからTurnstileを設定すること。

確認①:Contact Form 7のバージョンが古い可能性

前回お伝えした通り、Cloudflare Turnstileが標準機能として組み込まれたのはバージョン6.1以降です。それより古いバージョンだと、インテグレーション一覧にそもそも表示されません。

確認方法:

  1. 左メニュー「プラグイン」→「インストール済みプラグイン」を開く
  2. 一覧の中の「Contact Form 7」の下に、小さくバージョン番号が表示されています(例:バージョン 6.1.2
  3. 6.1より低い番号であれば、これが原因です

対処法:
同じ画面で「更新」ボタンが表示されていれば、それを押して最新版に更新してください。

Cloudflareのページルールに関する注意点

Turnstileウィジェット単体の発行だけであれば、ドメインのネームサーバーをCloudflareに向け直す必要はなく、ページルールの設定も不要。

一方、サイト全体の高速化・防御まで含めてCloudflare経由にする(ネームサーバーを向け直す)場合は話が別。ページルールで「Cache Everything」のような広い範囲の設定をすると、/wp-admin/のような管理画面までキャッシュされてしまい、外部ユーザーに表示・編集されてしまう重大事故につながる可能性がある。その場合は以下を必ずキャッシュ対象から除外(Bypass)すること。

example.com/wp-admin/*     → Cache Level: Bypass
example.com/wp-login.php   → Cache Level: Bypass

Turnstile/reCAPTCHAだけでは防げないもの

TurnstileやreCAPTCHAは「送信した動きが人間かボットか」を判定する仕組み。そのため、人間が手打ちでフォームに入力して送ってくる営業メール・売り込みメールはブロックできない。「SEO対策しませんか」「制作会社です」といった営業メールがこれに該当する。これは技術的なボット対策とは別の仕組みが必要になる。

人間が送る営業メールを防ぐ3段階の対策

ボット判定ではなく「送信内容そのもの」で判定・仕分けする方法を3段階で紹介する。

① Akismet(WordPress標準装備)

Akismetは元々コメントスパム対策用のプラグインだが、Contact Form 7と連携させることで、送信内容の文面パターンから「営業・スパムらしい」ものを自動判定してくれる。ボットだけでなく、人間が書いた定型的な営業文面もある程度検知できるのが特徴。

  1. WordPress管理画面「プラグイン」で、標準搭載の「Akismet Anti-Spam」を有効化
  2. 案内に沿ってAkismetの無料アカウントを設定(サイトURLを登録)
  3. Contact Form 7の各入力項目にAkismet用の特殊タグを追加
[text* your-name akismet:author]

[email* your-email akismet:author_email]

[textarea* your-message akismet:comment]

スパムと判定されたメールは通常の受信箱ではなく、専用のスパムフォルダに自動振り分けされる。

② 禁止ワード(NGワード)の登録

WordPress標準の「特定の単語を含む投稿を弾く」機能は、Contact Form 7の送信内容にも適用できる。「設定」→「ディスカッション」の「コメント内で許可しない文字列」欄に、営業メールで頻出する単語・フレーズを1行ずつ登録する。

注意:「SEO」のような短すぎる単語だけを登録すると、普通の問い合わせ文にたまたま含まれていた場合まで弾いてしまう。実際の迷惑メールの文面を見て、具体的なフレーズや繰り返し送られてくる特定の会社名・ドメインを登録するのが安全。

③ 同意チェックボックスで心理的ハードルを作る

Contact Form 7の同意確認用チェックボックス機能を使い、営業目的での送信を事前に踏みとどまらせる一文を入れる。

[acceptance not-sales]
このフォームはお客様からのお問い合わせ専用です。営業・勧誘目的でのご連絡はご遠慮ください。
[/acceptance]

チェックを入れないと送信できない設定と組み合わせれば抑止力になる。ただし無視して送ってくる業者も一定数いるため、完全な防止策ではなく「減らす」ための一手として位置づける。

全体まとめ

対策防げるもの効果
Turnstileボットの自動送信◎ ほぼ完全に防げる
Akismet人間が送る営業メールの文面パターン○ かなり減らせる
禁止ワード登録特定の頻出フレーズ・会社名○ ピンポイントで効く
同意チェックボックス心理的な抑止力△ 補助的な効果

Turnstile(ボット対策)とAkismet(内容判定)は役割が違うため併用して問題なし。逆にTurnstileとreCAPTCHAはどちらも「ボット判定」という同じ役割を持つため、併用するとケンカして正常に動かなくなる点だけ注意する。

2026年時点のおすすめ構成:Turnstile + Akismet +(必要に応じて)禁止ワード・同意チェックボックス。まずはTurnstileとAkismetの2つを入れておけば、ボットと人間、両方の迷惑メールにバランス良く対応できる。

  • Categories