WooCommerceのスパムユーザー対策をCloudflare Turnstileに切り替える

WooCommerceを導入すると、どうしても増えてしまうスパムユーザー登録。対策しておかなければ、WordPressのユーザー欄はたちまち海外から作成されたスパムユーザーで埋まり、(まともな権限はないとはいえ)管理コストが無駄に増えるばかりです。

これまで、私はスパム対策として「Google reCAPTCHA」+プラグイン「reCAPTCHA for WooCommerce」を主に利用してきましたが、2025年末でreCAPTCHAは使用条件が大きく変更され、「Google Cloud」での運用が必須となります。これを機に、「Cloudflare Turnstile」へと使用サービスを切り替えてみることにしました。

まとめ

この記事の内容を要約すると、以下のようになります。

  1. Google reCAPTCHAの使用条件変更に伴い、Cloudflare Turnstileを導入した
  2. WooCommerceのスパムユーザー対策はCloudflare Turnstile+プラグイン(Simple CAPTCHA Alternative with Cloudflare Turnstile)で代替可能
  3. 問い合わせフォームを含むスパム、ボット対策全般もCloudflare Turnstileで代替できる

Google reCAPTCHAとCloudflare Turnstile

Google reCAPTCHAの仕様変更

「Google reCAPTCHA」(v2/v3)は、ボット等によるスパム対策や不正ログイン防止のために広く利用されてきたサービスであり、いまや問い合わせフォームの設置時にも欠かせない機能となっています。

ただ、2025年末をもってreCAPTCHAの機能は「Google Cloud Console」に移り、従来の「Classic」プラン利用者は「Enterprize」プランへの移行が必須となりました。

この仕様変更で、私のような零細事業者には重要と感じたポイントは、以下の通りです。

  1. 無料枠は月あたり検証10,000回まで、これを超えると料金が発生する
    (10万回まで月8ドル、それを超えると1回あたり0.001ドル)
  2. 従来のコンソールではなく、Google Cloud Consoleから操作する
  3. 2025年末に自動移行が行われるので、自力で変更しなくてもよい
    ただし、クレジットカード等の情報を登録しないと、無料枠を超えた時点で検証が行われなくなる

こうして見ると、月10,000回までの無料枠があるため、小規模事業者にはあまり影響がなさそうではあります。WAF(ウェブ・アプリケーション・ファイアウォール)を乗り越えてくる強烈なアタックでも喰らえば別として、過去の利用データからすると、私の事業規模なら滅多なことでは無料枠をはみ出すことはないでしょう。

しかし、試験的に変更作業を行ってみて意外に難儀したのが、個人的にはほぼ使う機会がないGoogle Cloud Consoleでの操作でした。

Google Cloud Consoleは幅広いクラウドサービス全般を扱うコンソールで、私が既に利用している「Google Workspace」とは別の請求先アカウント扱いとなり、カード情報なども別途登録し直す必要があるようです。

また、新コンソールは本格的なクラウドサービスを対象としているだけに、しっかり操作方法を調べないと、おっかなくて使えません。素人でもふわっとした操作で利用できた、旧コンソールの時代が懐かしく思えます。

そして、私がWooCommerceのスパムユーザー対策として利用してきた「reCAPTCHA for WooCommerce」には、これからもreCAPTCHAのV2(自分でチェックを入れるタイプの検証手段)が必要です。V2も移行できるという情報はネット上で散見されましたから、おそらく問題なく旧キーの維持はできるのでしょう。ただ、新コンソールでV2用のキーをこれからも作り直したりできるのかがよくわからず(単に私がヘボなのですが)、将来への不安が少し残りました。

そこで、WooCommerceのスパムユーザー・不正ログイン対策(ついでにWordPress全体のスパム・不正ログイン対策としても)導入を検討したのが、Cloudflare Turnstileでした。

Cloudflare Turnstileとは

この仕様変更を不安に思っているのは私だけはないようで、いま、Google reCAPTCHAの代替手段としてよく挙げられているのがCloudflare Turnstileです。

Cloudflare Turnstileは、CDN(コンテンツ・デリバリー・ネットワーク)サービスで世界的に有名なアメリカ企業・Cloudflareによって提供されています。ボットによるスパム投稿やフォーム送信、不正ログインを防ぐ検証(チャレンジ)機能により、Google reCAPTCHAと同じ役割を果たしてくれるサービスです。

また、CloudflareのCDNサービスに加入していなくても、Turnstile単体の無料プランを利用できることも大きな魅力だといえます。

余談となりますが、CloudflareのCDNサービスには、個人・小規模事業者用に無料プランも用意されており、読み込み速度が向上するだけでなく、優れたWAFや、DDos攻撃への対抗手段が容易に手に入ります。CDNサービスは一般的に高価なので、とにかく最初はCloudflareを利用しておけと勧められるケースも、海外の掲示板やブログなどでは多く見られるようです。

そして、2025年11月18日に発生した障害の際には、著名なネットサービスがどこもかしこもCloudflareを使っていたことがわかり、いろいろな意味で話題となりました(参考:日本経済新聞「XやChatGPTで一時通信障害、徐々に復旧 Cloudflare原因か」)。

ともあれ個人的には、日本国内での知名度はGoogle reCAPTCHAが圧倒的に高く、Cloudflare Turnstileを使うとかえって怪しまれるかも、と二の足を踏んでいたのですが……。前述の障害発生のニュースで、かえって日本国内でのCloudflareの認知度が上がったような気もしますし、reCAPTCHAの仕様変更もいよいよ間近に迫ってきましたから、ここはひとつTurnstileを試してみよう、という気になったのでした。

Cloudflare Turnstileのキー取得方法

Cloudflareのアカウントを作成してTurnstile用のキーを取得する手順は、非常にシンプルです。

