WordPressにログインできない!原因別の解決策と初心者でも直せる復旧手順

Last updated on 73 min read
目次から探す

WordPressにログインできなくなると、パニックに陥るのは当然です。サイトの運営が止まり、焦ってあれこれ試してしまう気持ちもよく分かります。しかし、ここで重要なのは「何が原因か」を推測することではなく、まず現在の画面に何が表示されているかを正確に把握することです。実は、ログインできない原因は限られており、症状ごとに対処法が決まっています。

この記事では、ログインエラーの症状を5つのパターンに分類し、それぞれについて初心者でも実行できる具体的な解決手順を解説します。入力ミスやブラウザのキャッシュといった簡単に直る問題から、データベース操作が必要な場合、さらには乗っ取りを疑うべき深刻なケースまで、段階的に対応できるようにしました。

焦らずに現象を見つめ、この記事で紹介する確認項目を順番に進めていけば、ほとんどのログイントラブルは自力で解決できます。万が一、自力での対応が難しい場合も、どの段階で専門家に相談すべきかが明確になるため、不要な試行錯誤を避けることができます。

ログインできない時にまず確認すべき「5つの状況」と原因の切り分け

WordPressにログインできないというトラブルが起きたとき、多くの方は焦って片っ端から設定をいじってしまいます。しかし実は、冷静に「今、画面に何が表示されているか」を確認するだけで、原因を3〜4パターンまで絞り込めます。ここを飛ばして試行錯誤するのが、復旧を遠回りにする最大の原因です。

まず、ブックマークや履歴からではなく、ブラウザのアドレスバーに https://自分のドメイン/wp-login.php と直接入力してログイン画面にアクセスしてください。古いURLを踏んでいると、症状そのものを誤認することがあるためです。

以下の5つの状況のうち、今のあなたのサイトがどれに当てはまるかを確認してください。

状況1:「ユーザー名またはパスワードが間違っています」と表示される

認証で弾かれている状態です。WordPress自体は正常に動いています。多くはブラウザの自動入力が古いパスワードを覚えている、全角スペースが混入している、大文字のI・小文字のl・数字の1を取り違えているといったケアレスミスです。

ただし、ここで一つ確認してほしいことがあります。複数の管理者がいる場合、全員が入れないのか、特定の一人だけが入れないのかです。全員が入れないならサーバーやサイト全体の問題ですが、特定の一人だけが弾かれるなら、そのアカウントが狙われた可能性があります。

実際、私が対応した改ざん被害はまさにこのパターンでした。ある朝、チームのディレクター宛に「パスワードを変更しました」というWordPressの通知メールが届いていました。本人には変更した覚えがない。実際にログインしようとすると、ログイン画面は表示されるのにパスワードが違うと弾かれます。一方、私は自分のアカウントで問題なくログインできました。この「一人だけ入れない」という差が、単なるパスワード忘れではなく第三者による乗っ取りだと判断する決め手になったのです。

状況2:「404 Not Found」でログイン画面そのものが表示されない

ログインページの場所が変わっているか、WordPressに登録されているサイトのURLが実際とずれている状態です。最も多いのは、セキュリティプラグイン(SiteGuard WP Pluginなど)によるログインURLの変更です。レンタルサーバーの簡単インストールで最初から有効になっていることがあり、本人が設定した覚えがなくても変わっています。次に多いのがSSL化やサーバー移転の直後で、httpとhttpsが食い違っているケースです。

状況3:「403 Forbidden」でアクセスを拒否される

サーバーがWordPressの手前であなたを止めている状態です。ここが重要で、WordPress側をいくらいじっても直りません。 原因はWAFの誤検知、海外IPアクセス制限、ログイン試行回数の制限などが考えられます。スマートフォンのWi-Fiを切ってモバイル回線からアクセスし、それで入れるならIPブロックで確定です。

状況4:ログインは通るのに、また同じログイン画面に戻される

ここが最も重要な判断ポイントです。ログインボタンを押した直後、ブラウザのURLバーをよく見てください。

URLが /wp-admin/ に変わっていれば、認証そのものは成功しています。たとえ画面が真っ白でも、ログインループではありません。WordPressはあなたを管理者と認識したうえで、管理画面を組み立てる途中でつまずいています。原因はプラグイン・テーマ・PHPのエラー側にあります。

URLが /wp-login.php のままログイン画面に戻っているなら、認証が通っていないか、ログイン状態を保持するCookieが保存できていません。これがログインループです。URLの末尾に ?redirect_to= が延々と付いていくなら、ほぼ確定です。

状況5:画面が真っ白、または500エラーで何も表示されない

これは認証の問題ではなく、PHPが処理の途中で止まっている状態です。ログインを試みる前からすでに真っ白な場合も、ログインした直後に真っ白になる場合も含まれます。原因が別系統のため、対処法も異なります。詳しい対応は後の章で解説します。

作業を始める前の、2つのお願い

一つは、表示されているエラーメッセージと、その時期に届いたWordPressからの通知メールを必ず残しておくことです。先ほどの改ざん事案でも、最初の手がかりは「パスワードを変更しました」という一通のメールでした。何気ない一通が、原因特定の起点になります。

