ブログのお問い合わせスパム対策手順!ContactForm7の条件分岐と合言葉設定で解決【WordPress】

※本記事はアフィリエイト広告を含みます。

ブログのお問い合わせスパム対策手順!ContactForm7の条件分岐と合言葉設定で解決【WordPress】
  • お問い合わせフォームからの営業スパムが多くて困っている
  • 画像認証やCAPTCHAを導入しても手作業の営業メールが届く
  • スパムメールの確認や返信に無駄な時間とストレスを感じるている

このような迷惑な営業のお問い合わせに、心底うんざりしていませんか?

お問い合わせフォームから届く大量の営業スパムメールは、ブログ管理者の貴重な時間と集中力を削ぐ深刻な問題です

実は私、迷惑な問い合わせに悩んでいましたが、最適解に辿り着いたのでシェアしようと思いこの記事を書いています。

本記事では、ContactForm7の条件分岐機能、最低文字数制限、プライバシーポリシー内の合言葉の設置等を連動させて、スパムメールを遮断する設定手順を解説いたします

本記事を読むことで、手作業によるコピペ営業も物理的・心理的に遮断し、お問い合わせ対応の負担を軽減できます

結論として、ブログのお問い合わせスパム対策には、条件分岐による入力負荷の強化とプライバシーポリシー内の合言葉検証を組み合わせたフォーム改修が有効です

私はこれで迷惑な問い合わせが一切来なくなりました。

ブログのお問い合わせスパム対策として効果的なContactForm7の”高摩擦”フォーム設計と作成手順

まずは、対策として何をするのかどういう手順なのか、をお伝えします。

お問い合わせフォームからのスパムを物理的に阻止するには、入力者に対して高い作業負荷(高摩擦)を強いるフォーム構造への改修が必要という結論にいたりました。

後ほど詳しく解説いたしますが、まずは導入手順からお伝えいたします。

ContactForm7の拡張機能を組み合わせることで、定型文の貼り付けや機械的な入力を一切受け付けない環境を構築できます。↓↓

条件分岐プラグインを活用して選択項目に応じた必須フォームを動的表示する手順

ContactForm7に条件分岐できるプラグイン、【Conditional Fields for Contact Form 7】を追加導入します。

プラグインの追加から「Conditional Fields for Contact Form 7」を検索して今すぐインストールをクリックしてください。

お問い合わせフォームの初期選択肢に応じて、直下の入力項目を切り替える設定が可能になります

以下のフォームコードをコピーし、Contact Form 7の編集画面にそのまま貼り付けて使用してください。

なお、コード内の「メインサイト」や「サブサイト」といった名称、および選択肢の文言は、運営するブログ名や設定に合わせて適宜変更して使用してください。

【コード例】Contact Form 7 フォーム編集画面用コード

<div class="form-group">
【お問い合わせ内容 (必須)】
[radio radio-605 use_label_element default:1 "仕事の依頼・機材提供の相談" "記事執筆・寄稿の相談" "WordPress・インフラ構築の相談" "データの誤り・権利に関する指摘" "その他"]
</div>

<div class="form-group">
■お問い合わせの対象サイト (必須)
[select* menu-site include_blank "メインサイト(特化ブログ)" "サブサイト(趣味ブログ)" "その他・総合"]
</div>

[group group-mainsite clear_on_hide]
<div class="form-group">
<label> ■対象記事のURL (必須)
    [url* mainsite-url] </label>
</div>
<div class="form-group">
<label> ■どの記事のどの部分(見出しや内容)についての提案ですか? (必須)
    [text* mainsite-heading] </label>
</div>
<div class="form-group">
<label> ■この提案が当ブログにとってどうプラスになるのか、具体的に教えてください (200文字以上必須)
    [textarea* mainsite-reason minlength:200] </label>
</div>
[/group]

[group group-subsite clear_on_hide]
<div class="form-group">
<label> ■対象記事のURL (必須)
    [url* subsite-url] </label>
</div>
<div class="form-group">
<label> ■どの記事のどの部分(解説や写真など)についての提案ですか? (必須)
    [text* subsite-detail] </label>
</div>
<div class="form-group">
<label> ■当ブログの趣旨にどう合致しているのか、具体的に教えてください (200文字以上必須)
    [textarea* subsite-reason minlength:200] </label>
