WordPressのコメント機能を設計する|スパムと不要な投稿を抑える

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

コメント機能をどのように提供するか

WordPressには標準でコメント機能が用意されているが、そのまま公開するとスパム投稿の対象となる。ここではコメント機能をどのように扱うか整理していく。

コメント機能の提供方法は、大きく次の4つに分けられる。

  1. 標準機能のまま
  2. 標準機能+スパム対策
  3. 外部サービスの利用
  4. コメント機能の閉鎖

標準機能のまま

WordPress標準コメントをスパム対策なしで公開すると、Botによるスパム投稿の対象となる。

当サイトの検証環境では、外部サイトからリンクしていない新規WordPressサイトでも、公開から1週間以内にスパムコメントが投稿された。

検索流入や読者からのコメントがほとんどない段階でも、コメントフォームはBotから発見される。コメントを公開するならスパム対策までを一つの機能として考え、標準コメントだけでの運用は避ける。

標準機能+スパム対策

WordPress標準コメントを利用する場合は、コメントの受付方法を維持したままスパム対策を追加できる。

主な方法には、Akismetによるスパム判定と、Google reCAPTCHAやCloudflare TurnstileによるBot対策がある。Akismetはコメントの内容などからスパムを判定し、reCAPTCHAやTurnstileはフォームを操作するアクセスがBotかどうかを判定する。

Akismetでスパムコメントを判定する

Akismetは、WordPressで広く利用されているスパム対策サービスである。

投稿されたコメントを判定し、スパムと判断したものを振り分ける。WordPressとの親和性が高く、導入工程も少ない。

非商用の個人ブログで、WordPress標準コメントへ簡単にスパム対策を追加したい場合には有力な選択肢となる。

一方、商用サイトでは利用条件が異なる。広告やアフィリエイトを掲載するサイトを含め、無料利用の条件に該当するかを確認して使用する必要がある。

Google reCAPTCHAでBotによる投稿を抑える

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

コメントフォームへ組み込むことで、自動化されたBotによる投稿を入口で抑える。

WordPressで利用するには、reCAPTCHAに対応したプラグインなどを用意し、Google側で取得した情報を設定する。Akismetと比べると、WordPress外で行う設定が増える。

既にreCAPTCHAを利用しているサイトでは、コメント欄にも同じ仕組みを利用できる。

Cloudflare TurnstileでBotによる投稿を抑える

Cloudflare Turnstileは、Cloudflareが提供するBot判定の仕組みで、Google reCAPTCHAとは別のサービスである。CAPTCHAの代替として利用でき、通常は画像を選択するといった操作を訪問者へ求めずに判定する。

WordPressではTurnstileに対応したプラグインを利用し、Cloudflareで発行したSite KeyとSecret Keyを設定する。なお、Webサイト自体をCloudflare経由で配信していなくてもTurnstileは利用できる。

導入工程が比較的少なく、無料で利用できるため、現在ではWordPressへBot対策を導入する場合の有力な選択肢となっている。

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

条件選択肢
非商用の個人ブログで簡単に始めるAkismet
reCAPTCHAを既に利用しているGoogle reCAPTCHA
新たにBot対策を導入するCloudflare Turnstile
一つの対策ではスパムを十分に抑えられない異なる方式を併用

AkismetとTurnstileは役割が異なるため、必要に応じて併用できる。

外部コメントサービスの利用

WordPress標準コメントを使わず、コメント機能を外部サービスへ移す方法もある。
代表的なサービスには、DisqusやGraphCommentなどがある。

外部のサービスを利用すると、コメント表示や利用者管理、スパム対策などの一部をサービス側へ任せられる。ただしサービスによっては表示速度や広告表示にも影響するほか、外部サービスへの情報送信に伴ってプライバシーポリシーへの記載が必要となる。

外部コメントサービスの利用は、標準コメントの上位互換ではなく、コメントを管理する場所をWordPressの外へ移す選択肢である。

コメント機能の閉鎖

交流を目的としていないサイトでは、コメント機能を提供する必要はない。連絡を受け付ける必要があっても、別の経路を用意すれば事足りるケースもある。

  • SNSへ誘導する
  • 問い合わせフォームを設置する
  • メールで連絡を受ける

コメント機能を停止すれば、コメントスパムだけでなく、承認作業や不適切な投稿への対応も不要になる。

情報提供を中心とするサイトなら、コメントを閉じて連絡手段だけを別に用意する構成でもよい。

まとめ

WordPressのコメント機能を利用するなら、スパム対策まで含めて設計するようにし、無対策の標準コメントは使用しない。

コメントが必要なら、WordPress標準コメントへスパム対策を追加するか、外部コメントサービスを利用する。交流を目的としていないなら、コメント機能そのものを停止する。

コメント機能が必要か
        │
        ├─ 不要
        │    ↓
        │  コメントを停止
        │
        └─ 必要
             │
             ├─ WordPress標準コメント
             │        ↓
             │    スパム対策を追加
             │
             └─ 外部コメントサービス