コンテンツマーケ運用WordPress 運用 / Contact Form 7

Contact Form 7 に reCAPTCHA を設定する手順|WordPress のスパム対策と無料枠


WordPress + Contact Form 7 で運用している問い合わせフォームに、ある日から意味不明な文字列を埋めただけのスパムが大量に届くことがあります。Google reCAPTCHA v3 を Contact Form 7 のインテグレーション画面に設定するだけで、機械的に送られてくる種類はほとんど止まります。本記事では、実際に対応した事例、reCAPTCHA のキー取得、Contact Form 7 への登録、無料枠と注意点までを管理画面の実画像と一緒に整理します。

公開2026.05.12
最終更新2026.05.12
読了 9 分 / 約4,800字
この記事をシェアポスト
コンテンツマーケ運用Contact Form 7 のスパム対策

Contact Form 7 で
スパム対策

WordPress と Contact Form 7(以下 CF7)で問い合わせフォームを運用していると、ある日からランダムな英字列だけが詰め込まれたメールが大量に届くようになることがあります。実在の問い合わせと混ざるため、対応工数が一気に増えてしまいます。本記事では、実際にこの状況に陥ったサイトで対応した手順を、Google reCAPTCHA のキー取得から CF7 のインテグレーション設定までまとめます。

C
結論
reCAPTCHA v3 を入れれば、機械的なフォームスパムはほぼ止まる

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 v3Google が提供するボット判定。ユーザー操作は不要、スコアで弾く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 / 月 までは無料なし(請求情報の登録も不要)
Premium10,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 への切り替えを検討する形になります。

i
補足

「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 の管理画面にログインし、左メニューの「お問い合わせ」を開きます。サブメニューに「コンタクトフォーム」「新規追加」「インテグレーション」が並んでいます。

WordPress 管理画面の左メニュー。「お問い合わせ」のサブメニューにコンタクトフォーム・新規追加・インテグレーションが並んでおり、インテグレーションが赤枠で強調されている。
WordPress 管理画面の「お問い合わせ」メニュー内に「インテグレーション」がある。

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

Contact Form 7 のインテグレーション設定画面。Constant Contact カードの下に reCAPTCHA カードがあり、reCAPTCHA v3 へのリンクと「インテグレーションのセットアップ」ボタンが表示されている。
Contact Form 7 のインテグレーション画面。reCAPTCHA カードの「インテグレーションのセットアップ」からキーを登録する。

キーを入力して保存する

「インテグレーションのセットアップ」を開くと、サイトキーとシークレットキーの入力欄が表示されます。前章でコピーした 2 種類のキーをそれぞれ貼り付け、「変更を保存」をクリックします。保存後にインテグレーション画面に戻り、reCAPTCHA カードに「✓ reCAPTCHA はこのサイト上で有効化されています」と表示されれば設定完了です。

フォーム側の追加コードは不要

CF7 の v5 以降は reCAPTCHA v3 を前提とした実装になっており、フォーム側(コンタクトフォームの編集画面)にショートコードを追記する必要はありません。インテグレーションのキー登録だけでサイト全体のフォームに適用されます。

08.設置後の確認と、誤検知が出たときの見直し

設置直後は、自分で問い合わせフォームから送信してみて、本物の送信が問題なく届くかを確認します。ページ右下に「reCAPTCHA で保護されています」というバッジが表示されれば、フロント側のスクリプトは読み込まれています。

その上で数日〜1 週間ほど運用し、次の 2 点を見ます。

  • 機械的なスパムが減ったか
  • 本物の問い合わせが間違って弾かれていないか

reCAPTCHA v3 はしきい値を一定に決めて運用するため、ごく稀に本物の問い合わせがスコア低となり弾かれることがあります。問い合わせをくれた方から「フォームから送ったのに届いていない」と別経路で連絡が来た場合は、reCAPTCHA の管理画面で該当時刻のスコア分布を確認し、必要に応じて運用面で補います。

E
運用のコツ

フォーム経由の問い合わせが業務上の主導線になっているサイトでは、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万円(税別)から。

TANTOUの詳細を見る

メディア運用・コンテンツ制作 基礎知識集

一覧に戻る →
この記事をシェア
澤田 翔太(Shota Sawada)
この記事を書いた人

澤田 翔太

株式会社クリプタル 代表取締役

1988年生まれ、慶應義塾大学卒。創業メンバーとして関わった株式会社セールスサポートを株式会社ネオマーケティング(東証STD 4196)に売却。株式会社クリプタルでも複数の事業立ち上げと売却を経験し、2022年9月には婚活・恋愛メディア「シッテク」「婚活会議」を株式会社ベビーカレンダー(東証GRT 7363)へ売却。現在はAI業務支援事業、TANTOU事業、グロースハック支援事業、メディア事業、SEOコンサルティング事業を手がける。