もう一つは、この時点でWordPressの再インストールやファイルの削除をしないことです。私自身、WordPressを始めて間もない8年ほど前に、管理画面の設定にある「WordPressアドレス」と「サイトアドレス」を安易に変更してサイトが真っ白になり、管理画面にも入れなくなった経験があります。仕組みを分からないまま設定に触ると、入り口を自分で塞いでしまうことがあります。ログインできないだけの状態を、本当にデータを失う状態に変えてしまうのは、たいていこうした操作です。

【基本】ケアレスミスを疑おう!まず試すべき4つの解決策

前のセクションで状況を切り分けたら、次は技術的な対応の前に、最も多くの人が陥るケアレスミスを確認します。ログインできないトラブルの相談を受けたとき、実際には入力ミスやブラウザの設定が原因だったというケースは、思った以上に多いものです。

入力した情報を確認する

まず確認すべきは、入力した情報そのものです。ユーザー名やパスワードに、全角スペースが混入していないでしょうか。ブラウザの自動入力機能が古いパスワードを覚えていて、そちらが自動的に入力されていないでしょうか。また、大文字の「I」と小文字の「l」、数字の「1」を見間違えていないかも確認が必要です。

パスワード欄は入力内容が点で隠れるため、こうした誤りは気づきにくいものです。一度、パスワード入力欄の横にある目のマークをクリックして、実際に入力されている文字を確認してみてください。確実なのは、パスワードをメモ帳に一度貼り付けて目視で確認し、それをコピーして入力欄に貼る方法です。

なお、WordPressは登録メールアドレスでもログインできます。 ユーザー名を忘れた場合は、メールアドレスを試してみてください。

ログインURLとセキュリティプラグインを確認する

正しいログインURLは https://自分のドメイン/wp-login.php です。ただし、セキュリティプラグインがこのURLを変更していることがあります。変更されていた場合、通常のURLでは404エラーが返されるだけで、実際のログイン画面に辿り着きません。プラグインのインストール履歴を振り返り、セキュリティ関連のプラグインを導入していないか思い出してみてください。

キャッシュとCookieを削除する

次に確認すべきは、ブラウザに蓄積したキャッシュとCookieです。Cookieは、ブラウザがサイトへのログイン状態を記憶するために使う情報です。古いCookieが残っていると、正しい認証情報が正しく処理されず、ログインループが発生することがあります。ブラウザの設定メニューから「閲覧履歴とサイトデータを削除」を選び、対象サイトのキャッシュとCookieを削除してください。削除後、ブラウザを完全に再起動し、もう一度ログイン画面を開いてみます。

別の方法として、シークレットウィンドウ(プライベートブラウジングモード)を使うのも有効です。シークレットウィンドウではキャッシュやCookieを一切読み込まないため、ブラウザ側の問題が原因かどうかを素早く判定できます。ChromeやFirefoxなら、Ctrl+Shift+Nキー(MacではCmd+Shift+N)で開けます。

二段階認証とreCAPTCHAを確認する

さらに確認すべき点として、二段階認証やreCAPTCHAの設定があります。パスワードが正しくても、二段階認証用のアプリが同期ズレを起こしていたり、reCAPTCHAが画面に表示されていない場合は、ログインできません。スマートフォンの時刻がズレていないか確認してください。

機種変更で認証アプリを引き継いでいない場合など、どうしても認証を通過できないときは、FTPまたはサーバーのファイルマネージャーで wp-content/plugins を開き、該当する二段階認証プラグインのフォルダをリネームしてください。認証ステップが外れて、ユーザー名とパスワードだけでログインできるようになります。ただし、入れたら必ず二段階認証を設定し直してください。 外したまま運用するのは、玄関の鍵を外したまま出かけるのと同じです。

ここまで試しても状況が変わらない場合は、サーバー側やWordPress側の問題が考えられます。ただし、焦って設定ファイルを編集したり、プラグインを削除したりするのはお勧めしません。これらの操作はミスが取り返しにくく、さらに状況を複雑にしてしまいます。

パスワードやユーザー名を忘れた場合の再発行とDB確認手順

パスワードを忘れた場合、最初に試すべき方法はメールによる再発行です。ただし、このメールが届かないというケースも非常に多いため、事前に理由を理解しておくことが大切です。

WordPressのパスワード再発行メールは、サーバーのPHPメール機能に依存しています。送信元ドメインの認証(SPFやDKIM)が整っていないと、Gmailなどのメールサービスがメールを受け取り拒否したり、迷惑メールフォルダに自動振り分けしたりします。まず迷惑メールフォルダを確認してください。そこにもない場合は、登録されているメールアドレス自体が前の担当者のものであり、すでに使えなくなっている可能性が高いです。

この場合、データベースを直接操作してユーザー情報を確認・変更する必要があります。データベースへのアクセスは、サーバーの管理画面から「phpMyAdmin」というツールを使って行います。ここからが少し技術的な作業になりますが、注意点さえ守れば初心者でも安全に進められます。

最初にデータベースのバックアップを取る