アカウントを作成してログインする

Turnstileの価格設定は「Turnstile Free」と「Enterpriseプラン」の2種のみで、有料のEnterpriseプランはカスタム価格(要問い合わせ)ですから、小規模な事業者であればFreeプランで十分、ということになるでしょう。

まず、公式サイトの「利用開始」ボタンを押し、Cloudflareのアカウントがない場合はサインアップ、アカウント所有者はログインします。このとき、Google、Apple、Github等のアカウントでサインアップすることも可能です。

Tunrstile用のキーを取得する

メニューから「Turnstile」を選び、「Add Widget」をボタンを押します。
「Widget name」には自分が管理しやすい名前を入力してください(日本語名で可)。

次に、「Add Hostnames」ボタンを押し、管理対象ドメインを追加していきます。

「Add a custom hostname」にドメイン名を入力し、「Add」ボタンで追加してください。たとえば、このサイトであれば「gakuji-tosho.jp」と入力します。サブドメインであれば、「classic.gakuji-tosho」のように入力すれば問題ありません。

ここでは、1つのウィジェットに10サイトまで登録可能です。管理したいドメインをすべて入力したら、画面下にもうひとつある「Add」ボタンを押してください。

その後、「Widget Mode」「Pre-clearance」は必要がある場合にのみ変更し、「Create」ボタンで確定します。

これで、サイトキー(Site Key)と秘密キー(Secret Key)が生成されました。

プラグイン「Simple CAPTCHA Alternative with Cloudflare Turnstile」の導入

WordPress・WooCommerce上でTurnstileを利用する場合、プラグイン「Simple CAPTCHA Alternative with Cloudflare Turnstile」を利用するのが一般的かと思います。

これだけでWooCommerceも含めたスパム・ボット対策が実現できる、本当にありがたいプラグインです。

プラグインでキーを設定し、動作確認を行う

WordPressのメニューから「プラグイン」を選び、新規追加するプラグインとして検索してから、インストール・有効化してください。

その後、「設定」>「Cloudflare Turnstile」から、サイトキー・秘密キーを入力します。

次に、動作テストを行い、問題なく動作すればサイトに導入可能となります。

ここまで完了したら、Turnstileを導入したい項目を選び、チェックを入れてください。主なチェック項目は次の通りです。

  1. WordPressのログイン・登録・パスワードリセット・コメント
  2. WooCommerceのログイン・登録・パスワードリセット・購入手続き・支払い
  3. Contact Form7(問い合わせフォームに同プラグインを利用している場合)

2.のWooCommerceについては、最低でもログイン・登録・パスワードリセットはチェックしておいたほうが安心でしょう。購入手続き・支払いについては、スパム・ボットの状況次第かと思います。

最後に、「変更を保存」ボタンを押して設定完了です。

Turnstileの表示サイズ・表示条件を決める

WooCommerce+TCDテーマ等を利用している場合、ウィジェットの表示サイズや、ウィジェットが表示される条件を決めておくと、見た目がスマートになります。

「高度な機能」から、必要に応じて以下の機能を設定してください。

①ウィジェットのサイズ

検証時に表示されるウィジェット(検証用ボックス)の大きさを選ぶことができます。「コンパクト(150px)」にしておけば、TCDテーマを導入した状態でも、不格好にウィジェットが欠けたりはみ出したりすることはありません。

なお、自然な見栄えとしては「フレキシブル(100%)」の方が優れています。ただし、ヘッダーの「マイアカウント」からログイン用フォームを表示させると、少しだけウィジェットが枠からはみ出すのが残念です。

この後の「②外観モード」で説明している設定次第では、めったにウィジェットが表示されなくなるので、とりあえず好みの方にしておけばよいような気もします。

②外観モード

「外観モード」を「常時」から「インタラクション」に変更すると、インタラクション(=追加の検証、ボットの疑いがある場合など)が必要な場合にだけ、ウィジェットが表示されるようになります。表からは見えなくても検証機能が働いてくれているという、大変ありがたい設定です。

非常にスマートな機能で、商用VPNなどを使っていないかぎり、多くのユーザーには検証中であることを示すウィジェット自体が表示されなくなります。

ただ、ボックスが見えない状態で検証に時間がかかった場合、ユーザーが検証完了前にボタンを押し、エラーになってしまうおそれがあります。

対策として、一般設定の「送信ボタンを無効化」にチェックを入れておけば、検証(=チャレンジ)が完了するまで送信ボタンが押せなくなりますので、この設定をオンにしておくとよいでしょう。

問い合わせフォームを保護する

問い合わせフォームにContact Form7を使用している場合、このプラグインから直接、Turnstileによる保護をオンにすることができます。

なお、私が愛用しているフォームプラグイン「Snow Monkey Forms」も、最近のバージョンアップでTurnstileを利用可能になりました。こちらの場合は、WordPressのメニューから別途「Snow Monkey Forms」プラグイン本体の設定画面を開き、キーを入力して使用することになります。

「Snow Monkey Forms」は、惜しまれながら開発が終了した「MW WP Form」の後継ともいえる、シンプルかつ確認画面(日本人が非常に好みます)の機能を備えた、素晴らしいプラグインです。いつも使わせていただき感謝しております。

導入後の検証

Cloudflare Turnstileの導入後、1週間ほど、スパムユーザーの登録状況などを確認してみました。

結果としては、以前と同様かそれ以上に、スパムユーザーを弾いているという感触があります。

Google reCAPTCHAの利用条件が複雑になった今、よりシンプルにWordPress・WooCommerceの不正対策を行いたい場合に、Cloudflare Turnstileの導入は非常に有効な手段だと言えるのではないでしょうか。

笠原 正大

学而図書 代表

関連記事