はじめに
WordPressでWebサイトを運用する上で、避けて通れないのが「スパムコメント」や「お問い合わせフォームからのスパムメール(フォーム送信スパム)」の問題です。
これらは単なる迷惑行為にとどまらず、サイトの信頼性低下やサーバーリソースの枯渇、さらにはセキュリティリスクへと直結する重大な課題です。
本記事では、スパムが発生する構造的な原因を解説した上で、2025年12月現在の最新環境(Google reCAPTCHAの仕様変更や新技術)に対応した、具体的かつ恒久的な解決策を網羅的に提示します。
第1章:スパム攻撃のメカニズムと目的
対策を講じるためには、まず「誰が」「何のために」攻撃を行っているのかを理解する必要があります。
1.実行者はボット(Bot)
スパムの99%以上は、特定の個人が手動で送っているものではなく、プログラムされた「ボット(Bot)」による自動送信です。
これらのボットはインターネット上を巡回(クロール)し、WordPress特有の構造(wp-comments-post.php やフォームのHTML構造)を持つサイトを無差別に検出し、機械的にデータを送信します。
したがって、サイトの規模や知名度に関わらず、WordPressであるというだけで攻撃対象となります。
2.攻撃者の主な目的
彼らの目的は主に以下の3点に集約されます。
- SEOスパム(被リンクの獲得)
検索エンジンの評価を高めるため、自身の運営するサイト(違法薬物、アダルト、偽ブランド品、詐欺サイトなど)へのリンクをあなたのサイトを含む大量のサイトに設置しようとします。コメント欄は「リンクを設置できる場所」として標的にされます。 - フィッシングとマルウェアの拡散
コメントやメール内のURLをクリックさせることで、ウイルス感染や個人情報の窃取(フィッシング)を狙います。 - 攻撃の踏み台・リソース消耗
大量の通信を送りつけることでサーバーに負荷をかけたり、セキュリティの脆弱性を探るための偵察行為として行われる場合もあります。
第2章:WordPress本体設定による基礎的防衛
プラグインや外部ツールを導入する前に、まずはWordPress標準の設定を見直し、不要な侵入口を塞ぐことが重要です。
1.「ディスカッション」設定の最適化
管理画面の「設定」>「ディスカッション」は、コメントスパム対策の基本となります。
- 「新しい投稿へのコメントを許可」の無効化
コーポレートサイトやポートフォリオ、コンテンツマーケティングのブログ記事など、コメントによる交流を必要としないサイトであれば、このチェックを外すことが最も確実な対策です。物理的に投稿フォームを遮断します。
※注意:既存の記事(投稿済みの記事)には適用されないため、投稿一覧から一括編集で「コメントを許可しない」設定に変更する必要があります。 - 「新しい投稿に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」の無効化
現在、トラックバック機能のほとんどはスパムに悪用されています。SEO上のメリットもほぼ存在しないため、チェックを外すことを強く推奨します。 - 「コメントの手動承認を必須にする」の有効化
コメント機能を利用する場合は、必ず有効にしてください。管理者が承認しない限りサイト上に公開されないため、スパムの目的である「リンクの公開」を阻止でき、サイトの信頼性を守ることができます。
2.「コメントブロックリスト」の活用
同設定画面にある「コメントブロックリスト(旧ブラックリスト)」を活用することで、特定のキーワードを含むコメントを自動的にゴミ箱へ移動させることが可能です。
2025年時点で有効なブロックキーワード例(1行に1つ入力)
- viagra
- cialis
- bitcoin
- crypto
- investment
- forex
- sex
- porn
- dating
- partner
これらの英単語を登録することで、英語圏からの機械的なスパムの大半をフィルタリングできます。
また、日本語サイトであれば「ひらがなを含まないコメント」を弾くことが有効ですが、標準機能では正規表現が使えないため、後述するプラグインで対応します。
第3章:プラグインによる対策と商用ライセンスの注意点
Akismetは有名ですが、商用利用(アフィリエイトを含むブログ、企業サイト、店舗サイトなど)では有料契約(月額約1,000円〜)が必要です。
ライセンス違反を避けるため、商用利用が可能かつ無料の代替プラグインを選定することが重要です。
1.【推奨】Antispam Bee(アンチスパム・ビー)
商用利用であっても完全無料で利用できる、非常に信頼性の高いプラグインです。
- 特徴
広告表示なし、機能制限なし、GDPR(EU一般データ保護規則)準拠。 - 推奨設定
「特定の言語のみ許可する」
「日本語」を選択します。これにより、日本語が含まれないコメントを即座に削除できます。
「BBCodeをスパムと判定」
コメント欄での文字装飾コード(BBCode)はボットが多用するため、これをスパム判定します。
2.【国内向け】Throws SPAM Away
日本の開発者によるプラグインで、「日本語が含まれないコメントを無視する」というシンプルかつ強力な機能を持っています。
- 特徴
スパムと判定されたコメントをデータベースに保存せず、即座に破棄するため、データベースの肥大化を防ぐことができます。
第4章:お問い合わせフォーム(Contact Form 7)の完全対策
フォームスパム対策として長らく利用されてきたGoogle reCAPTCHAですが、2024年以降、無料枠の縮小や仕様変更が行われています。ここでは最新の最適解を提示します。
1.Google reCAPTCHAの基礎知識と「2025年問題」
reCAPTCHA(リキャプチャ)とは、Googleが提供する「アクセスしているのが人間かボットか」を判定するためのセキュリティシステムです。
【基礎】reCAPTCHA v2 と v3 の違い
- reCAPTCHA v2(チェックボックス版)
「私はロボットではありません」にチェックを入れるタイプです。怪しいと判断されると、信号機や横断歩道の写真を選ばせるパズルが表示されます。確実性は高いですが、ユーザーにとっては「面倒くさい」と感じられるデメリットがあります。 - reCAPTCHA v3(インビジブル版・最新主流)
ユーザーに何もさせません。サイト内でのマウスの動きや行動パターンをAIが分析し、「人間らしさ」をスコア(0.0〜1.0)で判定します。
メリット: ユーザーの手間(フリクション)がゼロで、デザインも損ないません。
デメリット: 判定基準がブラックボックスであり、誤判定の調整が難しい場合があります。
【重要】「2025年問題」とは何か?
これまで「無料で手軽」だったreCAPTCHAですが、2024年から2025年にかけて以下の大きな変更(実質的な有料化・厳格化)が行われています。
- 無料枠の激減(100万回 → 1万回へ)
以前は月間100万回まで無料でしたが、新プラン(reCAPTCHA Enterprise)の無料枠は月間1万回(アセスメント)に縮小されました。 - 管理画面の強制移行とクレカ登録
従来の管理画面(v2 Classic)は廃止に向かっており、2025年末までにGoogle Cloud Platform(GCP)への移行が必須となります。
2.【推奨】Cloudflare Turnstile(ターン・スタイル)への切り替え
上記のreCAPTCHAの「2025年問題」を回避するためのベストアンサーが、Cloudflare Turnstile です。
メリット
- ユーザー体験
「信号機を選んでください」といった画像認証が不要。ほぼ自動でボットを判定します。 - コスト
reCAPTCHAのような厳しい制限がなく、無料で利用可能です。 - プライバシー: 広告目的のデータ利用を行わないため、GDPRなどの規制にも強いです。
Contact Form 7(v6.1以降)での導入手順
Contact Form 7はバージョン6.1からTurnstileに標準対応しました。追加のプラグインは不要です。
- Cloudflareでの登録
Cloudflare公式サイトでアカウントを作成し、「Turnstile」メニューからサイトを登録。「サイトキー」と「シークレットキー」を取得します。 - WordPress設定
管理画面「お問い合わせ」>「インテグレーション」>「Cloudflare Turnstile」を選択し、キーを入力して「設定を保存」します。 - フォームへの設置
フォームの編集画面で、送信ボタンの直前などに[turnstile]というショートコードを記述するか、自動挿入の設定を確認します。
3.「ハニーポット」による補助対策
外部サービスへの登録が手間である場合、またはTurnstileと併用して防御力を高めたい場合は、「ハニーポット」が有効です。これは人間には見えない隠しフィールドをフォームに設置し、ボットがそこに入力した場合にスパムと判定する仕組みです。
- 推奨プラグイン: WP Armour (Honeypot Anti Spam)
インストールして有効化するだけで、Contact Form 7、コメント欄、登録フォームなどに自動的にハニーポットを適用します。設定不要で非常に軽量です。
第5章:サーバー側(ホスティング)での遮断設定
WordPressに到達する前に、サーバーの入り口で不正アクセスを遮断することが、最も負荷が少なく効果的です。日本の主要レンタルサーバーは優秀なセキュリティ機能を備えています。
1.WAF(Web Application Firewall)の設定
WAFはWebサイトへの通信を解析し、攻撃パターン(SQLインジェクションやスパム投稿など)を検知・遮断します。
- 設定方法
各レンタルサーバーの管理画面(コントロールパネル)から「WAF」または「Webアプリケーションファイアウォール」を「ON」または「利用する」に設定します。 - 注意点
記事の保存時などに誤検知される場合があるため、その際は一時的にOFFにするか、除外設定を行います。
2.国外IPアドレスのアクセス制限
スパムボットの大多数は海外のIPアドレスからアクセスしてきます。
- エックスサーバー
「WordPressセキュリティ設定」>「コメント・トラックバック制限」をONにします。これにより、国外IPからのコメント投稿とトラックバックを全て遮断できます。非常に効果的です。 - ConoHa WING
「WordPressセキュリティ」>「海外アクセス制限」>「コメント制限」をONにします。 - ロリポップ!
「海外アタックガード」が標準で有効になっています。wp-comments-post.php への海外アクセスをブロックします。 - さくらのレンタルサーバ
「国外IPアドレスフィルタ」機能を使用します。
3.mixhostなどcPanel採用サーバーの場合
mixhostなどのcPanelを採用しているサーバーでは、「Imunify360」という高度なセキュリティシステムが導入されている場合があります。
これはAIを用いてマルウェアやボットを検知するため、特別な設定をしなくても強力に保護されます。cPanel内から設定を確認することをお勧めします。
第6章:完全解決のためのアクションプラン
状況に応じた最適な対策手順をまとめました。
ケースA:コストをかけずに一般的な対策を行いたい(個人・中小規模)
- サーバー設定
利用中のサーバー管理画面で「WAF」と「国外IPからのコメント制限」を有効化する。 - コメント対策
プラグイン「Antispam Bee」を導入し、「日本語のみ許可」に設定。 - フォーム対策
プラグイン「WP Armour」を導入(ハニーポット)。
ケースB:企業サイト・商用サイト(信頼性と確実性重視)
- コメント設定
記事へのコメント機能自体を「ディスカッション設定」で無効化する。 - フォーム対策
Cloudflare Turnstileのアカウントを取得し、Contact Form 7のインテグレーション機能で設定する。これにより、ユーザーに負担をかけずに最高レベルのセキュリティを確保する。 - サーバー設定
「WAF」は必須。海外との取引がある場合は、アクセス制限の設定範囲に注意する(お問い合わせフォームのみ制限するなど)。
ケースC:手動による営業メールへの対応
ボットではなく、人間が手動で送ってくる「営業・売り込みメール」は、技術的なスパム対策(reCAPTCHAやハニーポット)では防げません。
これらは「コメントブロックリスト」に、売り込みによく使われる特定のキーワード(例:「協業」「未公開株」「代行」など)を登録し、Contact Form 7の「禁止用語設定」と連携させることでフィルタリングする必要があります。
最後に
スパム攻撃は技術の進化とともに巧妙化していますが、防御側の技術もまた進化しています。
reCAPTCHAからTurnstileへの移行や、サーバー側のセキュリティ機能の活用が鍵となります。
これらの設定を適切に行うことで、スパムの脅威をほぼゼロに抑えることが可能です。

