Contact Form 7 で
スパム対策
WordPress と Contact Form 7(以下 CF7)で問い合わせフォームを運用していると、ある日からランダムな英字列だけが詰め込まれたメールが大量に届くようになることがあります。実在の問い合わせと混ざるため、対応工数が一気に増えてしまいます。本記事では、実際にこの状況に陥ったサイトで対応した手順を、Google reCAPTCHA のキー取得から CF7 のインテグレーション設定までまとめます。
CF7 はそのままだと、フォームを総当たりで埋めて送信してくるボットを止めるしくみを持っていません。Google の reCAPTCHA v3 でサイトキー・シークレットキーを発行し、CF7 の「お問い合わせ → インテグレーション」画面に登録するだけで、機械的に送られてくる問い合わせはほとんど止まります。reCAPTCHA は中小規模であれば無料枠の範囲で運用できます。
01.まず結論:reCAPTCHA v3 で機械的なスパムは止まる
CF7 のフォームスパムは、ほとんどが「フィールドにランダム文字を埋めて submit を叩いてくるボット」です。 Contact Form 7 公式ドキュメントも、CF7 単体ではスパムボットを止めるしくみを持たないと明記しています。Google の reCAPTCHA を入れると、ユーザー側の操作はそのままで、ボットらしい挙動をスコアで判定して送信前に弾けるようになります。
02.実際に起きたこと(事例)
WordPress + CF7 で運用している企業から、「ある時期から CF7 の問い合わせフォーム経由で意味不明な文字列の問い合わせが連続で届くようになった」と相談を受けたことがあります。サイト固有の問題ではなく、CF7 を導入している多くのサイトで、ボットの総当たり送信が増えた時期に同じ状況が発生しています。本文・貴社名・住所・電話番号などのすべてのフィールドにランダムな英字列が機械的に挿入されており、実在の問い合わせと取り違える危険のあるものではありませんが、件数が増えると確認工数だけが膨らみます。
■ お問い合わせ内容 ご用件:qzpkmlrwxv tnbcfhdjsy 貴社名:xnvqtwzhmk 貴社名ふりがな:rjqpsbhylw お名前:kweznpomft qsbhylwgna ふりがな:vmcqtxnpsj bdrkhgpqwz メールアドレス:xnvqtwzhmk@vmcqtxnpsj.com 電話番号:+1-202-555-0143 郵便番号:rmgsbpkwqz 住所:bdrkhgpqwz rmgsbpkwqz knwpzdbqxrjlfthcvgna お問い合わせ内容等:qrpcbsklfvtgnmhwjzdxvbcqrtmplsa
メール本文の例を見ると、貴社名「xnvqtwzhmk」、お名前「kweznpomft qsbhylwgna」、住所末尾「knwpzdbqxrjlfthcvgna」のように、人が手で入力したとは考えにくい文字列が並びます。電話番号も国際表記の固定値で、複数の問い合わせで同じ値が使い回されていました(上記は実際のスパム文面を踏まえて文字列を作り変えた再現例です)。
03.なぜフォームにスパムが届くのか
CF7 のフォーム HTML は公開ページに描画されるため、URL が分かればボットからも同じエンドポイントに POST できます。ボット側は HTML を読んで input の name を拾い、適当な文字列を詰めて送信を繰り返します。狙いは様々で、次のような種類が混ざります。
- 別サイトへの誘導リンクを本文に混ぜる迷惑メール送信
- サーバーの送信制限を超えさせて DoS 的に弱らせる試み
- 単純な総当たりのテスト送信
この種の送信は人間の操作を伴わないため、フォーム送信の挙動(マウス操作・キーボード入力・滞在時間)が極端に不自然になります。reCAPTCHA v3 はこの「人間らしさ」を 0.0〜1.0 のスコアで返し、しきい値より低い場合に送信を中止します。ユーザーが画像認証をクリックする CAPTCHA とは違い、画面上の追加操作は発生しません。
04.CF7 が標準で連携している reCAPTCHA をまず使う
CF7 は、インストール直後から「お問い合わせ → インテグレーション」画面に reCAPTCHA カードを内蔵しています。追加プラグインを入れる必要はなく、Google 側で発行したキーを登録するだけで有効化できます。CF7 公式も、フォームスパム対策として reCAPTCHA を有効化する手順を案内しています。
他の手段(Akismet 連携、サーバー側のブロック)と比べたとき、reCAPTCHA は CF7 のデフォルト統合として用意されており、ユーザー側に追加負担も与えません。まずこの一手から入るのが標準的です。
| 対策 | 中身 | 位置づけ |
|---|---|---|
| reCAPTCHA v3 | Google が提供するボット判定。ユーザー操作は不要、スコアで弾く | CF7 標準の連携。設定はキー登録のみで完結。中小規模なら無料枠で運用可 |
| Akismet などのスパムフィルタ連携 | WordPress 公式の Akismet を CF7 から呼び、本文内容をベースに判定 | Akismet 側の利用ポリシーを満たす必要がある。reCAPTCHA と併用も可能 |
| サーバー側で IP / User-Agent ベースのブロック | WAF や .htaccess で特定の IP・パターンを遮断する | 誤遮断のリスクと運用負荷が高い。reCAPTCHA でも止まらない一部のスパムへの追加対策向き |
Akismet・WAF は、reCAPTCHA を入れた後でも残るスパムが観察された場合に追加検討するのがおすすめです。
05.reCAPTCHA は無料で始められる
「reCAPTCHA は有料」という印象から導入をためらわれることがありますが、Google reCAPTCHA には無料枠があり、中小規模のサイトであれば無料枠の範囲で運用できます。プランは Essentials / Premium / Enterprise の 3 段階で、Essentials が無料、Premium が従量課金、Enterprise が年契約コミットです。2026-05 時点の Google Cloud reCAPTCHA 料金表 の内容をまとめると次の通りです。
| プラン | 月額 | アセスメント数あたりの費用 | コミット |
|---|---|---|---|
| Essentials | 無料 | 1〜10,000 / 月 までは無料 | なし(請求情報の登録も不要) |
| Premium | 10,001〜100,000 / 月 までは $8.00 の定額 | 100,001 / 月 以降は $1.00 / 1,000 アセスメント | Google Cloud で請求情報の登録が必要。月額+従量 |
| Enterprise | 年契約のコミット | $1.00 / 1,000 アセスメント(コミット枠) | 最低 12 ヶ月のサブスクリプション |
※ 無料枠の 10,000 アセスメントは「組織単位」での合算で、同じ組織配下の複数アカウント・複数サイトの利用量が合計されます。最新の数値と詳細条件は 公式の料金表 を参照してください。
一般的な企業サイトの問い合わせフォームでは、月間 10,000 アセスメントの無料枠を超えることはあまりありません。reCAPTCHA v3 はフォームを描画したページの読み込みごとにアセスメントを 1 回消費するため、フォーム掲載ページの月間 PV が 1 万を大きく超えるような大規模サイトのみ、Premium への切り替えを検討する形になります。
「reCAPTCHA Enterprise(有料プラン)」と Essentials(無料プラン)はどちらも reCAPTCHA v3 のスコアリングを内部で使っています。問い合わせフォーム単体の保護であれば、無料プランの Essentials で開始するのが標準的な選択です。
06.サイトキー・シークレットキーを取得する
Google reCAPTCHA の管理画面で、対象サイト用のキーを発行します。 reCAPTCHA 新規登録ページ を開き、次のフィールドを埋めます。
| 項目 | 入力内容 |
|---|---|
| ラベル | 管理用の名前。サイト名や用途が分かる文字列(例:example-corp-cf7) |
| reCAPTCHA タイプ | 「reCAPTCHA v3」を選ぶ(v2 ではなく v3) |
| ドメイン | フォームを設置するサイトのドメイン(例:example.co.jp)。サブドメインで分けている場合はそれも追加 |
| オーナー | Google アカウントのメールアドレス(自分のメール) |
| 利用条件への同意 | チェック |
送信すると「サイトキー」と「シークレットキー」が表示されます。両方とも CF7 側で使うので、コピーして手元に控えます。後からでも管理画面の「設定」から再表示できます。
シークレットキーは公開リポジトリ・記事・スクリーンショットに載せないようにします。WordPress の管理画面に貼るだけで、外部に出す必要はありません。
07.Contact Form 7 のインテグレーションで設定する
WordPress の管理画面にログインし、左メニューの「お問い合わせ」を開きます。サブメニューに「コンタクトフォーム」「新規追加」「インテグレーション」が並んでいます。

