シリーズ「公開したその後 〜運用と改善のノート〜」の第4回です。前回はアクセス解析について書きました。今回はスパム対策です。
サイトを公開すると、しばらくして身に覚えのないコメントや問い合わせが届き始めます。これがスパムです。今回は、それを無料で、その日のうちに防ぐところまでを書きます。専門的な知識は要りません。
スパムって、実際どういうものか
ブログに届くスパムは、だいたいこの2種類です。
- コメント欄に、英語の宣伝文や意味不明な文章、怪しいリンクが投稿される
- お問い合わせフォームに、営業メールや詐欺まがいのメッセージが送られてくる
どちらも人間が手で書いているわけではなく、プログラムが自動で、大量に、機械的に送っています。だから「うちみたいな小さいブログは狙われない」ということはありません。相手はサイトの中身を見ていないからです。
放っておくと何が困るのか
「消せばいいだけでは」と思うかもしれません。困るのは主にこの3つです。
1. 単純に手間がかかる
1日に何十件も届くようになると、確認して消すだけで時間を取られます。
2. 本物を見落とす
これが一番怖いところです。スパムに埋もれて、本当の問い合わせを見逃す可能性があります。仕事につながるはずだった1通だったかもしれません。
3. サイトの印象が悪くなる
コメント欄に怪しい書き込みが並んだままだと、訪問した人は「管理されていないサイト」と受け取ります。
守る場所は2つだけ
ここが分かると、話が一気に簡単になります。スパムの入口は2つしかありません。
- コメント欄
- お問い合わせフォーム
やることは「この2つにそれぞれ見張りを置く」だけです。逆に言えば、片方だけ対策しても、もう片方は素通りになります。
定番の「Akismet」には、2つの前提がある
WordPressのスパム対策といえば Akismet(アキスメット) が定番です。WordPressに最初から入っているので、多くの解説記事がこれを勧めています。ただ、実際に使おうとすると2か所で引っかかります。
1つめ:アカウント登録が要る。
Akismetを動かすには APIキー(サービスを利用するための、鍵になる文字列)が必要で、それを受け取るには akismet.com でのアカウント登録が必須です。個人ブログなら料金を自分で設定でき0円も選べますが、登録そのものは避けられません。
2つめ:有効化しただけでは、何も判定しない。
ここが見落としやすいところです。プラグイン一覧では「有効」と表示され、画面上は何の問題もないように見えます。でもAPIキーが入っていなければ、スパムは素通りします。「有効」の表示は、動いている証拠にはなりません。
Akismetが悪いわけではありません。優秀なサービスです。ただ、登録を挟まずに今日中で終わらせたいなら、別の選択肢のほうが早い——これがこの記事の出発点です。
コメント欄の対策:Antispam Bee
そこで代わりに入れたのが Antispam Bee(アンチスパム・ビー) です。
これを選んだ理由は単純で、アカウント登録もAPIキーも要らないからです。インストールして有効化した瞬間から動き始めます。無料で、商用サイトでも使えます。
手順はこれだけです。
- 管理画面の プラグイン → 新規プラグインを追加
- 右上の検索窓に Antispam Bee と入力
- 今すぐインストール → 有効化
以上です。設定画面を開かなくても、標準の状態で判定が始まります。
ひとつだけ、設定を見に行く価値があります。設定 → Antispam Bee の中の 「ダッシュボードのスパムカウンター」 です。これは初期状態ではオフですが、オンにすると管理画面のトップに「これまで何件のスパムを止めたか」が表示されるようになります。効いているかどうかが一目で分かるので、オンにしておくのがおすすめです。
もうひとつ、初期状態で「スパムとしてマークするが、削除はしない」がオンになっています。これはそのままで大丈夫です。スパムフォルダに残るので、間違って普通のコメントがはじかれていないか、後から確認できます。
調べていたら、すでに半分守られていました
ここで思わぬことに気づきました。
私のサイトには SiteGuard WP Plugin が入っています。ログインまわりを守るために入れたものですが、この中にコメント欄の画像認証(投稿前に文字を読んで入力させる、あの仕組み)の機能があり、それがずっと有効になっていました。
つまり私は、すでにコメント欄を守っていたのに、そのことを知らずに「対策ゼロだ」と思い込んでいたわけです。
ここから学んだことがあります。新しいプラグインを足す前に、いま入っているプラグインが何をしているかを見る。 初心者がやりがちなのはプラグインの入れすぎです。機能が重複すると、サイトが重くなるうえ、何かあったときに原因を切り分けにくくなります。
お問い合わせフォームの対策:Cloudflare Turnstile
残るはフォーム側です。こちらは別の仕組みが要ります。
以前は reCAPTCHA(信号機や横断歩道の画像を選ばされる、あれです)が定番でしたが、有料化されました。いまは Cloudflare Turnstile(ターンスタイル) が無料の選択肢です。Contact Form 7 の公式ドキュメント自体が「特別な理由がなければ Turnstile を使うように」と案内しています。
Turnstileの良いところは、訪問者に画像を選ばせないことです。人間だと判断できれば、利用者からは何も見えないまま通過します。問い合わせのハードルを上げずに済みます。
設定は2段階でした。
① Cloudflareで「ウィジェット」を作る
- Cloudflareにログインし、左メニューの Turnstile
- ウィジェットを追加
- 名前(任意)、ホスト名に自分のサイトのドメイン、モードは Managed を選ぶ
- 作成すると サイトキー と シークレットキー の2つが表示される
Cloudflareのアカウントは必要ですが無料です。サイトをCloudflareで運用していなくても、Turnstileだけ使えます。
② Contact Form 7に貼る
- 管理画面の お問い合わせ → インテグレーション
- Turnstileの欄で インテグレーションのセットアップ
- サイトキーとシークレットキーを貼って保存
これで全フォームに自動で適用されます。フォームの中にタグを書き足す必要はありません。
入れたら、効いているかを確認する
設定した時点では、まだ「やったつもり」の段階です。最後に、動いていることを目で確かめます。
- コメント側:管理画面のスパムカウンター。数字が増えていれば動いています。あわせて
コメント → スパムフォルダを開き、普通のコメントが誤ってはじかれていないかを見ます - フォーム側:
お問い合わせ → インテグレーションで「このサイト上で有効化されています」という表示に変わっているか。さらにお問い合わせページを開いて、実際に自分でテスト送信してみる
なお、Turnstileの「Managed」モードでは、条件を満たした訪問者には画面上に何も表示されないまま通過します。チェックボックスが見えないからといって、動いていないわけではありません。フォームページを開いて部品が読み込まれていれば問題ありません。
まとめ:迷ったらこの順番でいい
- いま入っているプラグインを確認する — すでに対策が入っているかもしれません
- コメント欄に Antispam Bee — 登録もキーも不要。入れて有効化するだけ
- お問い合わせフォームに Cloudflare Turnstile — キーを2つ貼るだけ
- カウンターとテスト送信で、効いているか確かめる
ここまで全部無料で、作業時間は30分もかかりません。Akismetの登録で止まってしまった人は、この組み合わせで十分だと思います。
スパム対策は、バックアップと同じで普段はまったく成果が見えない準備です。それでも、本物の問い合わせを見落とさないための備えだと考えると、後回しにしなくてよかったと思っています。
次回予告
次回は「ログインまわりのセキュリティ」をテーマに書きます。今回登場したSiteGuardは、本来こちらが主な役割のプラグインです。管理画面をどう守るか、公開後にやっておきたい設定を紹介する予定です。


コメント