WordPressのリダイレクトループとは、アクセスしたURLが別のURLへ転送され、その転送先から再び元のURLや別のURLへ戻される処理が繰り返される状態です。 ブラウザでは「ERR_TOO_MANY_REDIRECTS」「リダイレクトが多すぎます」「ページの自動転送設定が正しくありません」などと表示されます。
原因はWordPress本体だけとは限りません。 WordPressのURL設定、HTTPS化、.htaccess、リダイレクト系プラグイン、CDN・プロキシ、Cookieなどを順番に切り分けることが重要です。
30秒でわかる結論
30秒でわかる結論
- リダイレクトループは、URL A→URL B→URL Aのように転送が循環する状態
- 最初に「サイト全体」「ログイン画面だけ」「特定URLだけ」のどこで起きるか確認する
- WordPressアドレスとサイトアドレスのhttp/https・www有無を確認する
- SSL化直後なら、WordPress・サーバー・CDNのHTTPS設定が競合していないか確認する
- CloudflareのFlexibleとオリジン側のHTTP→HTTPS強制はリダイレクトループを起こす代表例
- プラグイン・.htaccess・CDNのリダイレクトを複数重ねない
- 設定変更前にバックアップし、1か所ずつ原因を切り分ける
WordPressのリダイレクトループとは?
リダイレクトとは、アクセスしたURLから別のURLへ自動転送する仕組みです。 通常はHTTPからHTTPSへの転送、旧URLから新URLへの301リダイレクトなどに使います。
問題になるのは、転送先でも別の転送が発生し、最終ページへ到達できない状態です。
典型的なループ
http://example.com
↓ HTTPSへ転送
https://example.com
↓ HTTPへ転送
http://example.com
↓
繰り返し
正常:A → B → 表示
ループ:A → B → A → B → …
ブラウザは無限に転送し続けず、一定回数を超えると「リダイレクトが多すぎます」として表示を停止します。
最初に症状を分ける
| 症状 | 主な確認候補 |
|---|---|
| サイト全体でループ | URL設定・HTTPS・CDN・.htaccess |
| ログイン画面だけループ | Cookie・URL設定・キャッシュ・プラグイン |
| 特定ページだけループ | 個別リダイレクト・SEOプラグイン |
| SSL化後から発生 | HTTP/HTTPS設定の競合 |
| ドメイン変更後から発生 | home・siteurl・旧URL残存 |
| CDN導入後から発生 | SSLモード・プロキシ設定 |
最初に確認する3点
- いつから発生したか
- どのURLで発生するか
- 直前に何を変更したか
SSL化、ドメイン変更、サーバー移転、CDN導入、リダイレクトプラグイン設定の直後であれば、その変更を最優先で確認します。
原因1.WordPressアドレスとサイトアドレスの不一致
WordPressには「WordPress アドレス(URL)」と「サイトアドレス(URL)」という2つの重要な設定があります。
| 設定 | 役割 |
|---|---|
| WordPress アドレス | WordPress本体が置かれているURL |
| サイトアドレス | 訪問者がアクセスするサイトURL |
通常のルート設置では、両方を同じURLにするケースが多くなります。
よくある不整合
WordPress アドレス:http://example.com
サイトアドレス:https://example.com
HTTPS化後に片方だけhttpのまま残るなど、設定が意図せず異なると、WordPressがURLを別方向へ戻そうとしてループすることがあります。
管理画面に入れる場合
- 「設定」を開く
- 「一般」を開く
- WordPress アドレスを確認
- サイトアドレスを確認
- http/https、www有無、ドメイン名を確認
原因2.WP_HOME・WP_SITEURLの設定が競合している
wp-config.phpにWP_HOMEやWP_SITEURLが定義されている場合、管理画面やデータベースの値よりこちらが優先されることがあります。
確認する定数
WP_HOME
WP_SITEURL
WordPress公式でも、「Too many redirects」の原因候補として、wp-config.phpのWP_HOME・WP_SITEURLと、データベース内のhome・siteurlの不一致が案内されています。
同じ設定を複数場所で管理しない
wp-config.phpでURLを固定しているのに、データベース側だけ変更しても反映されないことがあります。 現在どこでURLを決めているか確認してください。
管理画面に入れない場合のURL確認方法
リダイレクトループで管理画面へ入れない場合は、wp-config.phpやデータベースを確認します。
wp-config.phpを確認する
WP_HOME・WP_SITEURLが書かれている場合は、現在の正しいURLと一致しているか確認します。
データベースを確認する
レンタルサーバーのphpMyAdminなどを利用できる場合は、WordPressのoptionsテーブルにある「home」と「siteurl」を確認できます。
直接編集前にバックアップ
データベースを直接編集する場合は、必ず作業前バックアップを取ってください。 テーブル接頭辞を変更しているサイトでは、wp_optionsという名前ではない場合があります。
原因3.HTTPとHTTPSのリダイレクトが競合している
SSL化後にリダイレクトループが発生した場合は、複数箇所でHTTPS転送を設定していないか確認します。
HTTPS転送を設定できる場所
- レンタルサーバー管理画面
- .htaccess
- Nginx設定
- WordPressプラグイン
- CDN
- ロードバランサー・リバースプロキシ
複数箇所で同じ方向へ転送しているだけなら必ずしもループしませんが、片方がHTTPS、もう片方がHTTPへ戻す設定になっていると循環します。
サーバー:HTTP → HTTPS
別設定:HTTPS → HTTP
= リダイレクトループ
原因4.CloudflareなどCDNのSSL設定
CDNやリバースプロキシを利用すると、訪問者とCDN、CDNと元サーバーの通信が別々になります。 ここを理解せずSSL設定を組み合わせると、WordPress側ではHTTPに見え、CDN側ではHTTPSという状態が起きることがあります。
Cloudflare Flexibleで起きる代表例
CloudflareのFlexibleモードでは、訪問者からCloudflareまではHTTPSでも、CloudflareからオリジンサーバーへはHTTPで接続します。
この状態でオリジンサーバーが「HTTPアクセスは必ずHTTPSへ転送」と設定されていると、次のようなループが起こります。
https://example.comへアクセス
オリジンへHTTPで接続
HTTPなのでHTTPSへリダイレクト
再びHTTPでオリジンへ接続
Flexible+オリジンHTTPS強制に注意
Cloudflare公式も、この組み合わせはリダイレクトループを起こすため、オリジンに有効なSSL証明書がある場合はFullまたはFull (strict)など、構成に合った暗号化モードを使うよう案内しています。
原因5.wwwあり・なしのリダイレクトが競合している
「wwwあり」と「wwwなし」の統一設定が複数箇所で逆方向になっていると、ループすることがあります。
競合例
サーバー:example.com → www.example.com
CDN:www.example.com → example.com
HTTPS化と組み合わさると、http/httpsとwww有無の両方が変わり、原因が見えにくくなります。
判断方法
最終的に使用する正規URLを1つ決め、WordPress・サーバー・CDN・リダイレクト設定を同じ方向へ統一します。
原因6.リダイレクト系プラグインの設定
リダイレクト管理、SSL化、SEO、キャッシュ、セキュリティなどのプラグインが転送処理を追加することがあります。
例
プラグインA:/page-a/ → /page-b/
プラグインB:/page-b/ → /page-a/
このように複数のプラグインや設定が逆向きの転送を作るとループします。
確認すること
- 最近追加したリダイレクト設定
- SSL化プラグイン
- SEOプラグインのリダイレクト
- キャッシュプラグイン
- セキュリティプラグイン
原因7..htaccessのリダイレクト競合
Apache系サーバーでは、.htaccessにHTTP→HTTPS、www統一、旧URL転送などを書くことがあります。
古いルールと新しいルールが重複すると、意図しない転送が起こる場合があります。
.htaccessを全部削除しない
WordPressのパーマリンク、アクセス制限、キャッシュ、セキュリティなど別の設定が含まれていることがあります。編集前に必ずバックアップしてください。
Apache環境で問題が起きた直前に.htaccessを変更している場合は、その変更部分から確認します。
原因8.ログインCookieの問題
WordPressへログインした直後に再びログイン画面へ戻る場合は、Cookieが正しく保存・送信されていない可能性があります。
WordPress公式では、ログインリダイレクトループの対処として、ブラウザCookieの削除、WP_HOME・WP_SITEURLの確認、プラグイン競合の確認などを案内しています。
ログインだけループする場合
- 対象ドメインのCookieを削除
- wwwあり・なしを確認
- http/httpsを確認
- COOKIE_DOMAINの独自設定を確認
- ログインページをキャッシュしていないか確認
ブラウザの全履歴を削除する必要はありません。まず対象サイトのCookieとキャッシュを削除して再確認します。
原因9.キャッシュに古いリダイレクトが残っている
設定を直しても、ブラウザ・WordPress・サーバー・CDNに古い転送結果が残っていると、まだループしているように見えることがあります。
確認するキャッシュ
- ブラウザキャッシュ
- WordPressキャッシュプラグイン
- レンタルサーバーキャッシュ
- CDNキャッシュ
設定修正後は、利用中のキャッシュだけを必要に応じて削除し、シークレットウィンドウや別ブラウザでも確認します。
原因10.サーバー移転・ドメイン変更後の旧URL残存
サーバー移転やドメイン変更では、データベース内に旧ドメインやhttp URLが残っていることがあります。
WordPress公式では、移転時にサイトURLを変更する方法としてWP_HOME・WP_SITEURLやデータベースのhome・siteurl確認が案内されています。 大量のURL変更が必要な場合は、バックアップ後にWP-CLIのsearch-replaceなどを使う方法もあります。
単純なSQL一括置換は慎重に
WordPressのデータにはシリアライズされた値が含まれることがあります。URLの大量置換は、WordPress対応の移行ツールやWP-CLIなど、データ構造を考慮できる方法を使ってください。
リダイレクトループの安全な直し方
原因を一度に全部変更せず、影響の小さい項目から順に確認します。
全体・ログイン・特定ページを分ける
home・siteurl・WP_HOME・WP_SITEURL
対処1.ブラウザCookieを削除する
ログイン画面だけでループする場合は、最初に対象ドメインのCookieを削除して再ログインします。
WordPressのログイン認証はCookieを利用するため、ドメイン・HTTPS設定を変更したあとに古いCookieが残っていると正常に認証できない場合があります。
ここで直れば
WordPress本体やサーバー設定を変更する必要はありません。まず最も影響の小さいCookie確認から始めます。
対処2.WordPressのURL設定を統一する
管理画面に入れるなら「設定 → 一般」でURLを確認します。 入れない場合はwp-config.phpとデータベースのhome・siteurlを確認します。
確認ポイント
- httpsになっているか
- wwwあり・なしが統一されているか
- 旧ドメインが残っていないか
- WP_HOME・WP_SITEURLと矛盾していないか
正しいURLを確認してから変更する
WordPress本体をサブディレクトリへ置き、サイトトップだけルートで表示する構成では、WordPressアドレスとサイトアドレスが意図的に異なることがあります。単純に同じ値へ揃えないでください。
対処3.HTTPSリダイレクトを1か所ずつ確認する
HTTP→HTTPS転送をサーバー、.htaccess、プラグイン、CDNの複数箇所で設定している場合は、それぞれの方向を確認します。
重要なのは「最終的にHTTPSへ統一する」ことであり、転送機能を何重にも設定することではありません。
教科書の考え方
できるだけ管理場所を明確にし、「どこがHTTPSへ転送しているのか」を説明できる構成にしてください。
対処4.CDN・CloudflareのSSLモードを確認する
Cloudflareなどを使っている場合は、訪問者→CDNとCDN→オリジンの暗号化方式を確認します。
オリジンサーバーに有効なSSL証明書がありHTTPS接続できる構成なら、CloudflareではFullまたはFull (strict)が適切なケースがあります。
設定名だけで選ばない
CDNごとにSSLモードの意味が異なります。利用サービスの公式ドキュメントを確認し、オリジンサーバー側のSSL設定と組み合わせて判断してください。
対処5.プラグインを切り分ける
直前にプラグイン設定を変更した場合は、対象プラグインから確認します。
管理画面へ入れない場合、FTP/SFTPやファイルマネージャーでプラグインフォルダ名を一時変更して切り分ける方法があります。 ただし、EC・会員・セキュリティ機能が止まる場合があるため、本番サイトでは慎重に行います。
対処6..htaccessを確認する
Apache環境では、.htaccess内のRewriteRuleやRedirect設定を確認します。
特に見るもの
- HTTP→HTTPS
- wwwあり・なし
- 旧ドメイン→新ドメイン
- 特定ページの301・302
- プラグインが追加したリダイレクト
同じURLを別方向へ戻すルールがないかを確認します。
リダイレクトチェーンとループの違い
| 状態 | 例 | 結果 |
|---|---|---|
| 正常な転送 | A → B | Bを表示 |
| チェーン | A → B → C | Cを表示 |
| ループ | A → B → A | 表示できない |
チェーンは最終URLへ到達できますが、転送回数が増えると余計な通信が発生します。 ループは最終URLへ到達できないため、サイト障害として優先的に修正します。
301と302のどちらがループしやすい?
301だからループする、302なら安全という違いはありません。 どちらでも転送先が循環すればリダイレクトループになります。
301と302の使い分け自体は、別記事「301リダイレクトとは?設定方法とSEO上の注意点」「302リダイレクトとは?301との違いを解説」で扱います。
SEOへの影響は?
リダイレクトループが発生すると、ユーザーだけでなく検索エンジンのクローラーも最終ページへ正常に到達できません。
そのためSEO目的以前に、まずサイトへ正常アクセスできる状態へ戻すことが重要です。
「順位を戻すため」と慌てて別のリダイレクトを追加しない
原因を確認せず301を重ねると、さらに転送ルールが複雑になる場合があります。まず既存リダイレクトの流れを整理してください。
どんな場合にサーバー会社へ相談する?
相談を検討する状況
- SSL設定を変更してからサイト全体がループする
- .htaccessを元に戻しても直らない
- サーバー側強制リダイレクトの設定場所が分からない
- リバースプロキシやロードバランサーの構成が分からない
- 管理画面にもFTPにも入れない
- 自分の設定変更がないのに突然発生した
問い合わせ時は、「いつから」「どのURLで」「SSL化・移転・CDN変更の有無」「確認済みの設定」を伝えると原因を切り分けやすくなります。
教科書判定
リダイレクトループは「転送設定を追加する」のではなく「競合している2方向を探す」
初心者が最初に見るべきなのは、WordPressアドレス・サイトアドレス、http/https、wwwあり・なしです。
その次に、CDN・プラグイン・.htaccess・サーバー側のリダイレクトを確認してください。
特にSSL化やCDN導入直後なら、訪問者→CDN→サーバーの各区間でHTTP/HTTPSがどう扱われているかを確認することが重要です。
一度に複数設定を変えると原因が分からなくなるため、バックアップを取り、1項目ずつ確認してください。
FAQ
Q.「ERR_TOO_MANY_REDIRECTS」と表示されたらWordPressが壊れていますか?
必ずしもWordPress本体の故障ではありません。URL設定、HTTPS、CDN、.htaccess、プラグインなど複数の転送設定が競合している場合があります。
Q.Cookieを削除すれば直りますか?
ログイン画面だけのループなら直る場合があります。ただしサイト全体でHTTPとHTTPSが往復しているような設定競合はCookie削除では解決しません。
Q.Cloudflareを使うと必ずリダイレクトループになりますか?
いいえ。オリジンサーバーとCloudflareのSSL/TLS設定が正しく組み合わされていれば問題ありません。Flexibleとオリジン側HTTPS強制など、設定が競合するとループすることがあります。
Q.301リダイレクトを全部削除すれば直りますか?
おすすめしません。必要なURL移転まで壊れる可能性があります。どのURLからどこへ転送されているか確認し、循環しているルールだけを修正してください。
Q.管理画面へ入れない場合はどう確認しますか?
wp-config.phpのWP_HOME・WP_SITEURL、データベースのhome・siteurl、プラグイン、.htaccessなどをFTP/SFTPやレンタルサーバーの管理画面から確認できます。直接編集前にはバックアップしてください。
まとめ
この記事の結論
- リダイレクトループは転送先が循環してページへ到達できない状態
- 最初にサイト全体・ログイン・特定ページのどこで起きるか分ける
- WordPressのhome・siteurl・WP_HOME・WP_SITEURLを確認する
- HTTP/HTTPSとwwwあり・なしを統一する
- CDNとオリジンサーバーのSSL設定競合を確認する
- プラグイン・.htaccess・サーバー側の転送を1つずつ確認する
- ログインだけならCookie・キャッシュも確認する
- 設定変更は一度に複数行わず、バックアップ後に切り分ける
リダイレクトループは、「WordPressだけのエラー」と考えると原因を見失いやすいトラブルです。 WordPress、サーバー、CDN、ブラウザのどこで転送が発生しているかを順番に確認し、逆方向へ戻している設定を見つけて修正してください。
「HTTPからHTTPSへリダイレクトする方法」「301リダイレクトとは?設定方法とSEO上の注意点」「wp-config.phpとは?役割・確認ポイント・注意点」もあわせて確認してください。