WordPressでコメント欄を有効にしてサイトを運営していると、海外からのスパムに悩まされます。
以前は Akismet というプラグインが活躍していたのですが、商用利用の場合は無料で利用できなくなってしまいました。
代わりに Invisible reCaptcha を導入しましたが、bot は防げてもロシアからのスパムコメントはなくなりません。コメントは承認されないため、サイトに掲載されることはありませんが、毎日数十ものコメントがくると、いちいち削除するのも面倒ですし、メールボックスもいっぱいになってしまいます。
特定の記事にコメントされることが多いため、個別記事のコメント機能をオフにすることも試しましたが、別の記事にコメントされるだけなのでイタチごっこです。
そこで試行錯誤した結果、ようやく、プラグインを使わずにロシアからのスパムコメントを削除する方法が見つかったので共有したいと思います。
WordPressの標準機能でロシアからのスパムコメントを削除する方法
スパムコメント対策は、プラグインを使わずとも、Wordpressの標準機能である程度対応できます。
コメントの管理機能は、Wordpress 管理画面のサイドバーにある「設定」>「ディスカッション」から設定できます。
この中で、今回使った設定は、「コメント内で許可されないキーワード」、つまりブラックリストです。
指定した文字列がコメントに含まれている場合に、そのコメントをゴミ箱に入れることができます。
ロシアのスパムコメントだけに含まれ、まともなコメントに含まれない単語や文字列を指定すれば、自動で削除できるというわけです。
問題は何をブラックリストに指定すべきかですが、私の場合はキリル文字「Д」を指定しました。
ロシアからのほぼすべてのスパムコメントに使用され、日本語コメントで使用されることは、以下のような顔文字以外ありません。
ヽ(`Д´)ノ
(;´д`)
こんな顔文字を使った日本語コメントは来たことがありませんが、それもスパムコメントと見なして問題ないかもしれません。
ほかのキリル文字を指定することもできますが、この設定は以下のようにシンプルかつシュールです。
私はひとまずこれで様子を見ることにしています。
今のところ狙い通りに機能しており、自動的にスパムコメントがゴミ箱に削除されています。
コメントがメール通知されることもありません。
WordPressプラグインでロシアからのスパムコメントを削除する方法
上記の方法が難しい場合は、日本語が含まれないコメントをスパムと判定してくれる「Throws SPAM Away」という和製プラグインが便利そうです。
以下のブログ記事で紹介されています。

プラグインはなるべく増やしたくないので今回は使用しませんでしたが、必要なときが来れば導入したいと思います。