2026年5月21日
2026年5月21日
WordPressのログイン画面にCAPTCHAを追加する方法|Turnstile・reCAPTCHAのプラグイン設定
WordPress のログイン画面(wp-login.php)は、ボットによるパスワードの総当たりの標的になりやすい場所です。ログイン画面に CAPTCHA(人間かどうかを確かめる仕組み)を入れると、ボットによる機械的なログインの試行を減らせます。この記事では、WordPress.org で配布されている無料のプラグインを使って、ログイン画面に CAPTCHA を追加する手順を説明します。内容は2026年10月時点のものです。
どの CAPTCHA を使うか
ログイン画面によく使われるのは、Cloudflare Turnstile と Google reCAPTCHA です。
| Cloudflare Turnstile | Google reCAPTCHA | |
|---|---|---|
| 料金 | 無料 | 月10,000回の判定までは無料。超える場合は Google Cloud の請求設定が必要 |
| キーを作る場所 | Cloudflare のダッシュボード(「Turnstile」) | Google Cloud コンソール |
| サイトを Cloudflare 経由にする必要 | なし(どのサイトでも使える) | なし |
| この記事で使うプラグイン | Simple CAPTCHA with Cloudflare Turnstile(simple-cloudflare-turnstile) |
Advanced Google reCAPTCHA(advanced-google-recaptcha) |
reCAPTCHA は、上限を超えたまま請求設定がないと判定が働かなくなる(ボットも通る)点に注意が必要です。アクセスの多いサイトや、手軽に始めたい場合は Turnstile が向いています。この記事では Turnstile を中心に説明し、reCAPTCHA は後半で触れます。
作業の前に:締め出されたときの戻し方を用意する
キーの入力を間違えると、自分もログインできなくなることがあります。作業の前に、次のどちらかでプラグインを止められることを確かめておいてください。
- FTP やサーバーのファイルマネージャーで
wp-content/plugins/を開ける - SSH で WP-CLI が使える
また、設定中はログインしたままのブラウザを1つ残しておき、確認は別のブラウザやシークレットウィンドウで行います。
Cloudflare Turnstile で追加する
ステップ1:Turnstile のウィジェットを作り、キーを取得する
Cloudflare のアカウント(無料で作れます)でダッシュボードにログインし、次の順に進みます。
- 「Turnstile」のページを開き、「Add widget」を選ぶ
- 「Widget name」に、わかりやすい名前(例 サイト名とログイン)を入れる
- 「Hostname management」に、WordPress のサイトのドメイン(例
example.com)を追加する - 「Widget mode」を選ぶ。「Managed」は必要なときだけ操作を求め、「Non-Interactive」と「Invisible」は操作を求めません
- 「Create」を選ぶ
- 表示されたサイトキー(sitekey)とシークレットキー(secret key)を控える
シークレットキーはサーバー側だけで使う値です。他人に見せたり、公開される場所に書いたりしないでください。Turnstile はサイトを Cloudflare 経由にしていなくても使えます。
ステップ2:プラグインを入れる
管理画面の「プラグイン」→「新規プラグインを追加」で「Simple CAPTCHA with Cloudflare Turnstile」を検索し、インストールして有効化します。WP-CLI の場合は次のとおりです。
wp plugin install simple-cloudflare-turnstile --activate
ステップ3:キーを入れて、ログイン画面に表示する
- 管理画面の「設定」→「Cloudflare Turnstile」を開く
- ステップ1で控えたサイトキーとシークレットキーを入れる
- Turnstile を表示するフォームを選ぶ。ログイン画面なら WordPress のログインフォーム(WordPress Login Form)にチェックを入れる。必要に応じて、ユーザー登録フォームやパスワードリセットのフォームも選ぶ
- 「変更を保存」を押す
- 設定画面の「TEST API RESPONSE」ボタンを押し、キーで正しく判定できることを確かめる
このプラグインには、ログイン中のユーザーや特定の IP アドレスでは表示しない設定や、Cloudflare に障害があったときにフォームの送信を通す(または reCAPTCHA に切り替える)設定もあります。
ステップ4:ログインできるか確かめる
シークレットウィンドウでログイン画面を開き、次を確かめます。
- ログインフォームに Turnstile のウィジェットが表示される
- 正しいユーザー名とパスワードでログインできる
- パスワードリセットやユーザー登録を有効にしたなら、そのフォームも送信できる
キャッシュ系プラグインや CDN を使っている場合は、キャッシュを削除してから確認します。
Google reCAPTCHA で追加する場合
reCAPTCHA のキーは、2026年10月時点では Google Cloud コンソールで作ります。従来の管理画面で作る「Classic」キーは新しく作れず、WordPress のプラグインには、Google Cloud で作ったキーの詳細画面から取り出す旧シークレットキー(legacy secret key)を使います。キーの作り方と無料枠の注意点は、WordPressにreCAPTCHA v3を設定する方法|キーの作成・Contact Form 7・コメント欄への導入 で説明しています。
プラグインは、ログインフォーム・ユーザー登録・パスワードリセット・コメント欄などに対応している「Advanced Google reCAPTCHA」を使います。
wp plugin install advanced-google-recaptcha --activate
有効化すると管理画面に「Advanced Google reCAPTCHA」のメニューが追加されるので、そこでキーを入れ、保護するフォームを選びます。プラグインが使う reCAPTCHA の種類(v2 か v3 か)と、作ったキーの種類を合わせてください。画面の項目はバージョンによって変わることがあるため、プラグインの説明も確認してください。確かめ方と締め出されたときの戻し方は、Turnstile と同じです。
ログインできなくなったときの戻し方
キーの入力ミスや、Cloudflare・Google 側の問題でログインできなくなった場合は、プラグインを止めます。
FTP やファイルマネージャーでは、wp-content/plugins/ の中のプラグインのフォルダー名を変えます(例 simple-cloudflare-turnstile を simple-cloudflare-turnstile-off にする)。WordPress はそのプラグインを読み込めなくなり、無効になります。ログインできたら、フォルダー名を元に戻し、管理画面で有効化してから設定を見直します。
WP-CLI が使える場合は、次のコマンドで無効にできます。
wp plugin deactivate simple-cloudflare-turnstile
# reCAPTCHA の場合
wp plugin deactivate advanced-google-recaptcha
CAPTCHA だけでは防げないこと
CAPTCHA が守るのは、画面に表示されるフォームだけです。次の経路は、ログイン画面の CAPTCHA を通らずにログインを試せます。
- XML-RPC(
xmlrpc.php):外部のアプリからの投稿などに使う仕組みで、ユーザー名とパスワードを送って認証します。使っていなければ無効にするか、アクセスを制限します - REST API のアプリケーションパスワード:外部サービスとの連携用に発行したパスワードは、ログイン画面を通らずに使われます。不要なものは「ユーザー」→「プロフィール」の「アプリケーションパスワード」で取り消します
そのため、CAPTCHA は次の対策と組み合わせて使います。
- 推測されにくいパスワードと、管理者アカウントの2段階認証
- ログインの失敗が続いたときに一時的に止める仕組み
- 使っていない XML-RPC の無効化
注意点
- CAPTCHA のサービスには、訪問者のブラウザから Cloudflare や Google に情報が送られます。プライバシーポリシーに、利用しているサービスを書いておいてください
- プラグインは更新を続け、使わなくなったら削除してください
- 会員サイトなど、ログインするユーザーが多いサイトでは、操作を求めない設定(Turnstile の「Managed」や「Invisible」など)にすると負担を減らせます
まとめ
- ログイン画面の CAPTCHA は、ボットによる機械的なログインの試行を減らす対策
- Turnstile は無料で、サイトを Cloudflare 経由にしなくても使える。reCAPTCHA は月10,000回を超えると請求設定が必要
- Turnstile は「Simple CAPTCHA with Cloudflare Turnstile」で、キーを入れてログインフォームを選び、「TEST API RESPONSE」で確かめる
- 作業前に、FTP や WP-CLI でプラグインを止められることを確かめておく
- XML-RPC やアプリケーションパスワードは CAPTCHA を通らないため、2段階認証やログイン試行の制限と組み合わせる
関連記事: