「WordPressの管理画面にログインできなくなった」「正しいパスワードを入力したのに画面がループする」「403 Forbiddenや404エラーでログイン画面すら開かない」――サイト運営において、ログイン画面から締め出されるトラブルは最も焦る緊急事態の一つです。
しかし、決して慌てる必要はありません。ログインできない原因は「パスワードの不一致」「セキュリティ機能(WAFやアクセス制限)の誤検知」「プラグインやテーマの競合」「データベースやURL設定の不整合」のいずれかにほぼ集約されます。闇雲に設定ファイルを変更したり再インストールを試みたりすると、かえって状態を悪化させてしまう恐れがあります。重要なのは、現在の症状から正確に原因を切り分け、最短の手順で復旧させることです。
本記事では、パニック状態でも最短3分で原因を特定できる判定フローチャート&早見表をはじめ、エックスサーバー・ConoHa WING・ロリポップ!・さくらのレンタルサーバといった主要サーバー別のWAF・アクセス制限解除手順、さらには管理画面に入れない場合のFTPやデータベースを用いた緊急復旧マニュアル(WP_ALLOW_REPAIRによるDB自動修復含む)まで完全網羅して解説します。
⚠️ 作業前の最重要ルール:必ずバックアップと「可逆性」を確保する
- 設定ファイルの事前退避:
wp-config.phpや.htaccessを編集する際は、必ずローカルやサーバー上にwp-config.php.bakなどの別名で複製(バックアップ)を保存してから作業を行ってください。 - ファイル・フォルダの可逆的リネーム:不具合原因と思われるプラグインやテーマを無効化する際は、ファイルをいきなり削除せず、フォルダ名の末尾に
_offや_bakを追加して一時停止状態にしてください。後からいつでも元の状態に戻せます。 - データベース操作前のエクスポート:phpMyAdmin等でデータベースのテーブルを直接更新する際は、必ず対象テーブルまたはデータベース全体のSQLエクスポートを行ってから操作してください。
【最短3分で判定】症状別クイック切り分けフローチャート&エラー早見表
ログインできないトラブルに直面した際は、まず「エラーメッセージの内容」と「直前に行った作業(プラグイン更新、URL変更など)」から原因を絞り込みます。当てずっぽうに復旧作業を行うのではなく、以下の判定ステップに沿って確認してください。
🧭 ログイン障害 即時切り分けフローチャート
- Step 1:ログイン画面(入力フォーム)自体が表示されるか?
- 「403 Forbidden」またはアクセス制限画面が出る ➔ 【主要サーバー別】403 Forbidden・WAF解除手順へ
- 「404 Not Found」が出る(ページが見つからない) ➔ 【原因別②】404 Not Found・ログインURL変更へ
- 画面が真っ白(WSOD)または「重大なエラーが発生しました」と表示される ➔ 【原因別③】画面真っ白・重大なエラーへ
- 「データベース接続確立エラー」と表示される ➔ 【最終手段】WP_ALLOW_REPAIRによるDB自動修復へ
- はい(通常のユーザー名・パスワード入力画面が表示される) ➔ Step 2 へ進む
- Step 2:情報を入力してログインを試みた後の挙動は?
- 「パスワードが正しくありません」と表示され、再発行メールも届かない ➔ 【原因別①】パスワード直接リセット(phpMyAdmin)へ
- 2段階認証の確認コードが通らない・認証スマホを紛失した ➔ 【原因別⑤】2段階認証(2FA)の緊急バイパスへ
- エラー表示もなく、入力画面が再度リロードされて戻る(無限ループ) ➔ 【原因別④】Cookie・URL不一致ループ解消へ
- ユーザー名が合っているかどうかも分からない ➔ 【原因別①】データベースからユーザー名を確認・変更へ
症状・直前アクション別クイック対処早見表
現在の症状と、直前に行った操作の組み合わせから、最短で解決できる対処法をまとめた一覧表です。該当する行の対処アクションを確認してください。
| 症状・画面の状態 | 考えられる主な原因 | 目安復旧時間 | 最短の復旧アクション |
|---|---|---|---|
| 403 Forbidden が表示される | サーバーのWAF誤検知、海外IP制限、IPアクセス制限 | 約3分 | サーバー管理パネルでWAF一時停止または自IPを除外設定 |
| 404 Not Found が表示される | セキュリティプラグインによるURL変更失念、.htaccess破損 | 約3分 | FTPでセキュリティプラグインをリネーム停止、.htaccess初期化 |
| パスワード再設定メールが届かない | サーバーのメール機能制限(mail未設定)、スパム判定 | 約5分 | phpMyAdminから wp_users のパスワードをMD5ハッシュで直接更新 |
| ログイン画面が再読み込みされる(ループ) | ブラウザCookie破損、siteurl / home の不一致、SSL重複 | 約3分 | シークレットウィンドウ試行、wp-config.php でURL強制上書き |
| 画面が真っ白(WSOD)・重大なエラー | プラグイン/テーマのPHPエラー、バージョン非互換、メモリ枯渇 | 約5分 | FTPで plugins フォルダを一時リネーム、デバッグログ確認 |
| 2段階認証コードが通らない・紛失 | 時刻同期ズレ、端末紛失、認証アプリ削除 | 約3分 | FTPで2段階認証プラグインフォルダを一時リネーム停止 |
| データベース接続確立エラー | wp-config.php のDB設定齟齬、MySQL停止、テーブル破損 | 約5分 | DB接続情報再確認、WP_ALLOW_REPAIR による自動修復 |
🔍 サイトの不具合・セキュリティの不安を自動チェック!
WordPressのログイン障害や予期せぬエラーは、プラグインの脆弱性やサーバー設定の不整合、PHPバージョンの非互換など、潜在的なリスクが引き金になるケースが非常に多いです。
「MozCheck」なら、URLを入力するだけでWordPressサイトのセキュリティ・バージョン・パフォーマンス状態を無料・約1分で自動診断できます(会員登録不要)。
【主要サーバー別】403 Forbidden・WAF・海外IP制限の解除手順一覧表
ログイン画面にアクセスした際や、ログインボタンを押した直後に「403 Forbidden(アクセスが拒否されました)」と表示される場合、WordPress本体ではなくレンタルサーバー側のセキュリティ機能(WAFやアクセス制限機能)がアクセスを遮断している可能性が最も高いです。
国内の主要レンタルサーバーでは、不正アクセスやブルートフォース攻撃からサイトを保護するために強力な防御機能が標準搭載されていますが、自分の正当なアクセスが攻撃と誤認されてブロックされるケースが多発しています。以下に主要サーバー別の設定項目と解除手順をまとめました。
主要4大サーバーのセキュリティ機能・解除項目一覧表
| レンタルサーバー | ブロックを引き起こす主な機能 | 管理画面での設定メニュー名 | 解除・除外の最短手順 |
|---|---|---|---|
| エックスサーバー (Xserver) | WordPressセキュリティ設定 WAF設定 | サーバーパネル > 「WordPressセキュリティ設定」 「WAF設定」 | 「ログイン制限」または「国外IPアクセス制限」をOFF またはWAFログからシグネチャを除外 |
| ConoHa WING | WAF機能 WordPressセキュリティ | コントロールパネル > サイト管理 > 「サイトセキュリティ」>「WAF」 | WAF利用設定を「OFF」にするか、 ログ一覧から該当の攻撃検出ログを「除外」 |
| ロリポップ! (LOLIPOP!) | WAF設定 海外アタックガード | ユーザー専用ページ > セキュリティ > 「WAF設定」 | 対象ドメインのWAF設定を「無効」に設定 (※反映に約5〜10分程度かかります) |
| さくらのレンタルサーバ | Webアプリケーションファイアウォール 国外IPアドレスフィルタ | コントロールパネル > セキュリティ > 「WAF利用設定」/「国外IPフィルタ」 | 「国外IPアドレスフィルタ」を無効化、 またはWAF設定を「利用しない」に変更 |
各サーバーの具体的な解除手順を詳しく見ていきましょう。
エックスサーバー(Xserver):管理画面アクセス制限&WAFの解除手順
エックスサーバーをご利用の場合、403 Forbiddenが発生する原因は主に「WordPressセキュリティ設定の国外IPアクセス制限」または「WAF設定」です。
- サーバーパネルにログイン:エックスサーバーの管理画面(サーバーパネル)にアクセスします。
- WordPressセキュリティ設定を開く:メニュー内の「WordPress」カテゴリーにある「WordPressセキュリティ設定」をクリックします。
- 対象ドメインを選択:不具合が発生しているドメインの「選択する」をクリックします。
- 制限設定を一時的にOFFにする:
- 「ログイン制限」:短時間に何度も試行した場合にブロックされます。一時的に「OFF」にします。
- 「国外IPアクセス制限」:VPN環境や海外プロバイダ回線、テザリング経由の場合にブロックされます。こちらも「OFF」にします。
- 設定完了を確認:「設定する」をクリックすると、数分以内に制限が解除されます。
- WAF設定の確認(上記で解消しない場合):「セキュリティ」>「WAF設定」を開き、対象ドメインを選択して「ログ照会」を確認します。403エラーが発生した日時のログがあれば、該当の「シグネチャ」を拒否対象から除外するか、一時的にWAF設定を「OFF」に切り替えます。
ConoHa WING:WAFログ確認・除外設定&管理画面IP制限の解除手順
ConoHa WINGでは、初期状態でWAFが非常に高感度に設定されており、通常のログインやプラグイン設定保存時にもWAFによって弾かれるケースが頻発します。
- コントロールパネルにログイン:ConoHaの管理画面に入ります。
- サイトセキュリティへ移動:左メニューの「サイト管理」>「サイトセキュリティ」を選択し、上部タブの「WAF」をクリックします。
- WAFのログ一覧を確認:画面下部にブロックされた通信のログが一覧表示されます。エラーが発生した日時のアクセスを探します。
- 除外ボタンをクリック:自分のアクセス(該当のIPアドレスやURL)の行にある「除外」ボタンをクリックします。これにより、特定の通信のみが許可され、セキュリティを保ったままログイン可能になります。
- 一時的なWAF全体OFF(急ぎの場合):除外設定が分かりにくい場合は、ページ上部の「利用設定」を一時的に「OFF」に切り替えてください。ログイン完了後に再度「ON」に戻すことを推奨します。
ロリポップ!(LOLIPOP!):WAF設定変更とアクセス制限解除手順
ロリポップ!では、WAF機能によって管理画面のスクリプト実行やログインリクエストが遮断されることがあります。ロリポップ!のWAF設定変更は反映までに約5〜10分かかる点に注意してください。
- ユーザー専用ページにログイン:ロリポップ!のユーザー専用ページを開きます。
- WAF設定ページを開く:左側メニューの「セキュリティ」>「WAF設定」をクリックします。
- 対象ドメインの設定を「無効」にする:一覧から対象ドメインを探し、設定変更欄で「無効にする」をクリックします。
- 反映を待つ(重要):設定変更後、サーバー側で設定が反映されるまで約5分〜10分程度かかります。すぐにログイン画面を再読み込みせず、少し時間を置いてからアクセスしてください。
- ログイン確認と再有効化:無事にログインできたら、セキュリティ確保のため後ほど設定を「有効」に戻すか、
.htaccessに除外シグネチャを追記して個別許可を行ってください。
さくらのレンタルサーバ:国外IPアドレスフィルタ・WAFの解除手順
さくらのレンタルサーバでは、管理画面への不正ログイン対策として「国外IPアドレスフィルタ」が標準で有効になっています。
- コントロールパネルにログイン:さくらのレンタルサーバのコントロールパネルを開きます。
- セキュリティ設定を開く:左側メニューの「セキュリティ」>「国外IPアドレスフィルタ」をクリックします。
- フィルタを無効化:対象ドメインの設定で「利用しない」を選択して保存します(クラウドサービスやテザリング、VPN等の経由で国外IP判定されている場合に効果的です)。
- WAF利用設定の確認:それでも403が解消しない場合は、「セキュリティ」>「WAF利用設定」へ進み、対象ドメインのWAFを一時的に「利用しない」に変更して保存します。
【原因別】WordPressにログインできない時の具体的な解決手順
サーバー側のWAFやIP制限が原因でない場合、WordPress本体の設定やデータベース、プラグインに原因があります。代表的な5大トラブルの具体的な解決手順を解説します。
① パスワードを忘れた・再発行メールが届かない(phpMyAdminでMD5ハッシュ直接更新)
パスワード入力欄の「パスワードをお忘れですか?」をクリックして再発行メールを送信しても、サーバーのメール送信設定(PHP mail関数)の未設定やSPF/DKIM未設定によるスパム破棄が原因でメールが届かないことがよくあります。
この場合、サーバーの管理画面からphpMyAdminにログインし、データベース内の管理者パスワードを直接書き換えるのが最も確実です。
- phpMyAdminにログイン:レンタルサーバーのコントロールパネルからphpMyAdminを起動します。
- データベースを選択:WordPressで使用しているデータベース名をクリックします。
wp_usersテーブルを開く:テーブル一覧からwp_users(プレフィックスが異なる場合は〇〇_users)をクリックします。- 管理者の「編集」をクリック:ログインしたい管理者ユーザーの行にある鉛筆アイコン(編集)をクリックします。
user_passの関数に「MD5」を選択:- カラム名
user_passの行を探します。 - 「関数(Function)」プルダウンから「MD5」を選択します(ここを忘れるとログインできません)。
- 「値(Value)」欄に、新しく設定したいパスワード文字列(平文)をそのまま入力します。
- カラム名
- 実行して保存:画面下部の「実行」ボタンをクリックします。
💡 なぜ平文をMD5で保存して良いのか?
WordPressは初回ログイン時にMD5ハッシュ文字列を検出すると、自動的に強固で安全なストレッチングハッシュ(phpass/bcrypt互換)へ再暗号化してDBを更新する仕組みを持っています。そのため、手動更新時はMD5関数を選択するだけで安全に認証されます。
② 404 Not Foundでログイン画面が表示されない(URL変更プラグインのFTP無効化)
/wp-login.php や /wp-admin/ にアクセスした際に「404 Not Found(指定されたページは見つかりません)」が表示される場合、過去に導入したセキュリティプラグインによってログインURLが変更されているか、.htaccess のリライトルールが破損しています。
【対処法A:ログインURL変更プラグインのFTP一時停止】
「SiteGuard WP Plugin」や「WPS Hide Login」などのプラグインによって、ログインURLが /login-custom/ などに変更されている場合、FTPソフト(FileZilla等)またはサーバーのファイルマネージャーを使い、プラグインフォルダ名を一時的に変更します。
/wp-content/plugins/siteguard/➔siteguard_off/に変更/wp-content/plugins/wps-hide-login/➔wps-hide-login_off/に変更
リネームした瞬間にURL変更機能が無効化され、標準の https://example.com/wp-login.php でログイン画面が表示されるようになります。
【対処法B:.htaccess の初期化】
リライトルールの破損が疑われる場合は、WordPressルートディレクトリにある .htaccess をバックアップ退避(.htaccess.bak)した上で、以下の標準記述で新規作成してください。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
③ 画面が真っ白(WSOD)・「重大なエラー」が出る場合(プラグイン一括停止)
ログイン画面を開こうとした際に画面全体が真っ白になる現象(White Screen of Death / WSOD)や、「このサイトで重大なエラーが発生しました」というメッセージが表示される場合、直前に行ったプラグインの自動更新やPHPのバージョンアップによる構文エラー・メモリ枯渇が原因です。
管理画面に入れないため、FTPソフトを使ってプラグインを一括停止して原因を切り分けます。
- FTPソフトで
/wp-content/ディレクトリに移動します。 pluginsフォルダの名前をplugins_offにリネームします。- この状態でブラウザから
/wp-login.phpにアクセスします。正常にログイン画面が表示されれば、原因はいずれかのプラグインにあります。 - ログインできたら、FTPで
plugins_offを元のpluginsに戻します。 - 管理画面の「プラグイン」一覧を開き、1つずつ有効化しながらどのプラグインがエラーを引き起こしているかを特定します。
より詳しい原因特定やデバッグログの出力方法については、以下の関連記事もあわせてご確認ください。
👉 【図解】WordPressの画面が真っ白(WSOD)になった時の原因と最短復旧ガイド
👉 【即時復旧】WordPress「このサイトで重大なエラーが発生しました」の原因特定と直し方完全ガイド
④ ログイン画面が再読み込みされる(無限ループ・Cookie・URL不一致の強制解消)
正しいユーザー名とパスワードを入力して「ログイン」を押しても、エラーが出ずにログイン画面が再読み込みされてしまう「無限ループ現象」は、ブラウザのCookie破損またはWordPressのサイトURL設定不一致によって発生します。
【ステップ1:シークレットウィンドウでの確認】
まずはブラウザのシークレットウィンドウ(プライベートブラウズ)を開き、ログインできるか試してください。これでログインできる場合は、普段使用しているブラウザのCookieとキャッシュを削除すれば解決します。
【ステップ2:wp-config.php でURLを強制上書き定義】
シークレットウィンドウでもループする場合、データベースに保存されているサイトURL(siteurl)とホームURL(home)に http と https の混在や、www の有無のズレが発生しています。
FTPで wp-config.php を開き、「/* 編集が必要な部分はここまでです */」の直前に以下の2行を追記してください。
// サイトURLを強制上書き(ご自身の正規のURL・httpsに書き換えてください)
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
これによりデータベースの破損値をバイパスし、正しいドメインとプロトコルでCookieセッションが確立されるため、ループ現象が即座に解消されます。
⑤ 2段階認証(2FA)コード紛失・認証エラー時の緊急バイパス
スマートフォンの故障や機種変更、認証アプリ(Google Authenticator等)のデータ消失、あるいはサーバーとの時刻ズレによって2段階認証コードが通らなくなった場合のバイパス手順です。
- FTPソフトで
/wp-content/plugins/を開きます。 - 利用している2段階認証プラグインのフォルダ名末尾に
_offを付与してリネームします。- Two-Factor:
two-factor➔two-factor_off - Wordfence:
wordfence➔wordfence_off - miniOrange 2-Factor:
miniorange-2-factor-authentication➔miniorange-2-factor-authentication_off
- Two-Factor:
- ブラウザを再読み込みすると2段階認証がスキップされ、通常のユーザー名とパスワードのみでログインできます。
- ログイン後、フォルダ名を元に戻し、管理画面から端末でQRコードを再スキャンしてセットアップを完了させてください。
【最終手段】管理画面に入れない時のFTP/DB緊急復旧マニュアル
通常の対処法ではどうしても管理画面にアクセスできない場合に実行する、サーバー直結の緊急復旧マニュアルです。
wp-config.phpに「WP_ALLOW_REPAIR」を追記してデータベース自動修復を実行する手順
「データベース接続確立エラー」と表示される場合や、テーブルの破損によって認証情報が読み取れなくなっている場合、WordPressに内包されている自動修復機能(データベースリペア機能)を利用して復旧させます。
手順1:wp-config.php に自動修復定数を追記
FTPで wp-config.php をダウンロードし、エディタで開いて「/* 編集が必要な部分はここまでです */」の直前に次の定数を追記してアップロードします。
// データベース自動修復機能を有効化
define('WP_ALLOW_REPAIR', true);
手順2:修復用スクリプトURLにブラウザでアクセス
追記後、ブラウザのアドレスバーに以下のURLを入力してアクセスします。
https://あなたのドメイン/wp-admin/maint/repair.php
画面に「データベースの修復」「データベースの修復と最適化」という2つのボタンが表示されます。通常は「データベースの修復」をクリックします。WordPressが自動的に全テーブルの整合性をチェックし、破損している箇所を修復します。
🚨【警告】作業完了後は必ず WP_ALLOW_REPAIR を削除してください
WP_ALLOW_REPAIR が true の間は、ログインしていない第三者でも修復URLにアクセスしてデータベースに負荷をかけることが可能になってしまいます。修復が完了してログインできることを確認したら、直ちに wp-config.php から追記した行を削除またはコメントアウトしてください。
FTP経由で緊急用管理者アカウントを一時作成する手順
phpMyAdminへのアクセス権がなく、管理者ユーザーが削除・改ざんされてしまった疑いがある場合、現在有効になっているテーマの functions.php に一時的なコードを追記することで、緊急管理者を作成できます。
- FTPで
/wp-content/themes/使用中のテーマ名/functions.phpをダウンロードします。 - ファイルの末尾に以下のコードを追記して上書きアップロードします。
// 緊急管理者の一時作成コード(復旧後すぐに削除してください)
add_action('init', function() {
$user = 'emergency_admin';
$pass = 'TempEmergencyPass_Secure_Key!';
$email = 'emergency@example.com';
if (!username_exists($user) && !email_exists($email)) {
$user_id = wp_create_user($user, $pass, $email);
$user_obj = new WP_User($user_id);
$user_obj->set_role('administrator');
}
});
- サイトのトップページまたはログイン画面を一度リロードします(
initフックが実行されユーザーが作成されます)。 - ユーザー名
emergency_admin、設定したパスワードでログインします。 - 【必須】ログインできたら直ちに
functions.phpから追記したコードを削除し、管理画面の「ユーザー」一覧から本来のアカウントを修復した上で、一時作成したemergency_adminを削除してください。
ログイン復旧後のセキュリティ強化&再発防止チェックリスト
無事にログインできた後は、同じトラブルを二度と繰り返さないために、以下の5つの再発防止チェックリストを実施してください。
再発を防ぐための5つの基本対策
- パスワード管理と定期的な認証情報チェック:推測されやすい単純な文字列を避け、16文字以上の英数記号混在パスワードを設定します。ブラウザのパスワードマネージャーに安全に保存してください。
- ログインURLの変更とブックマークの徹底:ブルートフォース攻撃対策としてログインURLを変更する場合は、変更後のURLを必ず複数のブラウザや管理ドキュメントに記録・ブックマークしておきます。
- 自動バックアップの確立:万が一のファイル破損やデータベース不具合に備え、サーバー側の自動バックアップ機能またはプラグイン(UpdraftPlus等)を利用して、日次・週次バックアップ体制を構築してください。
- サーバーセキュリティ設定と自社IPの把握:WAFを有効に保ちつつ、頻繁にブロックされる場合は自社の固定IPアドレスをサーバーの許可リスト(ホワイトリスト)に登録しておきます。
- 休眠・不要プラグインの削除:長期間更新されていないプラグインや使っていないテーマは、セキュリティホールや競合エラーの温床となります。不要なものは無効化だけでなく完全に削除してください。
MozCheck(無料セキュリティ・構成診断)による潜在リスクの即時可視化
WordPressサイトのトラブルは、表面的には「突然ログインできなくなった」ように見えても、実際にはプラグインの放置や古いバージョンのPHP、不適切なパーミッション設定などが長期間放置されていたことが引き金となります。
「MozCheck」を活用すれば、サイトURLを入力するだけで、セキュリティ状態・SSL設定・ヘッダー情報・レスポンス速度などを即座にスコアリングし、改善すべき脆弱性を分かりやすくレポートします。大切なサイトを安全に運営し続けるために、ぜひ一度無料診断をお試しください。
🛡️ WordPressの健康状態をプロレベルで無料診断!
サイトトラブルが起きてから対処するのでは、売上やアクセスの損失につながります。「MozCheck」なら、たった1分の診断でサイトの脆弱性や設定ミスを可視化。事前に対策を打つことでトラブルを未然に防げます。
コメントを残す