phpMyAdminに触る前に、必ず行うべき最初の作業があります。それはデータベース全体のバックアップです。phpMyAdminの「エクスポート」タブからデータベース全体をSQL形式で書き出し、パソコンに保存してください。この保険があれば、万が一操作を誤ってもデータを元の状態に戻せます。逆にこれが無い状態で触るのは、命綱なしで屋根に上るのと同じです。

対象のデータベースとテーブルを確認する

次に、正しいデータベースを開いているか確認します。レンタルサーバーには複数のサイトのデータベースが同居していることがあります。私が対応した現場でも、一つのサーバーに5つのサイトが同居していました。間違ったデータベースを編集すると、無関係なサイトを壊してしまいます。

FTPで wp-config.php ファイルを開き、DB_NAME という記述の値を確認すれば、対象のデータベース名が確定できます。同様に、テーブルの接頭辞(通常は wp_ ですが、セキュリティ対策で変更されている場合もあります)も wp-config.php$table_prefix で確認します。

ユーザー情報を確認する

実際のユーザー情報は、wp_users テーブルに保存されています。phpMyAdminでこのテーブルを開くと、ユーザー名やメールアドレスが一覧表示されます。ここで自分のアカウント情報を確認することができます。

パスワードを変更する際の重要な注意点

パスワードを書き換える場合、触るのは user_pass という欄の一つのセルだけです。ユーザー名やIDなど、他のセルには絶対に触らないでください。IDは記事の投稿者情報など、データベース内の他の部分と紐づいており、変更するとサイト全体に影響します。

user_pass を編集する画面では、「関数」というプルダウンメニューが表示されます。ここで必ず MD5 を選んでください。この選択を忘れると、パスワードが正しく暗号化されず、ログインできないままになります。MD5を選んだら、値の欄に新しいパスワードをそのまま入力して保存します。

「MD5という古い方式で大丈夫なのか」と思われるかもしれません。WordPressは6.8からパスワードの保存方式がbcryptに変わりましたが、古い形式のハッシュも引き続き受け付けるようになっており、そのユーザーが次にログインした時点で自動的に新方式へ再ハッシュされます。そのため、この方法は現在も有効です。

絶対にやってはいけない操作

ここで絶対にやってはいけないことは、「SQL」タブを使用することと、行の削除ボタンをクリックすることです。初心者が事故を起こすのは、ほぼこの2つです。これらの操作は一度実行すると取り返しがつきません。編集は必ず、鉛筆マークの「編集」ボタンから行ってください。

完了後の確認

phpMyAdminを操作して無事にパスワードを設定したら、WordPressにログインしてみます。成功したら、管理画面から改めてパスワードを設定し直してください。これで正規の方式で保存され、データベース操作は完了です。

「見覚えのないユーザー」がいた場合の正しい対処

wp_users を確認した際に、自分の把握していないユーザーが登録されていた場合。これは、第三者があなたのサイトの管理権限を持っているという意味です。特に wp_usermeta テーブルの wp_capabilities に administrator と入っているアカウントに心当たりがなければ、乗っ取りが成立していると考えてください。

ここで絶対にやってはいけないのが、見つけたその場で削除することです。気持ちは分かりますが、これをやると3つの問題が起きます。

第一に、いつ・どこから侵入されたかを追う手がかりが消えます。第二に、攻撃者はすでに別の裏口を仕込んでいる可能性が高く、アカウントを消しても再侵入されます。第三に、phpMyAdminから直接ユーザーの行を削除すると、そのユーザーに紐づく投稿データが宙に浮いて、記事が表示されなくなることがあります。ユーザーの削除は必ずWordPressの管理画面から行い、投稿を別のユーザーに引き継ぐ選択をしてください。

正しい順番は、保全 → 遮断 → 全認証情報のリセット → 調査 → 駆除 → 最後にアカウント削除です。まず画面のスクリーンショットとデータベースのエクスポートで現状を記録し、サイトを一時的にメンテナンス状態にして外部からのアクセスを止めます。

そのうえで、WordPressのユーザーだけでなく、FTP、サーバー管理画面、データベース接続の各パスワードをすべて変更してください。

ここで効くのが、wp-config.php にある認証キー(AUTH_KEY から NONCE_SALT までの8行)の差し替えです。これを新しい値に書き換えると、現在有効なログインセッションがすべて無効になります。つまり、攻撃者がその瞬間ログイン中であっても強制的に追い出せます。 パスワード変更だけでは、すでに握られているセッションは切れません。実際の対応でも、この認証キーの差し替えを封じ込めの初動として実施しました。

「増えていなければ安全」ではありません

ここが最も伝えたい注意点です。

私が対応した改ざん事案では、不正な管理者アカウントは一つも作られていませんでした。 攻撃者がやったのは、既存の管理者アカウントのパスワードを変更して乗っ取り、その1分後に正規のプラグインを装った不正プログラムを設置することでした。新しいアカウントを作れば管理者に気づかれます。目立たない方法を選ぶのは、攻撃者にとって当然の判断です。

ですから、ユーザー一覧が正常でも安心はできません。「身に覚えのないパスワード変更の通知メールが届いている」「サイトの表示に文字化けや知らない広告が出ている」「パスワードを変えてもまた入れなくなる」——このいずれかに当てはまるなら、アカウントが増えていなくても乗っ取りを疑ってください。