</div>
[/group]

[group group-other clear_on_hide]
<div class="form-group">
<label> ■総合窓口を選んだ理由と、当ブログにとってのメリットを教えてください (200文字以上必須)
    [textarea* other-reason minlength:200] </label>
</div>
[/group]

<div class="form-group">
<label> ■氏名 (必須)
    [text* your-name] </label>
</div>

<div class="form-group">
<label> ■メールアドレス (必須)
    [email* your-email] </label>
</div>

<div class="form-group">
<label> ■題名 (必須)
    [text* your-subject] </label>
</div>

<div class="form-group">
<label> ■メッセージ本文 (任意・補足事項)
    [textarea your-message] </label>
</div>

<div class="form-group">
<label> ■スパム防止クイズ (必須)
    [quiz quiz-password "プライバシーポリシー第9項の指示に従ってパスワードを入力してください|sample-pass"] </label>
</div>

<div class="form-group">
    [acceptance acceptance-penalty] プライバシーポリシー第9項(営業提案の無断公開リスク等)の内容に同意します
</div>

[submit "入力内容を確認して送信"]

フォームコードの設定後、Conditional Fieldsプラグインの設定画面(条件ルールタブ)を開き、以下の条件指定構文を追加設定します。

設定場所は、プラグインを有効にするとContact Form 7で作成したお問い合わせのタブに「条件付きフィールド」が出現します。

選択肢の名称を変更した場合は、構文内のダブルクォーテーションで囲まれた文字列も同じ表記に合わせて打ち換えます。

【コード例】Conditional Fields 条件ルール構文

show [group-mainsite] if [menu-site] equals "メインサイト(特化ブログ)"
show [group-subsite] if [menu-site] equals "サブサイト(趣味ブログ)"
show [group-other] if [menu-site] equals "その他・総合"

選択肢ごとに個別の必須項目を動的に表示させることで、定型文を使い回す迷惑営業業者の送信作業を阻止することができます。

解説:最低文字数制限を設定してコピペ文面の送信を阻止する方法(minlength属性について)

ContactForm7のフォームタグ内に、minlength属性を記述しております。これにより入力欄へ最低200文字以上の記入をしなければ送信できないように強制しております

お問い合わせの送信内容の詳細を正しく受け取る設定について

管理者が送信内容を正しく受信できるよう、Contact Form 7のメールタブ内にあるメッセージ本文欄へ以下のテンプレートを貼り付けて設定してください。

【コード例】Contact Form 7 メール設定用テンプレート

差出人: [your-name] <[your-email]>
題名: [your-subject]

■お問い合わせ種別:
[radio-605]

■お問い合わせの対象サイト:
[menu-site]

[mainsite-url][mainsite-heading][mainsite-reason]-- 【メインサイトに関する入力内容】 --
記事URL: [mainsite-url]
対象箇所: [mainsite-heading]
提案のメリット:
[mainsite-reason]
[/mainsite-url][/mainsite-heading][/mainsite-reason]

[subsite-url][subsite-detail][subsite-reason]-- 【サブサイトに関する入力内容】 --
記事URL: [subsite-url]
対象箇所: [subsite-detail]
ブログ趣旨との合致理由:
[subsite-reason]
[/subsite-url][/subsite-detail][/subsite-reason]

[other-reason]-- 【その他・総合に関する入力内容】 --
総合選択理由・メリット:
[other-reason]
[/other-reason]

-- 【補足メッセージ本文】 --
[your-message]

-- 
このメールは [_site_title] ([_site_url]) のお問い合わせフォームから送信されました

先ほど解説しました通り、テキストエリアの必須設定に「minlength:200」を追加することで、短文や定型文の貼り付けでは送信ボタンが機能しない状態を形成することが可能です。

スパム業者は短時間で効率よく営業メールを送信したいため、200文字以上の具体的なオリジナル文章作成を求められると送信を諦めることでしょう

摩擦を強くすると、”真っ当な方”からの問い合わせが減る?

摩擦を強くする、つまり入力項目を増やしたり、厳しい条件を強いることで『”きちんとした方”や”真っ当な業者様”からの問い合わせが減るのでは?』という疑問を持たれたかもしれません。

