security

お問い合わせフォームのスパム対策|本物の相談を落とさない

2026年10月1日 ・ Halict編集部

お問い合わせフォームのスパム対策を探すとき、多くの人が「どの道具を入れるか」から考え始めます。ところが受付を回している立場で本当に困るのは、スパムを消す手間そのものではありません。混ざった大量の自動送信のせいで、本物の相談を見落としたり、対策を強くしすぎて本物を弾いたりすることです。この記事では、いま実際に使われている対策を4つの層に分け、それぞれの費用と限界を公式の記載で確かめながら、受付側が何から決めればよいかを整理します。

スパムで本当に困るのは、消す手間ではない

1日に届く問い合わせが10件のうち8件が自動送信だったとしても、消す作業そのものは数分で終わります。それでも現場が苦しくなるのは、別のところに原因があります。

1つ目は、見落としです。受信箱に自動送信が並ぶと、人は件名を流し読みするようになります。その状態で本物の相談が3件目に届いていると、既読にしたまま返信を忘れます。窓口の担当者からしばしば出るのは、返し忘れた1件が後から苦情になったという話です。

2つ目は、対策を強めた副作用です。判定を厳しくすれば自動送信は減りますが、同時に本物も落ちます。落ちた本物は、届かなかったので誰も気づきません。気づけるのは、送った側から「返事がないのですが」と連絡が来たときだけです。つまり2つの失敗は対称ではありません。スパムを1件見逃す損失と、本物を1件落とす損失は、まったく重さが違います。

3つ目は、受付の作業が複数の場所に散ることです。フォームの管理画面、受信箱、集計用の表。どこを見れば「この相談はもう返したのか」が分かるのかが決まっていないと、スパムが増えるほど二重返信と返し忘れが起きます。

これらの対策を講じることで、貴社の問い合わせフォームは「スパムの窓口」ではなく、本来の「顧客との良好な接点」としての機能を取り戻します。セキュリティは一度の実装で完結するものではありません。常に最新の状態を維持できる基盤を選ぶことが、ビジネスの安定的な成長を支えることにつながります。 出典: tayori.com

対策を決める前に、この3つのうち自分の現場で何がいちばん痛いのかを先に決めてください。見落としが痛いなら、判定を強めるより仕分けの場所を作るほうが効きます。

対策は4つの層に分かれている

世の中で紹介されている方法は数多くありますが、効き方で並べ替えると4つの層に収まります。層が違うものを組み合わせるのが基本で、同じ層の道具を2つ入れても効果はあまり重なりません。

1つ目は、入口で弾く層です。送信ボタンを押す前後に機械判定を挟み、自動化された送信を通さない方法です。画像認証、無操作で判定する仕組み、ハニーポットがここに入ります。

2つ目は、中身で判定する層です。送られた本文や名前やURLを外部の判定サービスに渡し、スパムらしさを返してもらう方法です。Akismetがこの層の代表です。

3つ目は、語とIPアドレスで落とす層です。特定の単語や送信元のIPアドレスを一覧に入れておき、当てはまるものを受け取らない方法です。当たれば確実ですが、相手が文面や経路を変えると効かなくなります。

4つ目は、届いたあとで仕分ける層です。ここは対策というより運用の形で、判定に通ったものを担当と状況で管理し、誤判定を拾い直せる経路を用意することを指します。前の3つで取りこぼしたものを、ここで人が見つけます。

上の3つだけを固めると、判定を厳しくするしか手がなくなり、本物を落とす方向に進みます。4つ目を作ってから前の3つを緩めるのが、受付を回す側にとって楽な順序です。

同じ層を重ねてもあまり効かない理由は、弾く根拠が同じだからです。画像認証を2種類入れても、どちらも「操作の仕方が人間らしいか」を見ています。片方をすり抜けた送信は、もう片方もすり抜けます。一方で、入口の層と中身の層は見ている対象が違うため、片方をすり抜けたものをもう片方が捕まえます。道具を増やすかどうか迷ったときは、その道具が何を根拠に弾いているのかを先に確かめてください。

画像認証の位置づけは2026年に変わった

長らく標準だったGoogleのreCAPTCHAは、位置づけが変わりました。Googleの製品ページには、reCAPTCHAはGoogle Cloud Fraud Defenseの一部になったと書かれており、開発者向けドキュメントの種類の説明ページには、このページは非推奨でGoogle Cloud Fraud Defenseのドキュメントを見るようにという案内が出ています。

