【WordPress】問合せフォームをSPAMから守る

結論

  • Google ReCAPTCHA V3
  • Advanced noCaptcha & invisible captcha
  • ショートコード [anr-captcha]
  • プラグインAkismetの有効化

経緯

ブログにはお問い合わせページが不可欠である。これがないとGoogle AdSenseの審査が通らない。数年前は不要であったが、個人情報保護が強化された昨今では、お問い合わせなどして欲しくなくても、ページを作らなければならない。

伝統的なコンタクトフォームのプラグインにContact Form7があるのだが、JetPackにもフォーム機能があるので、Contact Form7を使用していない。

このブログは大したアクセスもないので問い合わせフォームから連絡が来ることもないのだが、他のブログからはかなりの連絡があった。

特にtokio.funからが激しい。別にTOKIOのファンページではなく、いそぐるの英語版を試しに作ってみただけだ。

アクセスなんてほとんどないブログにもかかわらず、アクセス数以上に問い合わせフォームからSPAMが送られてくる。営業や詐欺っぽいものまで内容は様々だ。最初は英語のメッセージだったが、最近は日本語も送られてくる。

なぜかリフォーム業者向けの内容もあったりした。

実装

うっとうしいのでこれを止める方法がないか検索したところ、Google ReCAPTCHA V3を使用することがわかった。

「私はロボットではありません」ってやつだ。

登録方法はGoogleに任せるとして、これをWordPressで使えるようにするにはプラグインが便利だ。検索すると多種多様なプラグインが見つかるが、ことごとく使えない。ネットで検索してもContact Form7の設定ばかりで、JetPackの記事がない。

有料のプラグインならばJetPackにも対応していると書いてある。

なぜ無料で使えない?

だが「Advanced noCaptcha & invisible captcha」を使えばショートコードを埋め込めるとある。プラグインをインストールして有効化し、必要な項目を設定した。

そしてお問い合わせページの最後にショートコード[anr-captcha]を追加した。

見た目にはなにも変わらない。

だが、ソースコードを確認すると。必要なコードが埋め込まれていた。

最後にプラグインAkismetを有効化する。JetPackと連携してくれるのだ。プラグインを有効化すると「サイトからスパムを一掃」とタイトルが表示され「Jetpack と連携する」か質問される。

「Jetpack と連携する」ボタンをクリックすれば画面が切り替わりAPIキーが自動的に設定される。

もしもクレジットカードの入力画面が表示されたときは入力せずに無視すればよい。

これでスパムがなくなることを祈るばかりだ。