MENU

初心者ブロガーが夜中に震えた話。スパムメールとの戦いと勝利の記録

目次

なぜ突然スパムメールが増えるのか?【「超」簡単に説明すると】

ある日突然、見知らぬ「TestUser」から意味不明な英語や記号のメールが届きました。

いち関係者の私

最初は一通だけで「スパム」というやつか?くらいにしか思っていませんでした。

しかし、その3日後の朝、i-phoneでメーラーを見ているとスパムメールが、どんどん増えていくのです。

10分に一通くらいの割合で入るのです。

たまたまその日が休みだったので、急遽スパムメール対策を施すことにしました。

弟子

ところでなぜスパムメールは届くの?

お問い合わせフォームを公開したその瞬間 ブログは世界中のスパムBotに“見つかって”しま

設定をいじったわけでもないのに、急に意味不明なメールが届き始めた…。その理由はシンプル。インターネット上に「誰でも送れる入り口(フォーム)」を開いたからです。

しかも、Contact Form 7は、多く使われている有名プラグイン。Botはその構造を熟知していて、「ここなら送信できる」と最初から狙ってくるんです。

ChatGPTくん

公開されたブログは、日本だけじゃなく海外のBotからも普通にアクセスできる状態。つまり、スパムの嵐は“来るべくして来た”現象なんです。

いち関係者の私

でも安心してください。この記事を読み進めれば、その嵐をピタッと止める方法、ちゃんと紹介していきます!

私を救った2つのプラグイン+コメント禁止用語【効果実証済み】

2つのプラグイン+コメント禁止用語を導入しただけで、状況は一変。まるでウソのようにスパムがピタッと止まりました。

いち関係者の私

実際に私が使って効果を感じたプラグインをご紹介します。全部“初心者でも扱える”ものばかりです

対策その① Google reCAPTCHA v3|目に見えない防御シールド

まず最初に入れたのは「Google reCAPTCHA v3」。裏側でこっそりスパムを見張ってくれる心強い防御壁です。

このプラグインは、ユーザーに画像認証などを求めず、自動的に“人間かBotか”を判断してくれるので、ブログ読者の操作を邪魔しません。

いち関係者の私

私が参考にしたサイトは以下のサイトです。

RishunTrading
Google reCAPTCHA v3認証の導入方法 – 2025年度版 | RishunTrading お問い合わせフォームを設置する際に、お客様へお薦めしている「Google reCAPTCHA v3」認証について記載しています。これは入力フォームへの入力が、人の手によるものなのか...

10分かからず設定できました。

対策その② Akismet Anti-Spam|コメントにもフォームにも効く万能フィルター

次は「Akismet」。世界中のスパムデータと照合して、迷惑な投稿をフィルターで弾いてくれる強力な守り手です。

AkismetはWordPress公式のスパム対策サービスで、すでに判定済みの“スパムっぽい送信者や内容”を自動でブロックしてくれます。

いち関係者の私

Akismetを紹介するサイトにはWordPressに最初から入っている、と書かれてあるのですが、私のWordPressには見当たりませんでした。

右も左もわからない超初心者のときに外してしまったのかもしれません・・・

インストールと設定で参考にさせていただいたサイトが下記のもの。ヒトデさんのブログです。

対策その③ コメント禁止用語リスト|実は強力!WordPress標準のシンプル対策

最も手軽だったのが、WordPress標準機能の「禁止用語リスト」。キーワードやIPアドレスを登録するだけで送信自体を止められます

この機能は、もともとはコメントスパム対策ですが、Contact Form 7もこのリストを参照するため、簡単な設定だけで効果を発揮します。

ChatGPTくん

メール本文によく登場したスパムワード(例:「test user」など)をリストに追加すると、送信そのものがブロックされるようになります。プラグインを増やすことなく、即効性がある方法です。

設定の仕方は下記のサイトを参考にしました。

対策その④:(検討中)Honeypotは導入予定。簡単なのに効果アリらしい

「Honeypot for Contact Form 7」というプラグインも、近々導入予定です。

このプラグインは、ユーザーには見えない“ダミーの入力欄”を仕込むことで、Botを引っかける仕組み。人間には無害で、Botにだけ罠をしかけられるというのが魅力です。

いち関係者の私

Honeypotは導入も設定も簡単で、他のプラグインとも干渉しづらいようです。私はまだ導入していませんが、効果があるようです。

3つのプラグインの導入方法【マネするだけでOK】

いずれの方法もカタカナと英語ばっかりで難しそうですが、それぞれのサイトで紹介しているとおりにやれば全く問題ありません。

弟子

参考にしているサイトと自分のブログの設定ページはタイル表示するとスムーズに行きますよ。

ChatGPTのDeepResearchが役に立った話