料金は公式の料金表で確かめられます。無料で使えるのはreCAPTCHA Essentialsで、1か月あたり10,000件の判定までが無料です。ここで注意が要るのは、この無料枠が組織単位だと明記されている点です。料金表の注記には、無料の10,000件は組織ごとであり、すべてのアカウントとすべてのサイトの利用を合算すると書かれています。サイトを複数運営している会社が、サイト単位で1万件ずつ無料だと考えていると計算が合いません。

上位のreCAPTCHA Premiumは、10,001件から100,000件までが月額8米ドルの定額、100,000件を超えた部分は1,000件あたり1米ドルです。Enterpriseは1,000件あたり1米ドルの月額固定コミットで、最低12か月の契約になります。判定の実数を出したいときは、この区切りを先に見てください。

この合算の扱いは、Googleの公式の料金表に注記として書かれています。無料枠を前提に運用を組むなら、社内で誰がいくつサイトを登録しているかを先に把握しておかないと、ある月から急に課金が始まります。判定の件数はページの表示数ではなく、フォームの送信や保護対象の操作の回数で増えるため、問い合わせの多い窓口と会員登録の画面を同じ組織で抱えている場合は特に早く消費します。

WordPressで広く使われているContact Form 7も、reCAPTCHAの解説ページの冒頭で、Googleがすべての利用者をreCAPTCHA Enterpriseへ移行させる計画があり、多くの人にとって費用の増加になると注意書きを出しています。画像認証を入れるかどうかは、機能の話だけでなく、この先の費用の話としても見る必要があります。

無料で使える選択肢はCloudflare Turnstile

CAPTCHAの代わりとして名前が挙がることが増えたのが、CloudflareのTurnstileです。公式ドキュメントには、Cloudflareのスマートな CAPTCHA の代替であり、トラフィックをCloudflare経由にしなくてもどのサイトにも組み込めて、訪問者に画像認証を見せずに動くと書かれています。

料金プランのページによると、無料プランで使える範囲は次の通りです。ウィジェットは1つのアカウントで20個まで、チャレンジの回数は無制限、ウィジェット1つあたりのホスト名は10件まで、分析の遡れる期間は最長7日間です。WCAG 2.2 AAAへの適合も無料プランの行に記載されています。Enterpriseに上がるとウィジェットが無制限になり、ホスト名はウィジェットあたり最大200件、分析は最長30日間になり、Cloudflareのブランド表示を外せるようになります。

受付側にとって見落としやすいのは、Turnstileが何を扱わないかという説明です。公式ドキュメントには、Turnstileはこのセキュリティ機能を提供するために厳密に必要なデータだけを処理し、利用者の通信内容やフォームの入力内容、その他ページの入力にはアクセスも保存も送信もしないと書かれています。問い合わせ本文を外部に渡したくない事情がある窓口では、この差が判断材料になります。

Contact Form 7の公式ドキュメントも、Turnstileの統合ページで、reCAPTCHAとは違ってTurnstileは無料で利用できるため、reCAPTCHAを使う理由が特になければTurnstileを推奨すると書いています。

Googleの reCAPTCHAとは違ってTurnstileは無料で使えるため、reCAPTCHAを使う理由が特になければTurnstileを勧めるという書き方です。プラグインの作者が自分の統合機能について優劣を明記するのは珍しく、費用の差がそれだけ大きいという判断が背景にあります。導入の手順も、Cloudflareの画面で発行した2つのキーを管理画面に貼るだけで、フォームの雛形は触らずに済みます。

ハニーポットは回答者に何も見せない方法

入口で弾く層のうち、回答者の手間がまったく増えないのがハニーポットです。人には見えない入力欄をフォームに用意しておき、そこに何か入っていた送信を捨てる方法です。人間はその欄を見つけられないので空のまま送り、欄をすべて埋めようとする自動送信だけが引っかかります。

仕組みの説明としては、Netlifyの公式ドキュメントが具体的です。ハニーポットとは人間の利用者には見えない隠しフィールドで、自動送信をそこへ誘い込むものであり、埋まっている送信は安全に拒否できると説明されています。実装は、フォームのタグに隠しフィールドの名前を指定する属性を付け、その欄をCSSかJavaScriptで隠しておく形です。

この方法には、費用がかからないという利点と、回答者側に一切の追加操作が生まれないという利点があります。外部サービスに本文を渡すこともありません。

ただし、同じドキュメントに重要な注意が書かれています。ハニーポットや画像認証で弾かれた送信は、フォームのスパム一覧にも入らないという記述です。つまり弾かれた記録がどこにも残りません。ハニーポットの欄名が本物の入力欄と紛らわしくて、自動入力の機能が勝手に埋めてしまった場合、その送信は静かに消えます。欄の名前と隠し方を決めるときは、住所や氏名のように自動入力が働く語を避けてください。

