WordPressの問い合わせフォームを設計する|スパムを抑えて連絡窓口を設ける

当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

問い合わせ窓口をどのように提供するか

WordPressサイトで問い合わせを受け付ける方法は、フォームだけではない。メールアドレスを掲載する方法や外部フォームサービスを利用する方法もあり、Web上に問い合わせ窓口を設けない選択もできる。

問い合わせ窓口の提供方法は、大きく次の4つに分けられる。

  1. メールアドレスを掲載する
  2. WordPressプラグインで問い合わせフォームを設置する
  3. 外部フォームサービスを利用する
  4. Web上の問い合わせ窓口を設けない

受付方法によって、利用者の使いやすさだけでなく、問い合わせの管理場所やスパムへの対処方法も変わる。

メールアドレスを掲載する

メールアドレスをWebサイトへ掲載し、利用者自身のメール環境から連絡してもらう方法である。

WordPressにフォーム機能を追加する必要がなく、問い合わせも通常のメールと同じ環境で管理できる。一方、利用者はメールアプリやWebメールを開き、宛先や件名、本文を自分で作成しなければならない。

入力項目を指定したり、必要事項を必須にしたりすることも難しく、フォームと比べて問い合わせのハードルは高くなる。ただし、この手間は不要な問い合わせを減らす方向にも働くため、必ずしもデメリットだけではない。

スパム対策はメール側で

Webサイト上に掲載したメールアドレスがBotなどに収集されると、問い合わせフォームを経由せず直接スパムメールを送信される。

この経路には、WordPressへ導入したreCAPTCHAやTurnstileでは対処できない。そのため、迷惑メールフィルタや送信元判定など、利用しているメールサービスに備わる機能が主なスパム対策となる。

また、公開しているメールアドレスを変更すると、Webサイト上の掲載内容だけでなく、利用者が保存した連絡先などにも影響する。

WordPressプラグインで問い合わせフォームを設置する

WordPressにフォーム用プラグインを追加し、Webサイト内から問い合わせを受け付ける方法である。

利用者はメーラーを起動せず、その場で必要事項を入力して送信できる。送信元メールアドレスを必須にしない設計なら、自分のメールアドレスをサイト側へ伝えずに送信でき、メールアドレスを持たない利用者にも対応できる。

サイト側では、受付方法を一定の形式に揃えられ、統一した管理がしやすい。

  • 受付用メールアドレスを公開しなくてよい
  • 必要な入力項目だけを用意できる
  • 必須項目を指定できる
  • 決まった形式で問い合わせを受け取れる
  • 通知先を変更しても公開しているフォームを維持できる
  • フォームにスパム対策を組み込める

一方、フォーム用プラグインがWordPressの管理対象に加わるため、更新や設定の管理も必要になる。

問い合わせ内容の扱いはプラグインによって異なり、WordPress内に保存するものもあれば、メール通知だけを行うものもある。問い合わせをどこで管理するかまで確認してフォームを選ぶ。

問い合わせフォームにスパム対策を追加する

問い合わせフォームを公開すると、利用者だけでなくBotによる自動送信の対象にもなる。

ただし、公開したメールアドレスへ直接送信されるメールとは異なり、フォームでは受付経路にスパム対策を組み込める。

スパムをどの段階で判定するか

問い合わせフォームのスパム対策は、大きく二つの考え方に分けられる。

問い合わせフォームへのスパム対策

送信しようとするアクセス
        │
        ├─ Botかを判定する
        │   reCAPTCHA
        │   Cloudflare Turnstile
        │
        └─ 送信内容などからスパムを判定する
            Akismetなど

reCAPTCHAやTurnstileはアクセスがBotかどうかを判定し、自動送信を入口で抑える。一方、Akismetなどは送信内容などを使ってスパムを判定する。

判定方法が異なるため、どちらか一方ではなく、実際のスパム量や使用するフォームの対応状況次第では両方を組み合わせる方法もある。

Akismet ー スパムの判定

Akismetは、送信された内容などを基にスパムを判定するサービスである。

問い合わせフォームがAkismetとの連携に対応していれば、フォームから送られた内容を判定し、不要な問い合わせを振り分けられる。

ただし、対応状況や連携方法はフォームによって異なる。AkismetをWordPressへ導入しただけですべての問い合わせフォームが保護されるわけではないため、使用するフォーム側の仕様も確認する。

Google reCAPTCHA ー Bot送信の抑制

Google reCAPTCHAは、フォームへのアクセスが人間かBotかを判定する仕組みである。

WordPressで利用する場合は、Google側で対象サイトを登録し、reCAPTCHAに対応したフォームやプラグインと連携する。

大まかな流れは次のようになる。

Google側でサイトを登録
        ↓
必要な情報を取得
        ↓
WordPress側へ設定
        ↓
