【解決済み】hCaptchaが「このCaptchaはテスト専用です」と表示される原因と直し方

WordPressのログイン画面や問い合わせフォームに、突然「このhCaptchaはテスト専用です」という赤い警告が出る。昨日まで普通に動いていたのに、心当たりのある設定変更はしていない——。この症状はほぼ1か所の設定で決着します。原因と直し方に加えて、再発させないための運用まで整理しました。

症状

ログイン画面やフォームに、次のような赤文字の警告が表示されます。

この表示が出ている間、hCaptchaはテスト用のキーで動作しており、実質的にボット対策が外れた状態になります。フォーム送信自体は通ることが多い一方、キーの組み合わせを取り違えている場合は送信が弾かれることもあります。いずれにせよ、気付いた時点で最優先に扱うべき不具合です。

原因

結論から言うと、hCaptchaプラグインが「Test Mode(テストモード)」のまま動作していることが原因です。プラグイン更新や設定リセットのタイミングで、モードが意図せず Test に戻ることがあります。

モード 用途 挙動
Test 開発・検証 テスト用のキーが自動で使われ、「テスト専用」と表示される
Live 本番 自分のサイトの本番用キーで実際の認証が動作する

「テスト専用」表示は不具合ではなく、テストキーが使われているという正しい警告です。

WordPress 管理画面の hCaptcha「General」タブ(バージョンによっては「Appearance」タブの場合もあります)で、Site Key 欄がグレーアウトし、次のような注記が出ているなら Test Mode の証拠です。

この注記が出ていれば Test Mode 確定です

To fill out the site key, set Mode to Live.(Site Key を入力するには、モードを Live にしてください)

なお、「Integrations」タブのトグル設定は有効化対象のフォームを選ぶ場所で、今回の不具合の原因ではありません。ここを何度触っても表示は消えないので、時間を使わないでください。

そもそもTest/Liveという2つのモードがある理由

hCaptchaは開発者向けに、公開されたテスト用のキーペアを配布しています。公式ドキュメントで案内されているサイトキーは 10000000-ffff-ffff-ffff-000000000001、対応するシークレットキーは 0x0000000000000000000000000000000000000000 です。このキーペアは絶対にパズルを出さず、常に成功トークンを返すという仕様になっています。

理由はシンプルで、開発中や自動テストのたびに画像認証を人力で解くのは現実的ではないからです。誰でも通過できるキーを用意しておけば、フォームの送信処理そのものをテストできます。裏を返せば、このキーにはボット対策の効果がまったくありません。公式ドキュメントもテスト環境専用と明記しています。本番サイトがTest Modeのまま動いていた期間は、実質的にCAPTCHAが外れていたと考えるべきです。

Live化した後にあわせて確認したいこと

Test Modeで動いていた期間にスパム投稿・スパム登録が増えていないか、コメント欄とユーザー一覧を確認してください。問い合わせフォームなら、その期間の送信が正常に届いていたかも要チェックです。表示を消すだけで終わらせないのが安全です。

解決手順(3分)

  1. WordPress ダッシュボード → hCaptcha → General タブを開く。
  2. ページ中ほどの ModeLive に変更する(Test になっているはず)。
  3. 同じ画面で Site Key / Secret Key の入力欄がアクティブになる。
  4. hCaptcha ダッシュボードで本番用キーを取得し、Site Key / Secret Key を貼り付けて保存。
  5. キャッシュプラグインやCDN(Cloudflare等)を利用している場合はキャッシュを削除し、ページを再読み込み。
  6. ログイン画面やフォームで「テスト専用」表示が消えていることを確認。

チェックポイント

  • hCaptcha ダッシュボードの「Allowed Domains」に、example.comwww.example.com の両方を登録しているか。
  • プラグイン更新直後は、念のためモードが Live になっているか確認する。
  • キャッシュが残っていると過去のウィジェットが表示されることがあるため、保存後はキャッシュ削除を実施。

Allowed Domains でよくあるミス

Live に切り替えてキーを入れたのにウィジェットが出ない、あるいは認証が通らない場合、次に疑うのは hCaptcha ダッシュボード側のドメイン設定です。登録漏れは見落としやすいので、以下を一つずつ潰してください。

■ www あり/なしの片方しか登録していない

最頻出のミスです。サイトが www なしで運用されていても、リダイレクト前のURLで読み込まれる場面があります。両方を登録しておけば損はありません。

■ ステージング環境やプレビュー用ドメインが未登録

テストサーバーで確認して「動かない」と判断してしまうケースです。staging.example.com のようなサブドメインは別ドメイン扱いになります。開発環境で確認するなら、そのドメインも登録するか、その環境だけTest Modeで運用するのが現実的です。

■ URL形式で入力している