語とIPアドレスで落とす方法と、その限界

同じ文面が繰り返し届く、同じ送信元から連続で届くという形のときは、語とIPアドレスで落とす層が最も手早く効きます。

WordPressの場合、Contact Form 7は禁止リストの機能を持っています。公式ドキュメントによると、この機能はもともとWordPressがコメントを管理するための仕組みで、Contact Form 7もそれを利用して特定の単語やIPアドレスを拒否できます。設定場所は管理画面の設定のディスカッションで、画面中央あたりにある「コメントで許可されない単語」の欄に、1行に1語または1つのIPアドレスを入れる形です。一覧に入れた語を含むメッセージ、または一覧に入れたIPアドレスから送られたメッセージは、スパムとして扱われ配信されません。

送信元のIPアドレスを知る方法も同じページに書かれています。通知メールの本文に特別なメールタグを入れておくと、送信者のIPアドレスが表示されます。

この層の限界は、相手が変えられるものを基準にしている点です。文面は書き換えられ、IPアドレスは経路を変えれば別のものになります。恒久的な対策にはならないので、いま来ている波を止める応急処置として使い、止まったあとで入口の層を整えるのが現実的な進め方です。同じ理由で、語の一覧に一般的な単語を入れるのは避けてください。「見積」や「代行」のような語を入れると、本物の相談が落ちます。

中身で判定するAkismetの料金と数え方

中身で判定する層の定番はAkismetです。Contact Form 7の公式ドキュメントは、Akismetによるスパムフィルタリングをスパム対策の中心に据えると明言しており、複数の種類の対策を組み合わせて使うことを推奨しています。

料金は公式の料金ページで確かめられます。個人利用のPersonalは、払える額を自分で決める形です。商用利用のProは1サイトまでで1か月あたり500件のスパムチェックが付き、年払いで月額1,492円と表示されます。サイト数とチェック件数を増やす選択肢が同じ画面に並び、2サイトで1,000件、3サイトで1,500件と上がっていきます。大きな構成向けのBusinessは、サイト数が無制限で1か月あたり5,000件のチェックが付き、年払いで月額7,490円です。

数え方の定義も同じページにあります。スパムチェックはAPI呼び出しとも呼ばれ、Akismetがコメントやフォームの送信などの内容をスパムかどうか確かめるたびに1件消費します。つまり届いた件数ではなく、判定を通した件数で数えます。届く自動送信が多い窓口ほど、この件数は見た目より早く増えます。月間の上限を一時的に超えた場合でも保護は動き続けると書かれていますが、料金の見積りは実際に届いている総数で立ててください。

Akismetを使う場合に受付側が確かめておくべきことが1つあります。自動判定は100%正しくはならないので、誤判定を報告して精度を上げる経路が用意されているかどうかです。Contact Form 7では、誤判定を報告するのにFlamingoというプラグインを有効にする必要があると明記されています。理由は、Contact Form 7自体が送信内容をデータベースに保存する機能を持っていないためです。

対策が効いているかを自分で確かめる

設定を入れたあと、それが本当に動いているかを確かめないまま運用に入るのは避けてください。届く件数が減ったことは、対策が効いた証拠にも、本物まで落ちている証拠にもなります。

中身で判定する層には、動作を試すための決まった手があります。Contact Form 7の公式ドキュメントには、Akismetのスパムフィルタが正しく動いているかを確かめる方法として、氏名の欄に「viagra-test-123」と入れるか、メールアドレスの欄に「[email protected]」と入れて送信する手順が書かれています。この2つは試験用に予約された語で、Akismetは必ずスパムという判定を返します。正しく動いていれば、橙色の枠で囲まれたエラーメッセージが表示されます。自分の窓口で1度これを通しておけば、設定の取り違えに気づけます。

入口で弾く層は、自動送信の側から試すことになるため、手元で同じ確認はできません。代わりに見るのは、導入の前後で届いた件数の内訳です。自動送信が何件から何件になったか、本物が何件から何件になったかを、少なくとも2週間は分けて数えてください。片方の数字だけを見ると、本物が半分になったことに気づかずに「効いた」と判断してしまいます。

数え方を毎回手作業でやると続かないので、受付の一覧に判定の結果が列として残る形にしておくのが現実的です。判定の結果が残らない道具を選ぶと、この確認そのものができなくなります。

WordPressで運用している場合の組み合わせ