私自身も、その考えが過ぎりましたが、そもそもブログ運営を10年以上経験してきて、わかったことがあり、その経験を踏まえ断言します。

真っ当な方や業者様は、きちんとプライバシーポリシーやプロフィールを確認し、項目云々の量や質に関係なくお問い合わせをしてくれます。

なお、お問い合わせを送ってくるのは2タイプしかいません。

  • 真っ当な方で、プライバシーポリシーや運営者情報をよく読む人(権利侵害などもこちら)
  • 迷惑業者、営業目的、スパム、嫌がらせ等など

問い合わせは、切羽詰まっていたり(悩みがある)、もしくは重要な案件等であるので、摩擦を強くすることで問い合わせが減るというのはあまりないと言い切れます。

なんなら、送ってこないということはそこまでの熱意がない、もしくはブログとしてのコンテンツの質が低いということの現れです。

良い営業だったとして、項目の量や質で問い合わせをしてこないという場合は、”そのどちらか”ですので、ブログとしてのコンテンツの質を高めなければいけないという結論に私はいたりました。

ブログのお問い合わせスパム対策を強化するプライバシーポリシーと合言葉トラップの設置手順

続きまして、フォーム側の物理的な制限に加え、プライバシーポリシーと連携した多重のトラップを設置することで防壁の強度としての摩擦係数が最大化されます

相手の心理的な隙を突く規定の記載とページの回遊を強制する設計により、悪質な営業送信の意欲を完全に削ぎ落とします。

つまり、プライバシーポリシーページとプロフィールページを経由(確認)しないと、送信するためのパスがわからず、その時点で送信できずに詰むという「隙を生じぬ二段構え」の対応です。

プライバシーポリシー第9項に無断営業のコンテンツ公開リスクと合言葉指示を明記する設定

プライバシーポリシーページに第9項として営業目的のお問い合わせに関する規定を追記します。

WordPressの固定ページで作成しているプライバシーポリシーの編集画面を開き、本文末尾へ以下の文面を追加してください。

【文章例】プライバシーポリシー追記用テキスト(第9項)

9. 営業目的のお問い合わせについて
当サイトに対する法人営業、協業提案、およびそれらに類するスパム行為は固くお断りいたします。
事前の許可なく営業目的の送信を行った場合、送信された文面、企業名等の情報は、当サイトやSNS等において無価値なスパム事例のコンテンツとして事前の予告なく公開・解説されることに同意したものとみなします。 また、自動送信ツールによるスパムを防止するため、お問い合わせフォームのスパム防止クイズにはプロフィールページに記載してある8文字を入力してください。

事前許可のない営業送信が行われた場合、送信文面や企業名をスパム事例コンテンツとして無断公開する旨を明記しております。

無断公開リスクの提示と合言葉指示の明記により、相手に心理的牽制とページ移動の確認作業を強制できます

プロフィールページへ合言葉を隔離配置して2段階の回遊トラップを完成させる方法

お問い合わせフォーム上のクイズ欄には、「プライバシーポリシー第9項の指示に従ってパスワードを入力してください」とだけ記載します。

これでプライバシーポリシーを見させるように促します。

次に、プロフィールページの本文末尾へ以下の合言葉テキストを記述してください。

文字や設定するパスワード(例:sample-passの部分)は、フォーム側のクイズ設定で指定した文字列と完全に一致させて設置します。

【文章例】プロフィールページ配置用合言葉テキスト

お問い合わせフォーム用パスワード:sample-pass

コンタクトフォーム7の「フォーム」タブで、先程設定したスパム防止クイズのパスと同じかを念のため確認します。(送信出来るかのテストは行う必要あり)

プライバシーポリシーにアクセスした読者は、記載された指示に従ってプロフィールページへ移動し、指定の合言葉文字列を確認する流れとなります。

パスワードの所在を別ページへ物理的に隔離することで、フォーム画面単体の自動解析を無効化することが可能です。

2段階のページ回遊を求める設計は、機械的処理と手作業コピペの双方を遮断する強固な仕組みとなります

なお、当たり前ですけど、パスワードを設定したら(コンタクトフォーム7のフォーム)ハードコーディングはされておりません。この辺りはきっちりしています!

暗号化がされており、ちょっとやそっとじゃ解析は難しいでしょう。まぁ解析したところで、何の旨味もなく徒労に終わりますけどね(笑)