「404 Not Found」でログイン画面すら表示されない時の対処法

404エラーが表示される場合、ログイン画面のページそのものが存在しないか、WordPressに登録されたURLと実際のURLがずれている状態です。ここが重要な点です。ログインURLを変更した記憶がなくても、実は変わっているケースが多いためです。

セキュリティプラグインによる自動変更が最も多い原因

最も多い原因は、セキュリティプラグインによる自動変更です。SiteGuard WP Pluginなどのセキュリティプラグインは、有効化した時点でログインURLを自動的に変更します。レンタルサーバーの簡単インストール機能を使うと、このプラグインが最初から有効になっていることがあります。本人が何も設定した覚えがなくても、ログインURLはすでに変わっているのです。

SiteGuardは有効化した時点で、新しい管理画面URL(/login_12345 のようなランダムな文字列)を管理者メール宛に送信しています。まずは過去のメールを「login」や「SiteGuard」で検索してください。ブラウザのブックマークに新しいURLが残っていることもあります。

メールが見つからない場合は、FTPを使ってプラグインフォルダにアクセスし、セキュリティプラグインのフォルダ名を一時的に変更(例えば siteguardsiteguard_off に)することで、プラグインを無効化できます。プラグインが無効になれば、ログインURLは元の /wp-login.php に戻ります。削除ではなくリネームです。

SSLやサーバー移転後のURLの不整合

次に確認すべき原因は、SSL化やサーバー移転の直後における http と https の不整合です。例えば、サイトを https に対応させたのに、WordPressに登録されたURLは http のままだったというケースです。この場合も、ブラウザでアクセスしようとするURLと、WordPressが期待するURLがずれており、404が返されます。

同様に、www の有無でもこうしたズレが生じます。https://example.com でアクセスしているのに、WordPressに登録されたURLが https://www.example.com だった場合、ログイン画面は見つからないと判定されてしまいます。

なお、サイトをサブディレクトリ(/blog/ など)に設置している場合は、ログインURLも https://example.com/blog/wp-login.php になります。単純にこれを見落としているケースもあります。

phpMyAdminを使った確認・修正方法

これらの確認・修正には、phpMyAdminを使ってデータベースを直接操作する方法があります。wp_options テーブルを開き、siteurlhome の値を確認してください。ここに登録されているURLが、実際にブラウザで見えているサイトのURLと完全に一致しているか確認します。末尾のスラッシュの有無も含めて、一字一句同じである必要があります。

ズレが見つかった場合、値を修正して保存します。修正後、もう一度ログインURLにアクセスしてみてください。ログイン画面が表示されるようになるはずです。

wp-config.phpを使った設定方法

phpMyAdminを使わない方法もあります。サーバーの管理画面やFTPから wp-config.php ファイルにアクセスし、以下の2行を追記することで、データベースの設定よりも優先させることができます。

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

example.com の部分は、実際のドメインに置き換えてください。追記する場所は、ファイル内にある /* 編集が必要なのはここまでです */ という行より上です。

この方法はすぐに効果が出ますが、後に必ずデータベース側の値も修正し、この2行は削除してください。放置するとURLを変更できなくなる問題が後で発生します(詳しくは後の章で解説します)。

「403 Forbidden」でアクセスが拒否される4つの原因

403エラーが表示される場合、WordPress側をいくら設定しても解決しません。このエラーは、サーバーがあなたを止めているという意味だからです。

403エラーの原因は複数ありますが、解決の順番を守ることが大切です。 無理にWAFを無効化する前に、まず簡単な確認から始めてください。原因を切り分けずにいきなり防御を外すのは、物音がしたからといって玄関の鍵を全部開けるようなものです。

1. サーバー契約の確認

最初に確認すべきは、サーバーの契約状況です。レンタルサーバーの利用期限が切れていたり、料金の未払いがあったりすると、アカウントが停止されて403エラーが表示されます。これは技術的な問題ではなく、契約の問題です。サーバー会社からのお支払い通知メールが来ていないか確認し、管理画面で契約状態が「有効」になっているかチェックしてください。技術的な調査に何時間も費やした挙げ句、原因が支払い忘れだったというケースは実際に起こります。

2. IPアドレスのブロック確認

次に確認すべきは、あなた自身のIPアドレスがブロックされていないかです。スマートフォンのWi-Fiをオフにして、モバイル回線だけでサイトにアクセスしてみてください。モバイル回線からなら表示できるなら、IPブロックが原因で確定です。何を設定する必要もありません。

このIPブロックが発生する理由は、パスワードの入力に何度も失敗したことです。セキュリティプラグインやサーバー側の機能が、あなたのIPを攻撃者だと判断して遮断しているのです。「合っているはずのパスワード」を繰り返し試した結果、自分で自分を締め出してしまっているわけです。多くの場合、数分から1時間ほどで自動解除されるので、まず時間を置くことが最初の対処法です。すぐにアクセスする必要がある場合は、サーバー管理画面の「アクセス制限」設定から、自分のIPを一時的に解除できます。

3. 海外IPアクセス制限の確認