プラグインの名前を聞いてもピンとこない、英語の設定画面を見るだけで不安になる…。そんな私がスパム対策を実行できたのは、ChatGPTに助けてもらったからです。

いち関係者の私

「DeepResearch」という機能を使ったことで、調べ物にかかる時間と不安がグッと減り、行動するハードルが一気に下がりました。

入力したプロンプトは以下の通り

プロンプト入力!

Contact Form 7をつかってお問い合わせフォームを作っています。
ところが最近、ここから不審なメールが管理者に送られてくるようになりました。
昨日までは一週間に一回くらいだったのに、今日は10通送られてきています。
次のことについて教えて下さい
・このメールはどこから送られてくるのか。
・Contact Form 7やスパムメール対策ソフトはありますか。
・アップロードした画面は私のブログのプラグインです。アドバイスがあったら教えて下さい。
・これらの不審なメールに対する対応策と防衛策をまとめてください。

ブログの間インストール済みプラグインのスクリーンショットとともにおくり、DeepResearchしただけです。

ChatGPTに回答してもらったものは以下の通り

10分弱解答を作成してくれました。

出力した文章は以下のとおりです。

長いので折りたたんであります。興味のある人は見てください。

ありがとうございます。Contact Form 7経由で「TestUser」という差出人から意味不明なアルファベットの羅列が含まれたスパムメールが増加しているとのことですね。
以下の点について調査し、解決策をまとめます。
Contact Form 7のスパムメールの送信元の特定方法(IPアドレスの確認方法を含む)
Contact Form 7で利用できるスパム対策プラグインや設定方法
ご提供いただいたプラグイン一覧からスパム対策として有効なもののアドバイス
Contact Form 7に届くスパムメールの対応策と防衛策(reCAPTCHAやAkismetなどの導入方法)
調査が完了しましたら、具体的な対策をご案内いたします。少々お待ちください。
Contact Form 7のスパムメール増加への対応策
1. スパム送信元の特定とIPブロック方法
まず、スパムメールを送信している発信源(IPアドレスなど)を特定しましょう。Contact Form 7自体には標準で送信ログ機能がありませんが、以下の方法で送信元情報を確認できます。
メール本文に送信者のIPアドレスを記録する: Contact Form 7のフォーム編集画面で「メール」タブを開き、メール本文に特殊タグ[_remote_ip]を追加します (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。これで今後届くお問い合わせメールの中に送信者のIPアドレスが表示されるようになります (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP) (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。既に大量のスパムが届いていて緊急の場合、手っ取り早くIPを知るためにこの設定を行ってテスト送信するのがおすすめです。


Flamingoプラグインで送信ログを確認する: Contact Form 7作者提供のアドオン「Flamingo」を導入すると、すべてのフォーム送信内容がWordPressデータベース上に蓄積されます (Flamingo – WordPress plugin | WordPress.org)。管理画面の「Flamingo > 受信メッセージ」から各メッセージの詳細を確認できるため、スパム送信者のIPアドレスや内容パターンを後から分析できます。なおFlamingo有効化後も、上記[_remote_ip]タグをフォームに入れておけばメッセージごとのIPも保存されるので確実です。


サーバーのアクセスログを調べる: サーバーまたはセキュリティプラグイン(SiteGuard WPやXO Securityなど)がアクセスログを保持している場合、スパムメールが届いた日時付近のログから怪しいPOSTリクエストを探すことで送信元IPを割り出せることもあります。例えば、Contact Form 7はフォーム送信時にwp-admin/admin-ajax.phpへPOSTアクセスするので、そのエンドポイントへの大量のアクセスがないかログを確認します。サーバー管理者やホスティングのコントロールパネルでアクセスログを参照できる場合は活用してください。


**IPアドレスを特定できたら、その送信元をブロックします。**最も簡単な方法はWordPress標準の「コメントの禁止用語リスト(旧コメントブラックリスト)」機能を使う方法です (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。これはスパムコメント対策の機能ですが、Contact Form 7もこのリストを参照して送信をブロックできます。
(Disallowed list (formerly known as “Comment blacklist”) | Contact Form 7)WordPress管理画面の「設定 > ディスカッション」内にある『コメント内で許可されないキーワード』設定画面の例。ここに特定の単語やIPアドレス(1行に1つずつ)を追加すると、その単語を含むメッセージそのIPからの送信はContact Form 7によってスパム扱いされ、メールが送信されなくなります (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。
この手順で、特定したスパム送信元IPやスパムによく出現するキーワードを入力して「変更を保存」してください。例えばスパムメール本文中に特定の宣伝語句(例:「ビジネス提案」「ローン」「Viagra」等)が含まれる場合や、明らかに日本向けサイトに不要な英語だけの内容の場合、それらをキーワードとして登録することで以降の送信を遮断できます (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。IPアドレスも同様に1行ずつ追加します。こうした禁止用語リストに登録した内容にマッチしたフォーム投稿はすべて自動的にブロックされます (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。
さらに強力なブロックが必要な場合は、セキュリティプラグインの機能やサーバー設定でIP拒否を行うことも検討します。例えばSiteGuard WP PluginやXO Securityには国別IPブロックや管理画面へのアクセス制限機能があります。海外からのみ届くスパムであれば海外IPを弾く設定をしたり、特定の悪質IPを.htaccessやファイアウォールに直接記述してブロックすることも可能です。ただしIPは頻繁に変わる可能性もあるため、手動のIPブロックは根本的解決とならない点に注意してください。
2. Contact Form 7のスパム対策機能と有効なプラグイン活用法
Contact Form 7にはいくつかスパム対策の仕組みがあります。また、他のプラグインと組み合わせることでより効果的にスパムを防止できます (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。複数の対策を併用し、二重三重のフィルタをかけるのがポイントです (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。以下に主な対策とその設定方法を比較・解説します。
reCAPTCHA(GoogleによるCAPTCHA認証): Contact Form 7はバージョン5.1以降、Google reCAPTCHA v3に対応したインテグレーション機能を標準で備えています (reCAPTCHA (v3) | Contact Form 7 [日本語])。reCAPTCHA v3は利用者にほとんど負担をかけずバックグラウンドでスコア判定を行い、スパムと疑われる送信を水面下でブロックしてくれる仕組みです (reCAPTCHA (v3) | Contact Form 7 [日本語])。設定するには、まずGoogleのreCAPTCHA管理コンソールでサイトを登録し、「サイトキー」と「シークレットキー」を取得します (reCAPTCHA (v3) | Contact Form 7 [日本語])。種類は「reCAPTCHA v3」を選択してください (reCAPTCHA (v3) | Contact Form 7 [日本語])。

次にWordPress管理画面で「お問い合わせ > インテグレーション」を開き、reCAPTCHAの項目で「インテグレーションのセットアップ」をクリックします (reCAPTCHA (v3) | Contact Form 7 [日本語])。サイトキーとシークレットキーをそれぞれ入力し、「変更を保存」します (reCAPTCHA (v3) | Contact Form 7 [日本語])。これでContact Form 7の全フォームにreCAPTCHA認証が適用されるようになります (reCAPTCHA (v3) | Contact Form 7 [日本語])。以降、フォーム送信時にスパムと判断されると送信自体が拒否されるか、エラーメッセージが表示されます(ユーザーには通常reCAPTCHAバッジの表示以外追加の操作はありません)。

補足: reCAPTCHA v3は完全に裏方で動作するためユーザーにチェックボックスや画像選択を求めませんが、場合によってはスパムを完全に排除しきれないこともあります。スコアリング方式のため、悪質なボットでなく人手による迷惑送信などはすり抜ける可能性があります。その場合は後述の他手段と併用して対処しましょう。どうしてもv3で効果が薄い場合、代替としてreCAPTCHA v2(「私はロボットではありません」のチェックボックス式)を使う方法もあります。v2を使うには別途プラグイン(例:「Contact Form 7 – reCAPTCHA v2」など)の導入が必要ですが、ユーザーに可視の認証を課す分だけ効果が高い場合があります。ただしユーザビリティとのトレードオフになるため、まずは公式対応のv3で様子を見ることをおすすめします。


Akismet(スパムフィルタリングサービス): AkismetはWordPress公式の強力なスパム判定サービスで、元々コメントスパム対策として提供されていますがContact Form 7から送信された内容もチェックすることが可能です (Akismet によるスパムフィルタリング | Contact Form 7 [日本語]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。Contact Form 7はAkismet連携をサポートしており、Akismetプラグインが有効化されていればフォーム投稿データをAkismetサーバーに照合してスパムかどうかを判定します (Contact Form 7のスパム対策とは?迷惑メールや悪用されない設定 …) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。Akismetを使うには、まずWordPressプラグイン「Akismet Anti-Spam (Akismetによるコメント/フォームスパム対策)」を有効化し、Akismet.comで取得したAPIキーを設定します (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。個人利用であれば無料プランでキーを入手可能です (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。

次に、Contact Form 7のフォーム側で各入力フィールドにAkismet用のオプション属性を付与します。例えば送信者名のフィールドにはakismet:authorを、送信者メールアドレスのフィールドにはakismet:author_emailを付けます (Akismet によるスパムフィルタリング | Contact Form 7 [日本語]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])(例:[text* your-name akismet:author]や[email* your-email akismet:author_email]とします)。こうすることで、それらのフィールド内容を送信者情報としてAkismetが認識し、総合的なスパム判定を行ってくれます (Akismet によるスパムフィルタリング | Contact Form 7 [日本語]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。特にメール本文中にURLを含められるフォームの場合はURL入力欄にakismet:author_urlを付与することもできます (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。これらのいずれか1つでも設定すればフォームはAkismetによるチェック対象となりますが、できるだけ複数のAkismetオプションを組み合わせたほうが精度が向上するため、名前・メール・本文など該当するフィールド全てに付けることが推奨されています (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。

Akismetが有効に機能すれば、既知のスパム送信元や内容パターンに一致する問い合わせは自動的にブロックされます。世界中のデータベースと照合してくれるため精度は高いですが、商用サイトで利用する場合は有料プラン契約が必要な点に注意してください (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。


Honeypot(ハニーポット): Honeypotは人間には見えない入力欄をフォームに仕込むことで、自動送信ボットだけを引っ掛ける古典的な手法です (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)。具体的には、CSSやJavaScriptで隠されたダミーの入力フィールドをフォームに追加し、それを埋めた投稿は「ボットによる送信」とみなして無視します。人間のユーザーはそのフィールドに気付かないため通常入力しませんが、ボットはフォーム上の全フィールドに機械的に入力しようとするため引っ掛かるというわけです (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)。Contact Form 7でこの仕組みを簡単に導入できるプラグインが「Honeypot for Contact Form 7」です (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。プラグインをインストール・有効化すると、Contact Form 7のフォーム編集画面に「Honeypot」というタグ項目が追加されます。フォームにそのタグ(例 [honeypot your-honeypot])を挿入して保存するだけで設定完了です (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。以後、そのフォームでダミーフィールドに入力された場合はContact Form 7側で送信をスパムとして拒否します。HoneypotはreCAPTCHAのように外部サービスに頼らず手軽に使える割に多くのボットに有効ですが、より高度なボットや手動スパムには効果がない場合もあります。とはいえユーザーの負担がゼロで導入できるので、他の対策と組み合わせる価値は高いでしょう (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)。


Contact Form 7のその他のスパム対策機能: 上記以外にも、Contact Form 7自体にいくつか簡易的なスパム防止策があります。例えば**「クイズ」フィールドを使って簡単な質問に答えさせる方法があります (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。フォームに[quiz]タグを追加し、「1+1=?|2」のような問題と答えを設定しておくと、正答しないと送信できなくなります (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。これはシンプルですが確実な人間判定法と言えます。また、メール本文の文字数が極端に短いスパムを除外するために最小文字数を指定**するテクニックもあります (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。たとえばメッセージ欄にminlengthオプションを付けて20文字以上でないと送信できないよう制限すれば、機械的な短文スパムをある程度排除できます (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。ただし文字数制限はあまり厳しくしすぎると本来のお問い合わせも制限してしまう可能性があるため、様子を見ながら調整してください。


以上のように、それぞれ特長の異なる対策があります。比較すると: reCAPTCHAは導入が容易で利用者に負担がなく幅広いスパムに対応できますが万能ではありません。Akismetは強力な学習型フィルターで精度が高い反面、利用にAPIキーが必要で商用サイトではコストが発生します。Honeypotは導入・運用コストがゼロで基本的なボットには有効ですが、高度な攻撃には無力です。クイズや文字数制限といった手法も組み合わせると効果的ですが、ユーザー体験への影響も考慮が必要です。
おすすめの組み合わせとしては、まずreCAPTCHA v3を有効化し(基本的なボットはこれでかなり減ります)、それでも漏れてくるものに対してAkismetまたはHoneypotで追加対策をするのが良いでしょう。実運用では 「reCAPTCHA + Honeypot」 などプラグインのみで完結する組み合わせでもかなりのスパムを排除できたという報告もあります (Spam email for contact form 7 in wordpress – Reddit)。加えてAkismetも有効化しておけば万全です(個人サイトであればコストもかかりません)。Flamingoはスパム防止効果自体はありませんが、送信内容をデータベースに保存して後で精査できる点で早期発見・対処に役立つので、可能なら導入を検討してください。
3. 現在利用中のプラグイン状況の分析
ユーザー様の提供したプラグイン一覧(スクリーンショット)を拝見したところ、Contact Form 7以外に以下の関連プラグインが確認できます:
SiteGuard WP Plugin – WordPressの総合的なセキュリティ強化プラグインです。管理ページの保護やログイン試行の制限、日本語サイト向けのコメントスパム対策機能(コメント投稿に画像認証を追加する等)も備えています (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)。ただしContact Form 7そのものを直接保護する機能はないため、フォームスパム対策としては補助的な位置づけです。主に管理画面やログイン周りの防御、防御壁(WAF)的な機能でサイト全体を守る役割です。


XO Security – こちらもWordPress用セキュリティプラグインで、不正アクセス防止やスパムコメントブロック、XML-RPC無効化など多岐にわたる保護機能があります (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)。XO SecurityにはコメントフォームにCAPTCHAを追加するオプションや、日本語の含まれないコメントを拒否するフィルターなどがあり (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)、スパムコメント対策には有効です。しかしContact Form 7のフォーム送信はWordPressのコメント機能とは別物のため、XO Securityのそうした設定は残念ながらお問い合わせフォームには適用されません(コメント欄を使ったスパムとは別アプローチとなるため)。


Akismet Anti-Spam – プラグイン一覧のOCR結果には見当たりませんでした。多くのWordPressサイトではデフォルトでインストールされていますが、有効化されていない可能性があります。スパムメール対策としてAkismetは非常に有用なので、未導入であればプラグインメニューから追加・有効化することを強く推奨します(既にファイルが存在する場合は「有効化」を押すだけです)。有効化後、前述の通りAPIキー設定とフォームフィールドへのオプション付与を行ってください (Akismet によるスパムフィルタリング | Contact Form 7 [日本語]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。


Flamingo – 同様にプラグイン一覧には記載が無いようです。Contact Form 7利用時の定番アドオンで、フォーム送信内容の保存・管理ができるプラグインです (Flamingo – WordPress plugin | WordPress.org)。スパムそのものを防ぐ機能はありませんが、スパム送信の傾向を把握したり万一メールが届かなかった場合にバックアップとして内容を確認できるメリットがあります。こちらも必要に応じて導入を検討してください。


Honeypot for Contact Form 7 – プラグイン一覧に含まれていません。上記のとおり、簡単に導入できるスパム対策プラグインなので追加をおすすめします。導入後は各フォームにhoneypotタグを挿入し忘れないようにしましょう (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP) (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。


その他のプラグイン: スクリーンショットから判断すると、SEO対策の「SEO SIMPLE PACK」や画像圧縮の「EWWW Image Optimizer」、フォームとは無関係な「Pochipp」や「Site Kit by Google」などが導入されています。これらはお問い合わせフォームのスパムには直接関与しません。強いて言えば、「WP Multibyte Patch」(マルチバイトパッチ)は日本語メールの送信周りの不具合を修正する標準プラグインなのでContact Form 7のメール送信が文字化けせず届くよう支えてくれます。スパム対策ではありませんがメール送信には重要なので引き続き有効化しておいてください。


総じて、現在のプラグイン構成ではフォーム専用のスパム対策プラグインが不足している印象です。SiteGuard WPやXO Securityで全体の防御力は高めていますが、Contact Form 7経由のスパムメール対策としてはreCAPTCHAの導入やAkismetの活用がまだ不十分と思われます。したがって、次章で述べる具体的な対策を早急に実施することをおすすめします。

4. スパムメールへの具体的な対応策(今すぐ実施できる手順)
以上の調査結果を踏まえ、ユーザー様が今すぐ実行できるスパムメール対策の手順をまとめます。可能であれば順番に全て実施することで多層的な防御となり、劇的にスパムが減少するはずです。
送信者情報の記録とIPブロック設定: Contact Form 7のメール設定で本文に[_remote_ip]を追記し、スパム送信元のIPアドレスを把握します (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。判明した悪質なIPがあれば、WordPress管理画面の「設定 > ディスカッション > コメント内で許可されないキーワード」にそのIPを追加登録してください (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。併せて、スパム内容に共通するキーワード(例えば特定の宣伝文句や英語の俗語など)があればそれもリストに加えます (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])。これにより、該当IPやキーワードからのフォーム送信は即座にブロックされます。登録後は実際にフォームからテスト送信し、正常な送信がブロックされていないか(誤判定がないか)も確認してください。


reCAPTCHA v3の導入: Contact Form 7のスパム対策の第一歩として、まだであればGoogle reCAPTCHAを設定しましょう。GoogleのサイトでreCAPTCHA v3用のサイトキーとシークレットキーを取得し(Googleアカウントが必要です) (reCAPTCHA (v3) | Contact Form 7 [日本語])、WordPress管理画面の「お問い合わせ > インテグレーション」にアクセスします (reCAPTCHA (v3) | Contact Form 7 [日本語])。reCAPTCHAの項目で「インテグレーションのセットアップ」をクリックし、取得した2つのキーを入力して保存します (reCAPTCHA (v3) | Contact Form 7 [日本語])。正しく設定できると、サイトのフッター付近に「Protected by reCAPTCHA」バッジが表示され、フォーム送信時に裏でスコアリングチェックが行われるようになります。以後、自動ボットによる明らかなスパムはかなり減るはずです。 (reCAPTCHA (v3) | Contact Form 7 [日本語])


Akismetプラグインの有効化と設定: プラグイン一覧にAkismetが見当たらない場合、まず「プラグイン > 新規追加」でAkismet Anti-Spamをインストール・有効化してください(既にインストール済みなら有効化するだけでOKです) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。有効化後、Akismetの設定画面からWordPress.comアカウント経由でAPIキーを取得し、サイトに接続します (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])。APIキーの設定が完了したら、Contact Form 7の各フォーム編集画面で以下を確認します。 (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])


「お名前」「名前」フィールドがある場合、フィールドタグにakismet:authorを追加(例: [text your-name akismet:author]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])
「メールアドレス」フィールドがある場合、タグにakismet:author_emailを追加(例: [email your-email akismet:author_email]) (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])
(任意)もしお問い合わせフォームにURLを入力させる項目や、電話番号等自由記述の項目がある場合、それらにもakismet:author_urlや適切なAkismetオプションを付与 (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])
既定のContact Form 7テンプレートを使っている場合、「お名前」「メールアドレス」は標準フィールド名となっているため、自動的にAkismet判定対象になっていることがあります。念のため上記オプションが付いているか確認し、無ければ追記してください。設定後はフォームからテスト送信し、Akismetがスパムと判断した場合はフォーム送信がエラーになったりメール本文中にスパム警告が付加されることを確認できます(Akismet導入直後はテストが難しいため、そのまま様子を見てスパムが来なくなるかで判断しましょう)。


Honeypotプラグインの導入: 次に、Contact Form 7専用のHoneypotプラグインをインストールします。 (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)WordPress管理画面で「プラグイン > 新規追加」を開き、キーワードに「Honeypot for Contact Form 7」を入力して検索します。開発元がNoceanになっているプラグインが該当するので、「今すぐインストール」し有効化してください (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7) (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)。有効化後、Contact Form 7のフォーム編集に「Honeypot」タグを挿入できるボタンが追加されています。各お問い合わせフォームに1つ、Honeypotフィールドを追加しましょう。例えばフォーム末尾(送信ボタンの直前)に[honeypot honeypot-1]のような短コードを挿入して保存します (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP) (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。このフィールド名はデフォルトのままで問題ありません。これで、典型的なボットはこの見えないフィールドに勝手に値を入力し、Contact Form 7側でそれをスパムとしてブロックしてくれるようになります (3分で出来る!WordPressのスパム対策|Honeypot for Contact Form 7)。人間のユーザーには影響しないため、ユーザー体験を損ねる心配もありません。Honeypot導入後は、一応フォームの表示に異常がないか、送信が正常にできるか(ボットでない人間の送信がブロックされないか)確認してください。


Flamingoプラグインの導入(任意): 可能であればFlamingoもインストールしておくと良いでしょう。 (Flamingo – WordPress plugin | WordPress.org)プラグイン新規追加で「Flamingo」を検索し、有効化するだけで設定は不要です。導入後はWordPress管理画面に「Flamingo > 受信メッセージ」のメニューが追加され、問い合わせフォームから送信された全メッセージがデータベースに保存されていきます (Flamingo – WordPress plugin | WordPress.org)。万一Akismetや他のフィルターで**「スパム判定されたメッセージ」がメールとして届かなかった場合でも、Flamingo上では「迷惑メール」タブに振り分けられて確認できるようになります(Akismet連携時)。また、正常な問い合わせも蓄積されるため、メールが届かないトラブル時のバックアップにもなります。Spam対策というより運用補助**ですが、導入しておけば安心です。


フォーム内容の精査と調整: 上記技術的な対策に加え、現在のフォーム項目を見直してみましょう。例えば「お問い合わせ内容」欄に極端に短い文章(例:「こんにちは。」だけなど)はスパム率が高い場合、文字数の最小値を設定したり、具体的な内容を求める注記を追加することで機械的な送信を減らせます (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP) (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。また、海外からの不要な問い合わせが多い場合はフォームに「※日本語でご記入ください」と記載することでボット以外のスパム(例えば英語の迷惑営業メールなど)を心理的に抑止できます。それでも送られてくる英語メールは先述のAkismetや禁止キーワードリストで弾ける可能性が高いです。 (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)


テストと監視: すべての対策を講じたら、自分でフォーム送信テストを行い正常にメールが届くことを確認します。その後数日~数週間は状況を注意深く観察してください。劇的にスパムが減少していれば対策成功です。もし依然としてスパムが届く場合は、送信内容やIPの傾向をFlamingoなどで分析し、新たなIPやキーワードをブラックリストに追加したり、さらに高度な対策(例えばContact Form 7のクイズ機能による質問認証 (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)の併用など)も検討してください。


以上の手順を踏めば、多くのWordPressサイトで頻発しているContact Form 7のスパムメール問題は大幅に改善するはずです。特にAkismet+reCAPTCHA+Honeypotという三段構えで対処すれば、まず機械的なスパムは通らなくなります。それでも漏れてくるものは人手によるものか特殊なケースなので、その際は問い合わせフォーム自体を一時非公開にすることも視野に入れてください(例えば営業時間だけフォームを有効にする、問い合わせページに簡単な質問を追加して人力スパムを抑制する等の運用も手段です)。
5. WordPress全体のセキュリティ対策強化と追加の提案
最後に、お問い合わせフォーム周り以外も含めサイト全体でスパムや不正アクセスを防ぐためのベストプラクティスを述べます。既に導入済みのSiteGuard WP PluginXO Securityは非常に有用なセキュリティツールなので、設定を再確認し活用しましょう。
SiteGuard WP Pluginの活用: SiteGuard WPはログインページ変更や管理者への通知、画像認証の追加など様々な設定項目があります。特に「画像認証(CAPTCHA)」の設定を有効にしておくと、ログインページやコメント投稿時に画像認証が求められるようになります。お問い合わせフォームには適用できませんが、もしサイトにコメント欄がある場合はスパムコメントの大半をはじけます。また「不正な投稿のブロック」機能では、コメント内に含まれる悪質なURLやスクリプトを検出してブロックすることも可能です。サイト全体としてスパム投稿の入り口を減らす効果が期待できます。


XO Securityの活用: XO Securityにはスパムコメントを自動ブロックするフィルターが搭載されています (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)。例えば「日本語が含まれないコメントを拒否」という設定を有効にすると、日本語サイト向けの典型的な対策として海外からの英語スパムコメントを一掃できます (【動画】XO Securityの設定方法をチョ~分かりやすく解説!)。お問い合わせフォームには直接適用できませんが、コメント欄経由のスパム被害にも悩まされている場合はぜひ設定しておきましょう。また、XO SecurityはXML-RPCの無効化や著者アーカイブの隠蔽などスパムボットが悪用しやすい経路を塞ぐ機能も備えています (XO Security プラグイン – Xakuro)。結果的にサイト全体へのボットアクセスが減れば、お問い合わせフォームへの攻撃的なアクセスも減少する可能性があります。SiteGuardとXO Securityは併用可能なので、それぞれの利点を活かして設定を最適化してください(機能が重複する部分はどちらか一方で有効にすればOKです)。


その他のセキュリティプラグイン: 既に導入済みのプラグインで概ね十分と思われますが、もしさらなる強化を求めるなら以下も検討できます。例えば、WordfenceSucuriなどのセキュリティプラグインにはファイアウォール機能があり、高度なボット攻撃や不正なフォーム送信をサーバーレベルでブロックしてくれます (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。有料版でなくとも基本的な防御は可能です。また、有料サービスですがCleanTalkというスパム対策専用サービスも人気があります。これはコメントやお問い合わせフォーム、登録フォームなどあらゆるフォームのスパムを一元的にクラウド判定してブロックするもので、Akismetの代替として企業サイトで導入されるケースもあります。現在のところ無料のAkismetで十分対応可能なはずですが、最終手段として知識として覚えておくと良いでしょう。


WordPress本体とプラグインの最新化: スパムとは直接関係しませんが、Contact Form 7自体の脆弱性が過去に報告された例もあります (How to Stop Contact Form 7 Spam – 7 Proven Ways – CodeWP)。常に最新版にアップデートしておくことで既知の脆弱性を突かれてスパム送信に悪用されるリスクを減らせます。WordPress本体や他のプラグイン、テーマについても同様に定期的な更新を行い、セキュリティホールを放置しないようにしてください。


サイト運用上の工夫: スパムメール対策として技術的なブロック以外にできる工夫もあります。例えばお問い合わせページに注意書きを入れる、人力の迷惑メールには毅然と対応する旨を記載する(スパム業者に対する警告文を入れておく)なども抑止効果がゼロではありません。また、どうしても業種柄海外からのスパムが多い場合には、問い合わせ先メールアドレスを画像で掲載し必要な人にだけメールしてもらう、といった思い切った方法もあります。ただしこの場合本来のお問い合わせも減ってしまう可能性が高いため、最終手段としてください。基本は上記1~5の技術的対策で十分快適になるはずです。





以上、Contact Form 7を使用したお問い合わせフォームにおけるスパムメール増加問題とその解決策について、原因の調査から具体的な防御策まで説明しました。重要なのは複数の対策を組み合わせることと、効果を見ながら調整を続けることです。 (Akismet によるスパムフィルタリング | Contact Form 7 [日本語])一度対策を施したら終わりではなく、定期的にフォーム経由のメールを監視し、新たなスパム手法が出てきたらフィルターを追加するといったメンテナンスも必要になります。しかし適切に対処すればスパムは必ず減らせますので、できる範囲から早速実行してみてください。これらの手順により、ユーザー様のサイトが安全かつ快適に運用できることを願っています。 (禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語])

長文ですが、よく読むと私が持っている疑問が全て解けました。ただし、実際の行動としては

4. スパムメールへの具体的な対応策(今すぐ実施できる手順)

の部分だけあれば十分です。

結果、スパムに完全勝利!心の平穏が戻った夜

対策を施してから、一通もスパムが届かなくなりました

reCAPTCHA・Akismet・禁止用語リストという3つの防御策が、それぞれ違う角度からスパムをブロックしてくれたようです。

いち関係者の私

スパム対策などまったく自信のなかった私でも、手順に沿って進めるだけで「ちゃんとできた!」

よくある質問とその回答

Q1. reCAPTCHAのバッジが邪魔なんですが、消せますか?
reCAPTCHAのバッジはGoogleの仕様で基本的には非表示にできません。ただし、プライバシーポリシーと利用規約へのリンクを明示することでCSSで非表示にする方法もありますが、Googleのガイドライン違反にならないよう注意が必要です。
Q2. スパムが来なくなったけど、お問い合わせが本当に届いているか不安です。
対策をしたあとは「正常な送信までブロックしてないか」が心配になりますよね。Flamingoなどの送信ログ管理プラグインを導入しておけば、ちゃんと届いているか確認できるので、安心して運用できますよ。
Q3. スパム対策のためにフォームを削除するのはアリですか?
一時的な対応としては有効ですが、長期的にはあまりおすすめできません。お問い合わせフォームは読者との貴重な接点なので、フォームは残しつつ適切な対策で守るのがベストです。
Q4. 問い合わせフォームに画像認証をつけたいのですが可能ですか?
はい、可能です。reCAPTCHA v2を導入すれば、チェックボックス形式の画像認証が使えます。v3よりもややユーザーの操作が増えますが、確実にスパムを弾きたい場合に有効です。
Q5. セキュリティプラグインとスパム対策プラグインは別に入れる必要がありますか?
はい、それぞれの役割が異なるため、両方を併用するのが効果的です。セキュリティ系はサイト全体の防御、スパム対策系はフォームまわりの迷惑行為に特化しています。
Q6. 英語のスパムが多いのですが、日本語限定にすることはできますか?
できます。フォームの案内文に「※日本語でご記入ください」と明記したり、JavaScriptやプラグインで「日本語を含まない投稿をブロック」する設定も可能です。心理的にも効果があります。
Q7. スパムを通報することで今後の対策に活かせることはありますか?
はい、Akismetなどのサービスはスパムの情報を共有・学習して全体の精度を高めています。スパム判定された内容は自動的に学習に使われるため、個人での通報は不要でも役に立っています。
Q8. フォームを2つ以上使っている場合、対策はそれぞれに必要ですか?
はい、それぞれのフォームに対して対策を行う必要があります。特にreCAPTCHAやHoneypotは、各フォームごとに設定タグを入れる必要があるので、1つだけ対策して安心しないようにしましょう。
Q9. ChatGPTのDeepResearchって無料で使えますか?
ChatGPTのDeepResearch機能は、無料プランでもある程度使えます。ただし、Web検索の精度や情報の深さを求める場合は、有料プランのGPT-4を利用したほうが効果的です。どちらでも相談には乗ってくれるので、まずは無料で試すのもおすすめです。
Q10. スパム対策をしたらサイトが重くなった気がします。これは普通ですか?
基本的なスパム対策プラグインであれば、サイト速度への影響はごくわずかです。ただし、複数の重たいプラグインを同時に使っていると影響が出ることもあるので、必要なものだけを絞りましょう。

まとめ

  • スパムメールはお問い合わせフォームを設置した瞬間から世界中のBotに狙われるため、何の対策もしないままだと急に増えることがあります。
  • 私が実際に効果を感じたスパム対策は、reCAPTCHA・Akismet・禁止用語リストという、初心者でも扱いやすい3つの方法です。
  • 各プラグインの設定は、ChatGPTのDeepResearchに丁寧に教えてもらいながら進めることで、迷うことなくスムーズに完了できました。
  • スパムが届かなくなったことで「また安心してブログを書こう」という気持ちが戻り、発信する楽しさを取り戻すことができました。
  • スパム対策は難しく考えなくても大丈夫なので、まずはこの記事の通りにマネしてやってみることから始めてみてください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次