ノンホー! どうもこんにちは、きにゃです。
WordPressでブログを始めたんだけどスパム対策はAkismetでいい?
そんなあなたに役立つ情報です。
WordPressをインストールするとAkismet Anti-Spamプラグインが最初から一緒に同梱されていてこれを有効化すればOKというような解説に従って導入している人も多いのではないでしょうか。
確かにAkismet Anti-Spamプラグインは無料で利用出来てコメントスパムを防止するのに有効なプラグインですが、アクティベートするときに商用利用目的かどうか尋ねられませんでしたか?
商用利用目的では無いなら、そのまま無料で利用してOKですが、アドセンスやアフィリエイトリンクを張ったブログで利用するのは商用利用にあたるような気もして微妙な感じがします。
そんなモヤモヤを解消してくれて、さらにサイト運営者の負荷も軽減してくれるのがInvisible ReCaptchaプラグインです。
コメントスパムの特徴とプラグイン
WordPressのスパムは、無差別かつ機械的に大量の投稿をコメント欄やコンタクトフォームに向けて送ってきます。
その目的は、大半が営利目的の広告であり、最終的には製品やサービスの購入者の獲得を目指すものです。
また中には、悪意のあるウェブページへ誘導するような内容を含んだ投稿が行われることもあります。
こうしたスパムはサイト運営上悪い影響を及ぼすことが多く、可能な限り排除するのが望ましいと言えます。
WordPressのスパムを防止する目的で利用されるのが、Akismet Anti-SpamやInvisible ReCaptchaといったプラグインです。
Akismet Anti-Spamの問題点
Akismet Anti-Spamは、スパムコメントによくみられる傾向を学習してフィルターするタイプのプラグインです。
コメントの内容を検査してスパムらしいと判定すると自動的に専用のフォルダへ振り分ける仕組みです。
そのため、次のような問題点があります。
仕組み上一度コメントは投稿される
コメントの内容を検査して判定する仕組みのため、スパムコメントが投稿されること自体を防止することはできません。
表面上現れないだけで大量のスパムコメントが一旦は投稿されてしまうことになってしまいます。
そのため、サーバーのCPU、ディスク容量、トラフィック等のリソースをそれなりに消費してしまうことに繋がります。
フォルダに振り分けられたスパムコメントは手動で削除が必要
スパムらしいと判定されたコメントが全てスパムであれば問題ありませんが、中には正当なコメントであってもスパムと誤判定される可能性が僅かにあります。
結局、本当にスパムかどうかの判定は人間の目で行って最終的な削除処理を行う必要があるので、それなりに骨の折れる作業が必要になります。
Google Invisible reCAPTCHA
Webサイト等を見ていると「私はロボットではありません」というチェックボックスが表示された経験があると思います。
あの表示は以前のreCAPTCHA Ver.2世代を利用した際に出てくる認証の仕組みでしたが、Ver.3ではその仕組みが進化して、
人間らしい操作を自動で判定して基本的にユーザーの操作を不要とする認証方式であるInvisible reCAPTCHAとなりました。
Invisible reCAPTCHAを使用するためにはキーの取得が必要になるので、まず取得手順を案内します。
Google reCAPTCHAキーの取得
Google reCAPTCHA v3のページでサイトキーとシークレットキーを取得します。
Google reCAPTCHAのページにアクセスしてAdmin consoleをクリックします。
ログインが求められた場合はGoogleアカウントでログインします。
サイトを追加する場合は、「+」をクリックします。
登録するサイトの情報を入力していきます。
サイトキーとシークレットキーが表示されるので控えます。キーは後の項目で説明するInvisible ReCaptcha for WordPress プラグインに設定します。
AMPに関する設定が現れるのでAMP対応の場合はチェックを入れて保存をクリックします。
Invisible ReCaptcha for WordPress プラグイン
Google Invisible reCAPTHCAをWordPressで簡単に利用するためのプラグインが、Invisible ReCaptcha for WordPressです。
Invisible ReCaptcha for WordPressのインストール
WordPressダッシュボードのプラグイン→新規追加から、「Invisible ReCaptcha for WordPress」を検索します。
一番最初に出てくるので、「今すぐインストール」をして「有効化」しておきます。
Invisible ReCaptcha for WordPressの設定
WordPressダッシュボードの設定→Invisible ReCaptchaを開いてキー設定等を行います。
WordPressのログイン画面等も保護しておきましょう。
Contact Form 7 プラグインを利用している場合は、以下の設定もしておきましょう。
reCAPTCHAバッジの表示について
おま環かもしれませんが、下記のようにコメント欄のreCAPTCHAバッジの表示が見切れてしまっていました。
Google公式FAQページによるとバッジを以下のCSSで非表示にし、
.grecaptcha-badge { visibility: hidden; }
代わりに次のテキストを含めるようにすることが許可されているようです。
This site is protected by reCAPTCHA and the Google
<a href="https://policies.google.com/privacy">Privacy Policy</a> and
<a href="https://policies.google.com/terms">Terms of Service</a> apply.
reCAPTCHAバッジの代わりにポリシー表示にしてみました。
子テーマのfunctions.phpに以下の関数を追加して、コメントフォームの下にポリシー表示を行うようにして、recaptcha_policyのCSSクラスを設定。
//コメントフォームの下にreCAPTCHA利用規約を挿入
function comment_form_insert_reCAPTCHA_policy(){
$comment_bottom = <<< EOF
<p class="recaptcha_policy">
This site is protected by reCAPTCHA and the Google
<a href="https://policies.google.com/privacy" target="_blank">Privacy Policy</a> and
<a href="https://policies.google.com/terms" target="_blank">Terms of Service</a> apply.
</p>
EOF;
echo $comment_bottom;
}
add_filter('comment_form', 'comment_form_insert_reCAPTCHA_policy');
子テーマのstyle.cssに以下のCSSを追加して、バッジの非表示化とポリシー表示の位置やサイズを調整。
#comment-area .grecaptcha-badge {
visibility: hidden;
}
.recaptcha_policy {
position: relative;
top: -40px;
padding: 0;
margin: 0;
text-align: center;
font-size: 11px !important;
color: #444 !important;
}
.recaptcha_policy a {
font-size: 11px !important;
color: #111 !important;
}
スパムブロック状況の確認方法
Google reCAPTCHAのページにアクセスしてAdmin consoleから確認することができます。
下記の画面では、90日間の状況を表示しています。
まとめ
ユーザーの利便性を損なわずサイト運営者の負荷を軽減してくれるInvisible reCaptchaを活用してスパムをシャットアウトしましょう。
Akismet Anti-Spamの商用利用でモヤってる人にもオススメです。
コメント