多くの国内レンタルサーバーには「海外IPアクセス制限」が標準で有効になっています。通常は問題ありませんが、VPNを使っている、海外から作業している、あるいはモバイル回線が海外経由と判定される場合は、あなたが拒否されることがあります。サーバー管理画面のセキュリティ設定から、この制限を一時的にオフにして確認できます。

4. WAFの確認と対応

WAFとは、Webアプリケーションファイアウォールという、サーバーの前に立っている防御機能です。多くのサーバーでは、管理画面の「セキュリティ」または「WAF設定」から、対象ドメインごとにオン/オフを切り替えられます。設定変更が反映されるまで数分から十数分かかるサーバーもあるので、切り替えた直後に直らなくても、少し待ってから再確認してください。

ここで重要な注意点があります。WAFをオフにすることは「原因を特定するための検査」であって、解決策ではありません。 オフの状態は、サイトの前に立っていた警備員を帰らせた状態です。WordPressは常時、総当たり攻撃を受け続けています。私が調査した現場では、xmlrpc.php という入口に1日あたり1万件を超えるアクセスが来ていました。無防備な時間は、できるだけ短くしてください。

WAFの検知ログを確認することも大切です。多くのサーバーには「WAFの検知ログ」があり、いつ・どのアクセスがどのルールで遮断されたかが記録されています。ここにあなたのアクセスが記録されていれば、WAFが原因だと確定でき、どのルールが誤検知したかまで分かります。オフにして試すより、ログを見るほうが早く安全です。

WAFをオフにして直った場合の、正しい後始末

後始末は次の順序で行ってください。

まず、目的の作業を最短で終わらせて、すぐWAFをオンに戻すこと。オフのまま「あとで戻そう」は、まず戻し忘れます。

次に、検知ログを見て、どのルールが誤検知したかを特定すること。全体をオフにするのではなく、そのルールだけを除外設定にしてください。防御を維持したまま、誤検知だけを取り除けます。

そして、戻したあと、普段の操作を一通り試して再発しないか確認すること。ここを飛ばす人が多いのですが、非常に重要です。記事の保存、プラグインの更新、テーマの編集といった日常の操作を実際にやってみて、403にならないことを確認してください。私が改ざん被害の対応で再発防止としてWAFを有効化したときも、必ず記事の保存が通ることを確認してから作業を完了としました。「有効にして終わり」にすると、後日クライアントが記事を書けなくなって初めて発覚する、ということが起こります。

なお、「自分のIPだけ許可すれば安全」というIP制限は、初心者にはお勧めしません。家庭のインターネット回線のIPアドレスは多くの場合固定されておらず、ある日変わります。そうなると、自分が締め出されて、解除する手段も失います。実際、私が緊急対応をした際もIP制限は採用しませんでした。作業者のIPを固定できず、かえって復旧作業を妨げると判断したためです。IP制限よりも、「ログイン試行回数の制限」と「二段階認証」の組み合わせのほうが、締め出しリスクが低く実用的です。

500エラーや画面が真っ白な時はリカバリーモードを確認

500エラーや画面が真っ白になる場合、ログインできないのではなく、WordPressが処理の途中で停止している状態です。これはサーバー側のPHPというプログラムが実行時にエラーに遭遇し、先に進めなくなっているということです。

WordPressには、こうした深刻なエラーを自動検知して管理者に通知する「リカバリーモード」という仕組みが備わっています。これはWordPress 5.2以降に搭載された機能です。

リカバリーモード用メールが届いている場合

まず確認すべきは、WordPressから「サイトで技術的な問題が発生しています」というメールが届いているかどうかです。このメールが来ている場合、非常に良いサインです。 WordPress本体は正常に動いており、原因がプラグインやテーマに絞り込めるからです。メール内に含まれているリカバリーモード用のURLをクリックすれば、問題のプラグインやテーマを無効化した状態で管理画面にアクセスできます。

このメール内のURLから管理画面に入ると、エラーを引き起こしているプラグインやテーマが表示されます。それを無効化するボタンをクリックするだけで、問題は解決することがほとんどです。迷惑メールフォルダも含めて探してみてください。これ1通で解決することが、かなりあります。

リカバリーモード用メールが届いていない場合

逆に危ないのは、このメールが一通も来ていないケースです。WordPress本体が起動すらできていない可能性があります。コアファイルが破損している、インストールされているPHPのバージョンがWordPressと合致していない、あるいは改ざんされているといった、より深刻な問題が考えられます。

メールが無い場合の具体的な切り分け手順——プラグインフォルダのリネーム、テーマの切り替え、functions.php の修正、デバッグモードでのエラー特定——は、別の記事にすべてまとめています。真っ白画面については、こちらを参照してください。

WordPressの画面が真っ白になったら?原因別の対処法8選とログインできない時の復旧ガイド

なお、見落とされがちな挙動を一つ。「管理画面の一部のページだけ真っ白になる」という症状です。投稿一覧は開けるのにプラグイン画面だけ真っ白、という場合は、そのページを描画している特定のプラグインのエラーであることがほとんどで、比較的軽症です。管理画面のすべてが真っ白になる場合とは、重症度がまったく違います。全部か、一部か。 ここも切り分けの材料にしてください。

正しい情報を入れてもログイン画面がループする時の解決策