ブログのお問い合わせスパム対策で一般的なCAPTCHAが不十分な理由は手動コピペ業者に対応できない点にあります

ここからはスパム対策について解説させていただきます。

一般的な画像認証(CAPTCHA)を導入してもお問い合わせスパムが止まらない理由は、プログラムによる自動送信と、人間による手動コピペ送信という2種類の異なる攻撃手法が存在するためです。

自営、または自社のフォームで発生している被害の種別を正しく理解しなければ、適切な防衛施策はできません。

自動送信ボットと手動コピペ営業スパムの違いと被害の実態

お問い合わせフォームに対するスパム攻撃には、プログラムによる自動送信ボットと、人間が手作業で送信するコピペ営業の2種類が存在します。

自動送信ボットは短時間に大量のメールを送りつけ、サーバーに負荷をかける仕組みです。

手動コピペ営業は実際の人間がフォームに入力して送信するため、画像認証フィルターを容易に通過します

手動送信による営業メールは、管理者の目視確認作業を強制し、貴重な稼働時間を奪う悪質な問題と言えます。

単純な画像認証やCAPTCHAでは手動送信スパムを防げない理由

CAPTCHAやreCAPTCHAは、人間とプログラムの挙動を区別するためのセキュリティ技術です。

プログラムの自動入力を遮断する効果は高いものの、実際の人間が入力操作を行う手動スパムには対応できません

そして、手動送信の業者は、画面上の画像認証を自力でクリアして送信ボタンを押します

画像認証を導入してもスパム被害が止まらない原因は、人間による手作業の送信アプローチに対応できていない点にあります

ブログのお問い合わせスパム対策を完了させて管理業務の負担を軽減させる方法のまとめ

お問い合わせスパムの完全遮断は、日々の管理業務にかかる無駄な稼働時間とストレスをゼロにするための最優先タスクと言っても過言じゃありません!!

なにより、記事を見ずに「御社の素晴らしい記事を拝見いたしました~」とか「素晴らしいブログを運営しており~」とか言われてもかなりムカつくでしょう?(^_^;)

高摩擦フォームとプライバシーポリシーの連携により、健全なWebサイト運用を取り戻すことができるので、当記事を参考にして、直ぐに対応することをオススメいたします!

高摩擦フォームとプライバシーポリシー連携によるスパム完全遮断のチェックリスト

  • フォーム改修:Contact Form 7とConditional Fieldsを導入し選択肢ごとの動的必須項目を設定する
  • 文字数制限:テキストエリアに200文字以上の最低制限(minlength:200)を記述する
  • 規約追記:プライバシーポリシー第9項に無断営業の公開リスクとプロフィール誘導指示を明記する
  • 合言葉隔離:プロフィールページに設定したパスワードを設置し二重の回遊トラップを完成させる

自動ボットを文字数制限と条件分岐で物理的に弾き、手作業の業者には複数ページの回遊と長文作成を強いることで送信を諦めさせます。

設定を完了させることで、日々のスパム確認にかかる無駄な時間と精神的ストレスが完全に解消可能です

ノイズ対応の負担をゼロにし、本来注力すべきコンテンツ制作やブログ運用に集中できる環境を整えてください。

あとがき:スパムってどんな問い合わせ?

上記のまとめで終わっても良かったのですが、ここ最近で来た迷惑問い合わせがあまりにも稚拙だったので、本来そういうことは行いませんが、注意喚起も兼ねてここに置いておきます。

以下のようなゴミな迷惑になる幼稚な問い合わせですので直ぐに対処してください。

ケース1:佐藤と名乗る、吉田美月からの問い合わせ

名前は吉田美月なのに、佐藤と名乗る詰めの甘さが出てますね。

ケース2:佐藤瑞穂からの問い合わせ、コピペ対応

ケース1での佐藤はこれこのまま流用したんでしょうね(笑)

ケース3:何言ってんのかわかんない

ほんと、何言ってんのかわかんない(笑)

ケース4:これも何言ってるかわからない

当ブログのことわかって言ってんなら、ウジか何かわいてるのでは(^_^;)

以上です、参考にしていただければ幸いですm(_ _)m

それでは最後までご覧いただきありがとうございました。