「インテグレーション」をクリックすると、「他のサービスとのインテグレーション」画面が開きます。Constant Contact と並んで reCAPTCHA のカードがあり、「インテグレーションのセットアップ」ボタンから設定に入れます。

キーを入力して保存する
「インテグレーションのセットアップ」を開くと、サイトキーとシークレットキーの入力欄が表示されます。前章でコピーした 2 種類のキーをそれぞれ貼り付け、「変更を保存」をクリックします。保存後にインテグレーション画面に戻り、reCAPTCHA カードに「✓ reCAPTCHA はこのサイト上で有効化されています」と表示されれば設定完了です。
フォーム側の追加コードは不要
CF7 の v5 以降は reCAPTCHA v3 を前提とした実装になっており、フォーム側(コンタクトフォームの編集画面)にショートコードを追記する必要はありません。インテグレーションのキー登録だけでサイト全体のフォームに適用されます。
08.設置後の確認と、誤検知が出たときの見直し
設置直後は、自分で問い合わせフォームから送信してみて、本物の送信が問題なく届くかを確認します。ページ右下に「reCAPTCHA で保護されています」というバッジが表示されれば、フロント側のスクリプトは読み込まれています。
その上で数日〜1 週間ほど運用し、次の 2 点を見ます。
- 機械的なスパムが減ったか
- 本物の問い合わせが間違って弾かれていないか
reCAPTCHA v3 はしきい値を一定に決めて運用するため、ごく稀に本物の問い合わせがスコア低となり弾かれることがあります。問い合わせをくれた方から「フォームから送ったのに届いていない」と別経路で連絡が来た場合は、reCAPTCHA の管理画面で該当時刻のスコア分布を確認し、必要に応じて運用面で補います。
フォーム経由の問い合わせが業務上の主導線になっているサイトでは、reCAPTCHA を入れた上で、メール経路や電話など別の連絡手段もページ上に併記しておくと、誤検知時の取りこぼしを避けやすくなります。
09.よくある質問(FAQ)
reCAPTCHA v2 と v3 はどちらを入れればよいですか?
問い合わせフォーム保護であれば reCAPTCHA v3 がおすすめです。v2 はユーザーに画像認証クリックを求める方式で、v3 は背後でスコア判定する方式です。Contact Form 7 の現行バージョンは v3 を前提に組まれているため、追加コードなしで導入できます。
reCAPTCHA は本当に無料ですか?
中小規模のサイトであれば、現状無料枠の範囲で運用できます。最新の利用枠と料金は Google Cloud reCAPTCHA の公式ページ で確認できます。Enterprise 版は有料ですが、問い合わせフォーム単体の保護で必須になることはあまりありません。
reCAPTCHA を入れたのにスパムが残るときはどうしたらよいですか?
reCAPTCHA v3 でもごく一部、人間が手作業で送信する種類のスパムは残ります。Akismet との併用、必須フィールドの追加(電話番号など機械的に埋めにくい項目)、メール受信側のフィルタなどを段階的に重ねます。サーバー側で IP・User-Agent をブロックするのは最後の手段にします。
サイトキーとシークレットキーの違いは何ですか?
サイトキーはフロントエンドに埋め込んで reCAPTCHA を呼び出すための公開キー、シークレットキーはサーバー側で Google に照会するための秘密鍵です。シークレットキーは外部に公開しないようにします。Contact Form 7 のインテグレーション画面では、両方を入力欄に貼り付ければ済みます。
WordPress の管理画面に「インテグレーション」が見当たりません
Contact Form 7 のバージョンが古いと、インテグレーション画面のメニュー位置や対応サービスが異なることがあります。WordPress 管理画面の「プラグイン」から Contact Form 7 を最新版に更新してから、「お問い合わせ → インテグレーション」を再度開いてみてください。
10.まとめ
Contact Form 7 のフォームに意味不明な文字列の問い合わせが届くようになったら、Google reCAPTCHA v3 を入れるのが最短の対策です。reCAPTCHA 管理画面でサイトキー・シークレットキーを発行し、WordPress の「お問い合わせ → インテグレーション」画面で登録するだけで設定は完了します。中小規模であれば無料枠で運用でき、ユーザー側の操作も増えません。
TANTOU ─ AI検索時代のコンテンツ戦略を低コスト高品質で
Google検索はもちろん、ChatGPTやPerplexityにも引用される記事を毎月納品。貴社専用ガイドラインに基づくAI×人間のハイブリッド制作で、SEOとLLMOの両方に効くコンテンツを月額9.8万円(税別)から。