ログインループは、初心者にとって最も混乱しやすい症状です。IDとパスワードが正しいはずなのに、ログインボタンを押すとまた同じログイン画面に戻されてしまう。エラーメッセージが出ないぶん、何をすべきか見当がつきません。しかし、この症状には必ず原因があり、順を追って確認すれば解決できます。

ログインループが起きる仕組み

ログイン状態を保持するのはCookie(ブラウザが保存する認証情報)です。このCookieは「どのドメインに対して発行するか」を指定して作られます。

WordPressが http://example.com のCookieを発行しているのに、あなたが見ているのが https://www.example.com だった場合、ブラウザはそのCookieを認識できません。認証は成功しているのに、ブラウザが状態を保持できず、またログイン画面に戻されるわけです。httpとhttpsの違い、wwwの有無、末尾のスラッシュ——このどれか1つでも食い違えば起こります。SSL化した直後、サーバーを移転した直後に多いのは、このためです。

まずブラウザ側を切り分ける

いちばん簡単な切り分けは、シークレットウィンドウで開いてみることです。これで入れるなら、原因は古いCookieです。ブラウザの設定から、そのサイトのCookieとキャッシュを削除してください。「Cookieがブロックされているか、お使いのブラウザーがサポートしていません」というメッセージが出る場合も、まずはここを疑います。

URL設定を確認する手順

ブラウザ側で直らない場合は、URL設定を疑います。まず、ブラウザのアドレスバーに表示されている実際のURLを、一字一句正確に書き出してください。これが「正解」です。

次に、phpMyAdminで wp_options テーブルを開き、siteurlhome という2つの値を探してください。これらが書き出したURLと完全に一致しているか見比べます。ここがずれていれば、ループの原因はこれで確定です。

なお siteurlhome は役割が違います。siteurl はWordPress本体が置かれている場所、home は訪問者が見るサイトのトップです。通常は同じ値ですが、サブディレクトリにWordPressを設置している場合だけ異なります。両方を同じにすればいい、とは限らない点に注意してください。

URL設定を修正する方法

値がずれていた場合、正しいアドレスに書き換えて保存すればループは直ります。末尾のスラッシュは付けないのが基本です。

phpMyAdminが使えない、または操作に不安があるという場合は、wp-config.php ファイルに以下の2行を追記することで、データベースの値より優先させられます。

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

この方法は即座に効果が出ますが、見落とされやすい注意点があります。 この2行を書くと、管理画面の「設定」→「一般」にあるURL入力欄がグレーアウトして編集できなくなります。仕様通りの動作なのですが、これを知らないと、後日「なぜかURLが変更できない」と延々悩むことになります。制作を引き継いだ人が混乱する典型的なパターンです。

そして、この方法はあくまで「上書き」であって、データベースの間違った値はそのまま残っています。推奨する手順はこうです。まず wp-config.php の2行で強制的に上書きして、管理画面に入れる状態を取り戻す。次に、管理画面に入れたら siteurlhome を正しい値に直す。最後に、wp-config.php に書いた2行を削除する。応急処置は、応急処置のまま放置しないでください。

冒頭で触れた私自身の失敗も、この設定でした。8年ほど前、管理画面の「WordPressアドレス」と「サイトアドレス」の意味をよく理解しないまま値を変更したところ、その瞬間にサイトが真っ白になり、管理画面にも入れなくなりました。この設定の怖いところは、間違った値で保存した瞬間に、自分自身が管理画面から締め出されるという点です。管理画面から入って直す、という手段が使えなくなる。だからこそ、wp-config.php からの上書きという救済手段が用意されているわけです。当時はプログラミングスクールのメンターに直してもらって事なきを得ましたが、あの設定画面には今でも慎重になります。

ディスク容量を確認する

URL設定が正しいのにループが続く場合は、サーバーのディスク容量が満杯になっている可能性があります。

WordPressはログイン処理の際、一時的なデータを書き込みます。容量がゼロだとこの書き込みが失敗し、認証は成功しても状態を記録できず、ログイン画面に戻されます。エラーも出ないので、非常に分かりにくい症状です。

サーバー管理画面の「ディスク使用量」を確認してください。Web用とデータベース用が別枠になっているサーバーもあるので、両方見てください。容量を食っている犯人は、たいていバックアッププラグインが作った古いバックアップの蓄積、サーバーのログファイル、サーバー付属のメールボックスのいずれかです。特にバックアップは、設定によっては毎日作られて消えずに溜まり続けます。古いものから削除すれば、それだけで直ります。

プラグインの干渉を確認する

それでも直らない場合は、プラグインの干渉を疑います。キャッシュ系やセキュリティ系のプラグインが、管理画面の処理に介入している可能性があります。FTPで wp-content/plugins フォルダを plugins_off にリネームして全停止し、ログインできるか確認してください。

入れたら、フォルダ名を plugins に戻したうえで(この時点で全プラグインは停止状態です)、管理画面から1つずつ有効化して犯人を特定します。