登録欄に入れるのはホスト名です。https:// やパス、末尾のスラッシュを含めて入力すると一致しないことがあります。example.com のようにシンプルな形で登録してください。

キャッシュ以外で表示が直らないときの原因

キャッシュを消しても状況が変わらないなら、次の可能性を順に確認します。ここまで来れば、原因はほぼこの中にあります。

  • Site Key と Secret Key を取り違えている:見た目が似ているため貼り間違えが起きます。Secret Key はダッシュボードのプロフィール/設定ページで発行する文字列で、Site Key(UUID形式)とは形式が異なります。
  • テストキーが残っている:Live に切り替えても、以前入力されたテストキーの文字列がそのまま残っていることがあります。手で消してから貼り直します。
  • CAPTCHAプラグインが二重に入っている:別のセキュリティプラグインやフォームプラグインが独自のCAPTCHA機能を持ち、そちらが先に描画している場合があります。片方を無効化して切り分けます。
  • JavaScript エラーで読み込みが止まっている:ブラウザの開発者ツール(F12)のコンソールを見れば、hCaptchaのスクリプトが読み込めていないかどうかが分かります。JS圧縮・結合系の最適化プラグインが原因になることがあります。
  • ブラウザ拡張や社内ネットワークがブロックしている:広告ブロッカーやフィルタリングで hcaptcha.com への通信が遮断されると、ウィジェット自体が出ません。別の回線・別の端末で再確認してください。

プラグイン更新で設定が飛ぶのを防ぐ運用

今回のように、更新をきっかけに設定が初期値へ戻る事故は、CAPTCHA系に限らず起こります。完全には防げないので、「戻ってもすぐ気付いて直せる」体制にするのが実務的な答えです。

最低限やっておきたい4つ

  • キーを外部に控える:Site Key と Secret Key をパスワード管理ツールに保管します。設定が飛んでも復旧は1分で終わります。
  • 自動更新をオフにして手動更新にする:更新の瞬間を自分で把握できるようにします。更新後すぐ確認できるのが利点です。
  • 更新後にシークレットウィンドウでログイン画面を開く:ログイン中の管理者画面では気付けないことがあります。未ログイン状態での見え方が本番の見え方です。
  • 問い合わせフォームは月1回テスト送信する:CAPTCHAの不具合は「問い合わせが来ない」という静かな形で表面化します。定期テストが唯一の早期発見手段です。

hCaptcha と reCAPTCHA、どちらを使うか

トラブルを機に乗り換えを検討する方もいるので、両者の性格の違いを整理しておきます。なお料金体系や無料枠は改定されることがあるため、導入前に各社の公式ページで最新の条件を確認するのが確実です。

項目 hCaptcha reCAPTCHA
提供元 Intuition Machines Google
位置づけ プライバシー配慮を前面に出す。Cloudflareが2020年に採用した経緯で知られる 最も普及。Googleの各種サービスとの親和性が高い
日本語の情報量 少なめ。今回のような表示も英語のまま出る 豊富。日本語の解説記事が探しやすい
つまずきやすい点 Test/Liveモードの取り違え、Allowed Domainsの登録漏れ v2とv3でキーの互換性がなく、混同すると動かない

どちらを選んでも設定ミスの型は違うだけで存在します。乗り換えより「確認手順を決める」ほうが効きます。

補足:よくある質問

■ Test から Live に変えたのに、まだ「テスト専用」が出ます

キャッシュの影響が考えられます。WordPress 側のキャッシュ、CDN 側のキャッシュ、ブラウザのキャッシュ(シークレットウィンドウで再確認)を順に削除してください。それでも消えない場合は、入力欄にテストキーの文字列が残っていないかを確認します。

■ Site Key が空のままになります

Generalタブ上部にあるモードを Live に切り替えると入力欄が有効になります。なお、10000000-ffff-ffff-ffff-000000000001 のような既知のテストキーが入っている場合は本番キーに置き換えてください。

■ 一時的にCAPTCHAを外して運用してもいいですか

問い合わせが取れないほうが痛いという判断はあり得ます。ただし、外している間はスパムが一気に増える前提で考えてください。外すなら数時間以内に戻す、という期限を決めて作業するのが現実的です。

まとめ

  • まず General タブの Mode:Test になっていれば原因はそこで確定です。Live に変えて本番キーを入れます。
  • 次に Allowed Domains:www あり/なし、サブドメインの登録漏れが定番の落とし穴です。
  • それでも直らないならキーの取り違えとJSエラー:ブラウザのコンソールを開けば読み込み失敗はすぐ分かります。
  • 再発防止はキーの控えと定期テスト送信:更新で設定が飛ぶ前提で、気付ける仕組みを持つのが鉄則です。

コメント