WordPressで問い合わせを受けている場合、Contact Form 7の公式ドキュメントが示している組み合わせは明快です。中心にAkismetを据え、入口にTurnstileを設置し、いま来ている波を禁止リストで止め、保存と誤判定の報告をFlamingoで支えるという形になります。

reCAPTCHAを選ぶ場合は、バージョンの制約を先に確かめてください。公式ドキュメントには、Contact Form 7の5.1以降はreCAPTCHA v3のAPIを使うと書かれています。v3のAPIキーはv2のものとは別で、v2のキーはv3では動かないため、サイトを登録し直して新しいキーを取得する必要があります。さらに、v3はウィジェットを表示しないため、フォームの雛形に残っている古いタグは5.1以降では無視されて空文字に置き換わります。以前の設定のまま移行すると、チェックボックスが消えたように見えて設定を疑うことになりますが、これは仕様です。

Turnstileを入れる場合、ウィジェットのモードはManagedを選ぶよう案内されています。既定ではウィジェットはフォームの先頭に配置され、位置を変えたいときだけフォームの雛形にタグを入れて、表示のサイズや言語や配色を指定します。

いま使っている道具のままどこまで運用できるかを判断したいときは、機能の対応表として整理してあるContact Form 7との比較を先に見ておくと、入れ替えるかどうかを決める前に確かめる項目がそろいます。

4つの層を並べて比べる

同じ表に並べると、選ぶ順番が見えます。金額は2026年9月時点で各社の公式ページに表示されているものです。

層 代表的な道具 費用 回答者の手間 弱いところ
入口で弾く Cloudflare Turnstile 無料プランあり。チャレンジ回数は無制限 なし。画像認証は原則出ない 送信された中身は判定しない
入口で弾く reCAPTCHA Essentials 月10,000件まで無料。無料枠は組織単位で合算 v3は操作なし 超過後の費用と移行の方針
入口で弾く ハニーポット 無料。自前で実装 なし 弾いた記録が残らない
中身で判定 Akismet Personalは任意額。Proは月額1,492円から なし 判定件数で課金される
語とIPで落とす WordPressの禁止リスト 無料 なし 文面と経路を変えられると効かない
届いたあとで仕分ける 回答管理のできるフォーム 道具により異なる なし 前段の判定は担わない

この表で読み取ってほしいのは、入口の層と中身の層は無料から始められるのに対し、届いたあとの仕分けだけは道具の選択そのものに関わるという点です。前の3つは後から入れ替えられますが、受付の記録の持ち方は途中で変えると過去の分が分断されます。

誤判定を見つけられる場所があるか

対策を入れたあとに必ず起きるのが誤判定です。ここで差が出るのは、判定の精度ではなく、弾いたものを見られる場所があるかどうかです。

参考になるのはNetlifyの作りです。公式ドキュメントによると、すべてのフォーム送信はAkismetでフィルタされ、通ったものだけが確認済みの一覧に入り、スパムと判定されたものは別のスパム一覧で見られます。しかも、ある送信の状態をスパムから確認済みへ、あるいはその逆へ切り替えられると書かれています。一方で、ハニーポットや画像認証で弾かれたものはスパム一覧にすら入りません。

この2段構えは、そのまま自分の受付にも当てはめられます。入口で弾く層は記録が残らないので、通す条件を緩めにしておく。中身で判定する層は記録が残るので、こちらで厳しく見る。そして週に1度、スパム側の一覧を上から確認する。この運用にしておけば、本物を落としたことに自分で気づけます。

逆に、弾いたものがどこにも残らない構成にしてしまうと、対策が効いているかどうかを確かめる手段がなくなります。件数が減ったのは自動送信が減ったからなのか、本物まで落ちているからなのか、区別できません。送信されたあとの道具がそろっているかどうかを選定条件に入れる理由はここにあります。

回答者の手間を増やさずに済ませる手順

導入の順序としておすすめできるのは、回答者の手間が増えない対策から先に入れることです。具体的には次の順で進めます。

最初に、ハニーポットを入れます。費用はかからず、回答者の画面は何も変わりません。ここで自動送信の一部は落ちます。

次に、中身で判定する層を入れます。Akismetのような判定サービスを通し、スパムと判定されたものを削除せずに別の一覧へ移します。この段階で、何がスパムと判定されているのかを1週間ほど自分の目で確かめてください。誤判定の傾向が分かってから、しきい値の話に進みます。

3番目に、それでも残るようなら入口の層を強めます。TurnstileのManagedモードは、疑わしい相手にだけ操作を求める挙動なので、大半の回答者にとっては画面が変わりません。ここまでで止まらない特定の波があれば、そのときだけ語とIPアドレスの一覧を使います。

最後に、受付の運用を決めます。届いたものに担当を付ける、状況を付ける、返信した記録を同じ場所に残す。この3つが決まっていれば、スパムが増えても本物の見落としは起きません。実際にどの画面で何が見えるのかは、動くところを見るで確かめられます。人数だけで決まる料金の考え方は料金に、機能ごとの説明はできることにまとまっています。

フォームそのものを選び直すときに見る3点

対策を積み上げても受付が楽にならない場合、原因はフォームの側にあることがあります。判断の基準になるのは3点です。

1点目は、届いたものに担当と状況を持たせられるかです。担当が付かないと、複数人で見ている窓口では二重返信が起きます。状況が付かないと、返し忘れに気づけません。

2点目は、返信の記録が回答と同じ場所に残るかです。返信を受信箱で書くと、記録は受信箱に残り、回答の一覧には残りません。次に同じ相手から連絡が来たとき、前回何を返したのかを探すことになります。

3点目は、回答者にアカウント登録を求めないかです。登録を求める作りだと、そこで問い合わせをやめる人が出ます。受付の入口は、対策で固めるほど離脱も増えるという前提で見てください。

用途ごとに何が必要になるかは場面によって変わります。日々の問い合わせを受ける形は問い合わせの受付に、応募書類を受け取る形は採用の応募受付に整理されています。いま使っている道具との差分を確かめたいときはGoogleフォームとの比較が対応表になっており、判断に必要な項目が並んでいます。導入前に出やすい疑問はよくある質問にまとまっています。

個人情報の扱いで先に確かめること

問い合わせフォームは氏名とメールアドレスを受け取るため、個人情報の取り扱いの話が必ず付いてきます。スパム対策の道具を入れるときも、判定のために外部へ何を渡すのかは確かめる必要があります。

中身で判定する層は、その性質上、送信された内容を外部の判定サービスへ渡します。Contact Form 7の公式ドキュメントにも、Akismetを設定したフォームでは、Akismet用の指定を付けた欄だけでなくすべての入力内容と環境の変数がAkismetへ送られると明記されています。渡してよい範囲かどうかは、自分の窓口の告知文と照らして判断してください。

入口で弾く層は、この点で扱いが軽くなります。Turnstileの公式ドキュメントは、フォームの入力内容にはアクセスも保存も送信もしないと明言しています。本文を外に出せない事情がある窓口では、入口の層とハニーポットで固めて、中身の判定は使わないという選択もあります。

どこまでが法令上必要な対応になるかは、事業の形と取り扱う情報によって変わります。断定的な判断は避けて、所管の窓口や専門家に確かめてください。制度そのものの説明は個人情報保護委員会が公開しています。

Q1. 無料で始められるスパム対策はどれですか?

ハニーポットは自前の実装で費用がかかりません。Cloudflare Turnstileは無料プランがあり、チャレンジの回数は無制限で、1アカウントあたりウィジェット20個まで使えます。reCAPTCHAは無料枠が月10,000件の判定までで、この枠は組織単位で全サイトを合算する扱いです。まずは費用のかからない2つから試すのが順序として無理がありません。

Q2. 画像認証を入れると本物の問い合わせは減りますか?

操作を求める形の認証は回答者の負担になるため、その分だけ離脱が増えます。Turnstileや reCAPTCHA v3のように、既定では操作を求めず疑わしい相手だけに確認を出す方式を選べば、大半の回答者の画面は変わりません。導入の前後で受け取った件数を比べて、減り方が自動送信だけなのかを確かめてください。

Q3. Akismetの料金はどう数えられますか?

スパムチェックの件数で数えます。公式の説明では、スパムチェックはAPI呼び出しとも呼ばれ、内容をスパムかどうか確かめるたびに1件消費します。商用のProは1サイトで1か月500件から、Businessはサイト数無制限で1か月5,000件です。届く自動送信が多い窓口では、この件数が見た目より早く増えます。

Q4. スパムと判定されたものは削除してよいですか?

すぐに削除しない運用をおすすめします。自動判定に誤りは残るため、スパムと判定されたものを別の一覧で一定期間見られる形にしておくと、本物を落としたことに自分で気づけます。判定の状態を後から切り替えられる仕組みがあれば、誤判定を報告して精度を上げる経路にもなります。

ガイド一覧へ

お問い合わせフォームのスパム対策|本物の相談を落とさない|Halict