もう一つ、あまり知られていない手段があります。wp-config.php にある認証キー(AUTH_KEY から NONCE_SALT までの8行)を、WordPress公式の生成サービスで作った新しい値に差し替える方法です。これを行うと現在有効なログインセッションがすべて無効化され、セッションの不整合が原因のループが解消することがあります。副作用として全ユーザーが強制ログアウトされますが、そもそも誰も入れていない状況なので実害はありません。

何をやってもログインできない…「乗っ取り・改ざん」を疑うサイン

ここまでのすべての対処法を試してもログインできない場合、あるいは「何かがおかしい」という違和感を覚える場合は、単なる設定ミスではなく、第三者による乗っ取りや改ざんを疑う段階です。

判断の基準は、技術的な難易度ではありません。**「これは自分が作った問題か、誰かに作られた問題か」**です。自分の操作が原因なら、戻せば直ります。そうでないなら、相手がいます。

直ったはずなのに、繰り返し同じ状態に戻る

これが最も危険なサインです。パスワードを変更してログインできるようになったのに、数時間後や数日後にまた同じ状態に戻る。この繰り返しが起きているなら、攻撃者が再侵入用の裏口をサーバーの内部に残しているということです。玄関の鍵を替えても、裏口が開いたままなら意味がありません。

実際の事案でも、攻撃者は侵入からわずか2分半で、外部から遠隔操作ができる裏口を設置し、その動作テストまで完了していました。 ログを秒単位で追って初めて分かったことです。この段階では、自力での対応は危険です。

公開側のサイトに異変が出ている

公開側のサイト(訪問者が見るページ)にも異変が出ているというサインも極めて危険です。管理画面に入れないだけならドアの問題で済みますが、訪問者から見えるサイトにまで異変が出ているなら、すでに家の中に何かが入り込んでいます。

私が対応した事案では、サイトを開いた瞬間、ページの上部に文字化けした意味不明な文字列が表示されていました。日本語でも英語でもない、ノイズのような出力です。エラーメッセージですらない、壊れた文字が出ていたら赤信号だと思ってください。

これはPHPのエラーではありませんでした。攻撃者が正規のキャッシュ系プラグインを装って仕込んだ不正プログラムが、全ページで実行され、その処理の残骸を画面の先頭に吐き出していたものです。この文字化けが、サイト内部に侵入者がいることを示す決定的な証拠でした。

同じように、身に覚えのない広告が表示される、知らないサイトに転送される、検索結果に表示される自サイトの説明文が関係のない外国語になっているといった症状も、同じ意味を持ちます。

身に覚えのないパスワード変更の通知メール

WordPressは、パスワードが変更されると本人に通知メールを送信します。自分で変えていないのにこのメールが来ているなら、誰かがあなたのアカウントを操作しています。

私たちが被害に気づけたきっかけも、まさにこの一通でした。もしそのメールが誰も見ていない古いアドレスに送られていたら、あるいは迷惑メールに振り分けられていたら、発見は数日遅れていたはずです。

FTPやサーバー管理画面にもアクセスできない

これは最も深刻な段階です。WordPressだけでなく、サーバー全体の管理権限を失っている可能性があります。

私が対応した事案では、WordPressは乗っ取られていましたが、サーバー管理画面とFTPは無事でした。だからこそ、こちら側に主導権が残っていると判断して調査に入れたのです。もしサーバーの管理権限まで失っていたら、打てる手はまったく違います。この状態なら、迷わずサーバー会社と専門家の両方に連絡してください。

個人情報を扱っているサイト

問い合わせフォーム、会員登録、申込みフォームがあるサイトの場合、「直せば終わり」ではありません。情報が持ち出された可能性を評価し、必要なら関係者に報告する責任が発生します。技術的な復旧とは別の判断が必要になる領域です。

バックアップが存在しない

戻せる状態がないまま自力で試行錯誤するのは、命綱なしで高所作業をするのと同じです。一手間違えると、復旧不可能な状態に陥ります。

発見と相談のタイミングが、被害の大きさを決める

改ざんされたサイトを放置すると、Googleに危険なサイトとして登録され、検索結果に警告が出るようになります。ブラウザが赤い警告画面を出すこともあります。こうなると復旧後も評価が戻るまで時間がかかり、被害は技術的な問題を超えて、事業の信用の問題になります。

私が対応した事案は、朝に発覚して、封じ込め・原因特定・不正プログラムの除去・再発防止まで、その日のうちに完了しました。半日です。 早い段階で動けば、それだけで済みます。逆に、自己流で数日触ってから相談されると、状況が複雑になっているぶん、調査にも復旧にも時間がかかります。「怖い」と思った時点が、実は一番安く早く終わるタイミングです。

二度と困らないために!ログイン後のトラブルを防ぐ3つの再発防止策

無事にログインできるようになったら、同じトラブルを繰り返さないための対策が必須です。トラブル対応は「直す」で終わりではなく、「起きない状態にする」までがワンセットです。ここでお伝えするのは、実際の復旧対応で私が得た結論そのままです。

1. ログイン画面だけを守っても意味がない。「裏口」を塞ぐ

ほとんどのセキュリティ記事は、パスワードを複雑にする、ログインURLを変える、ログイン試行回数を制限する、と書いています。もちろん正しいのですが、それだけでは足りません。

