このガイドでは、Contact Form 7を使った新規のWordPressサイトを、「保護なし」の状態から多層の保護へと整えていきます。すべて2026年10月7日に、SilentShield 2.15.14、Contact Form 7 6.2、WordPress 7.1.2で検証しました。ここで説明するレイヤーはお客様ご自身のサーバー上で動作します。オプションのSilentShield APIについてはWordPressガイドで説明しています。
インストール直後は何も保護されていません

プラグインを有効化すると動作は始まりますが、どのフォームプラグインもまだ有効になっていません。ダッシュボードにもはっきり表示されます。「No form is protected yet」(保護されているフォームはまだありません)という表示と、サイトで見つかったフォームプラグインの一覧です。フォームプラグインを有効にするまで、そのフォームにはCAPTCHAフィールドが表示されず、何もチェックされません。
以下の設定はすべて、WordPress管理画面のSilentShieldメニューにあります。
ステップ1:CAPTCHA方式を選ぶ

SilentShield → Protection Settingsを開きます。方式は3種類あります。
- Honeypot(デフォルト、非表示)。画面外に罠のフィールドを置きます。訪問者の目には触れませんが、見つけたフィールドをすべて埋めるボットは入力してしまいます。Honeypotは課題ではありません。ページを読み取って罠を避けるボットは通過します。
- 計算問題。 訪問者が簡単な計算問題(足し算、引き算、掛け算)を解きます。テキストとして表示されるため、実際のブラウザーを操作するボットなら読み取れます。
- 画像CAPTCHA。 歪んだ文字を訪問者が入力します。サーバーにPHPのGDライブラリが必要で、訪問者にとって最も手間のかかる方式です。
コンバージョンを最優先するなら、まずHoneypotから始めてください。それでもスパムが届く場合は、計算問題または画像CAPTCHAに切り替えます。テンプレートを選び、必要に応じてラベルを調整して、Saveをクリックします。
ステップ2:フォームを有効にする

SilentShield → Formsを開きます。フォームプラグインごとにスイッチがあり、横のバッジがそのプラグインをサイトで検出したかどうかを示します。Contact Form 7をオンにすると、バッジが「Disabled」から「Fields detected」に変わります。このスイッチは即座に保存されるため、保存ボタンはありません。
個別のフォームに専用の設定が必要な場合は、連携の下にあるそのフォームをクリックします。設定は3つのレベル(グローバル、連携、個別のフォーム)で適用され、下位のレベルが上位のレベルを上書きします。
フォームプラグインごとのステップバイステップガイド:Avada Forms、Elementor Forms、WPForms、WooCommerceのチェックアウト。
ステップ3:検出レイヤーを追加する

Protection Settingsの下の方では、各レイヤーに専用のスイッチがあります。インストール直後の状態は次のとおりです。
- JavaScript検出(オン)。 JavaScriptを実行していないクライアントからの送信をブロックします。たとえば、フォームのアドレスに直接投稿するスクリプトなどです。
- ブラウザー検出(オン)。 リクエストに有効なユーザーエージェントが含まれているかを確認します。
- タイマー保護(オフ)。 ページの読み込みから最小時間より早く届いた送信を拒否します。デフォルトの最小時間は500ミリ秒です。
- 多重送信防止(オフ)。 同じCAPTCHAセッションが2回以上送信されるのを防ぎます。
- Gibberish Detection(オン、「Monitor only」)。 「dQgJlwEhfxaLZSKYLy」のような、ランダムな文字でできたテキストを検出します。モニターモードでは、拒否していたはずの内容を記録するだけで、何もブロックしません。しばらく結果を観察してから、モードを「Block」に切り替えてください。
有効なレイヤーのいずれかが問題と判定した時点で、その送信は拒否されます。
ステップ4:しつこいスパムにはレート制限とコンテンツルールを

SilentShield → Advanced Settingsを開きます。ここにある項目はすべて、デフォルトではオフです。
- IPベースのレート制限。 5分以内に3回失敗すると、そのアドレスは1時間ブロックされます(デフォルト値で、すべて調整できます)。アドレスはソルト付きハッシュとして保存されます。
- コンテンツルール。 メッセージ内のリンク数の上限、BBCodeリンク(
[url=…])のブロック、単語のブラックリストです。ブラックリストはWordPress標準のリストで、「設定 → ディスカッション」の「Disallowed Comment Keys」(コメントの禁止キーワード)にあたります。どちらで編集しても同じ効果があります。 - IPブラックリスト。 常にブロックしたいアドレスを、1行に1つずつ入力します。
ステップ5:管理者ではなく訪問者としてテストする

管理者とログイン中のユーザーは、デフォルトですべてのチェックをスキップします(同じページのホワイトリスト)。そのため、ログインしたままテストしても何も証明できません。代わりに、プライベートブラウジングウィンドウでフォームを開いてください。
- 間違ったCAPTCHAの答えで送信します。送信はブロックされるはずです。Contact Form 7は、その理由を応答ボックスに表示します。ここでは「Captcha check」です。
- フォームを再読み込みして、正しい答えで送信します。今度は通過するはずです。
どの設定がどのスパムを止めるか
- ブラウザーを使わず直接送信するスクリプト:JavaScript検出とブラウザー検出。
- すべてのフィールドを埋めるボット:Honeypot。
- 数ミリ秒でフォームを入力して送信するスクリプト:タイマー保護。
- ランダムな文字のダミーテキスト:Gibberish Detection。
- リンクスパム:リンク数の上限、BBCodeのブロック、単語のブラックリスト。
- 同じアドレスが何度も試行する:IPベースのレート制限。
限界
- 人が手で入力するスパムは、どの設定でも止められません。
- 実際のブラウザーを操作するボットは、クライアント側のチェックを通過できます。コンテンツルールとGibberish Detectionは、代わりに入力された内容を調べます。このケースに対応するレイヤーが行動分析です。
- ブラウザーでJavaScriptが無効な場合、保護されたフォームへの送信は拒否されます。