問い合わせフォームと連携
        ↓
実際に送信して確認

既にreCAPTCHAを利用しているサイトや、使用するフォームがreCAPTCHAに対応している環境では、その仕組みを問い合わせフォームにも利用しやすい。

Cloudflare Turnstile ー Bot送信の抑制

Cloudflare Turnstileも、フォームへのアクセスがBotかどうかを判定する仕組みである。

WordPressで利用する場合は、Cloudflare側で対象サイトを登録し、発行されたSite KeyとSecret Keyを対応するフォームやプラグインへ設定する。

Cloudflare側でサイトを登録
        ↓
Site Key / Secret Keyを取得
        ↓
WordPress側へ設定
        ↓
問い合わせフォームと連携
        ↓
実際に送信して確認

Webサイト自体をCloudflare経由で配信していなくても利用でき、通常は画像を選択するといった操作を利用者へ求めずにBot判定を行う。

新たにBot対策を導入する小規模環境では、有力な選択肢となる。

スパム対策採用の判断基準

条件選択肢
既にreCAPTCHAを利用しているGoogle reCAPTCHA
利用するフォームがreCAPTCHAに対応しているGoogle reCAPTCHA
新たにBot対策を導入するCloudflare Turnstile
Bot判定だけではスパムを十分に抑えられないAkismetなどとの併用を検討

最初から複数の対策を重ねる必要はなく、管理しやすい構成から始めて実際のスパム量を確認しながら追加を判断する。

外部フォームサービスを利用する

問い合わせフォームをWordPress上に持たず、外部のフォームサービスを利用する方法もある。

利用者から見ればWordPressプラグインによるフォームと大きく変わらなくても、フォームの処理や問い合わせデータの管理をWordPressから分離できる。問い合わせ内容は外部サービスの管理画面で確認したり、メール通知として受け取ったりする形になる。サービスによってはNotionなどのツールと連携しより管理しやすい運用が行える。

WordPressにフォーム用プラグインを追加したくない場合や、問い合わせ管理をWordPressから分離したい場合には選択しやすい。

一方、問い合わせデータを外部サービスへ送信するため、保存場所や保存期間、プライバシー、利用料金などを確認する必要がある。サービスの仕様変更や終了についても、外部サービスを利用する以上は影響を受ける。また、プランによってはサービス名やリンクの表示が必要となり、サイトのデザインや導線に影響することもある。

Web上の問い合わせ窓口を設けない

すべてのサイトにメールアドレスや問い合わせフォームが必要なわけではなく、Web上で問い合わせを受け付けずに別の連絡手段へ誘導する方法もある。

  • 電話
  • FAX
  • LINEなどのSNS
  • 店舗や窓口での受付

例えば電話対応を中心とする店舗なら、問い合わせフォームを維持するより、営業時間と電話番号を案内する方が実際の運用に合うこともある。

問い合わせフォームを設置しないことと、問い合わせを受け付けないことは同じではない。サイトの用途に合わせて、必要な連絡経路を残せばよい。

問い合わせ方法を選ぶ

問い合わせ窓口は、利用者の使いやすさだけでなく、サイト側でどのように管理するかまで含めて選ぶとサービスレベルの維持と運用のしやすさを両立させやすい。

方法利用者側サイト側主なスパム対策
メールアドレス掲載メーラーなどを利用するメールで管理しやすいメールサービス側
WordPressプラグインWeb上で送信できる項目や受付方法を制御しやすいreCAPTCHA、Turnstile、Akismetなど
外部フォームWeb上で送信できるWordPressから管理を分離できる外部サービス側の機能
Web窓口なし別の連絡手段を利用するWeb上の受付管理が不要連絡手段による

問い合わせ件数が少なくメールでの管理が適しているなら、メールアドレスの掲載でも対応できる。入力項目を揃えたい、メールアドレスを公開したくない、受付経路へBot対策を組み込みたい場合にはWordPressプラグインによるフォームが向いている。

WordPress上に問い合わせ機能を持たせたくなければ外部フォームへ分離し、Web経由の受付が不要なら電話やSNSなど既存の連絡手段へ誘導する。

まとめ

WordPressサイトの問い合わせ窓口には、メールアドレスの掲載、WordPressプラグインによるフォーム、外部フォームサービスなど複数の提供方法がある。

WordPressプラグインでフォームを設置すると、必要な項目を指定して一定の形式で連絡を受け取れるほか、受付用メールアドレスを公開せず、フォームにスパム対策を組み込める。

フォームを利用する場合は、reCAPTCHAやTurnstileによるBot判定、Akismetなどによるスパム判定を必要に応じて利用する。

Web上の問い合わせ窓口が不要なら無理に設けず、電話やSNSなど、実際の運用に合った連絡手段へ誘導する。