私が調査した事案で、攻撃者が使ったのはログイン画面ではありませんでした。WordPressに標準で備わっているREST APIという機能の、複数の処理をまとめて実行できる仕組みを悪用し、ログイン試行を束ねて送りつけていたのです。この経路を通ると、通常のログイン画面に対する試行回数の制限が働きません。玄関に頑丈な鍵をかけていても、勝手口が開いていたわけです。

アクセスログを見ると、xmlrpc.php という別の入口にも、1日あたり1万件を超えるアクセスが常時来ていました。ほとんどのサイト運営者は、自分のサイトがこれだけ叩かれていることを知りません。

最低限やってほしいのは次の3つです。使っていない xmlrpc.php を無効化すること。REST APIの一括処理エンドポイントを外部から使えないようにすること。そして、ユーザー名が外部から一覧できてしまう仕組みを止めること。攻撃はまずユーザー名を集め、次にパスワードを総当たりします。ユーザー名が分からなければ、総当たりの成功率は激減します。

設定ファイルを自分で触るのが不安なら、まずはサーバーのWAFを有効にしてください。それだけでも、かなりの部分をカバーできます。有効にしたら、記事の保存やプラグイン更新といった普段の操作を試して、誤検知でブロックされないか確認するところまでをセットにしてください。

2. バックアップは「取っているか」ではなく「戻せるか」

今回の事案で、私が一番痛感したのがこれです。対象のサイトにはバックアップが残っていませんでした。 結果として復旧はできましたが、「最悪これに戻せる」という土台が無い状態で調査と駆除を進めるのは、精神的にまったく違います。判断が慎重にならざるを得ないぶん、時間もかかります。

多くの方はバックアップを「取って」います。しかし、実際に「戻したことがある」人はごくわずかです。一度でも復元を試しておくと、本番でのトラブル時の落ち着き方がまるで違います。

そして、バックアップの保存先は必ずサーバーの外にしてください。サーバー上にだけ保存していると、サーバーごと攻撃された場合にバックアップも一緒に汚染されます。改ざんされた状態のバックアップから復元すると、脆弱性を抱えたまま復活させることになります。

3. 異変に「気づける状態」を作っておく

繰り返しになりますが、今回、私たちが被害に気づけたきっかけは、たった一通のメールでした。「パスワードを変更しました」という、WordPressの通知メールです。攻撃者が侵入してから裏口を設置し終えるまで、かかった時間はわずか2分半。技術的な対策と同じくらい、「おかしい」と気づける仕組みが重要です。

具体的には、次の3つです。WordPressの管理者メールアドレスを、今も毎日見ているアドレスにしておくこと。管理者権限を持つユーザーを棚卸しして、退職した担当者や制作会社の使っていないアカウントを削除すること。そして二段階認証を設定し、そのリカバリーコードをパスワード管理ツールに保管しておくことです。

ログインURLを変更した場合も、変更後のURLは必ずパスワード管理ツールに一緒に保管してください。控えていないと、自分で自分を締め出すことになります。

なお、ここで挙げた再発防止策を、優先順位をつけて詳しく解説した記事も用意しています。何から手を付ければいいか迷ったら、こちらをご覧ください。

WordPressセキュリティ対策ガイド|初心者でも安心の守り方と重要ポイント

まとめ:症状を見れば、原因はかなり絞れる

WordPressにログインできない時、やるべきことはシンプルです。

まず症状を確認すること。「弾かれる」のか「たどり着けない」のか「戻される」のか、それとも「何も出ない」のか。ここを見極めるだけで、試すべき対処法は数個まで絞れます。ログインボタンを押した直後のURLバーを見る、エラーメッセージを残す、という小さな習慣が、復旧までの時間を大きく縮めます。

そして、慌てて大きな操作をしないこと。再インストールもファイル削除も、ログインできないだけの状態を、本当にデータを失う状態に変えてしまう操作です。

私は現役のweb制作エンジニアとして、WordPressの復旧や、改ざん・乗っ取りへの対応を実際に手がけています。プロに任せる一番のメリットは、原因を的確に特定して最短で直せること、大切なデータを壊すリスクを避けられること、そして表面を直すだけでなく「なぜ起きたか」を突き止めて再発を防げることです。

最後に一つだけ。あの改ざん対応の中で、依頼主が一番心配していたのは、サイトが直るかどうかではありませんでした。「自分たちのサイトのせいで、見に来てくれた方や関係者に迷惑がかかるのではないか」ということでした。

サイトのトラブルは、技術の問題に見えて、実際には信頼の問題です。だからこそ私は、表面を直して終わりにせず、なぜ入られたのかを突き止めて塞ぐところまでを一つの仕事だと考えています。

「FTPを触るのが怖い」「原因が分からない」「また同じことが起きないか心配」——そんな時は、状況を確認してお見積りするところから、遠慮なくご相談ください。初回のご相談・お見積りは無料です。一緒に、原因から解決していきましょう。

Suggest an edit

Last modified: 30 Jul 2026

現役エンジニアの実装ログ

WordPressのトラブル・改ざんでお困りですか?

現役エンジニアが、WordPressの復旧・ハッキング対応を承っています。原因の特定から再発防止まで。状況確認・お見積りは無料です。

WordPress復旧を相談する