WordPressのリダイレクトループとは?原因と直し方

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を別方向へ戻そうとしてループすることがあります。

管理画面に入れる場合

  1. 「設定」を開く
  2. 「一般」を開く
  3. WordPress アドレスを確認
  4. サイトアドレスを確認
  5. 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へ転送」と設定されていると、次のようなループが起こります。

1.訪問者
https://example.comへアクセス
2.Cloudflare
オリジンへHTTPで接続
3.オリジン
HTTPなのでHTTPSへリダイレクト
4.Cloudflare
再び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など、データ構造を考慮できる方法を使ってください。

リダイレクトループの安全な直し方

原因を一度に全部変更せず、影響の小さい項目から順に確認します。

STEP1.発生範囲を確認
全体・ログイン・特定ページを分ける
STEP2.ブラウザCookie・キャッシュを確認
STEP3.WordPress URLを確認
home・siteurl・WP_HOME・WP_SITEURL
STEP4.HTTPS・www統一設定を確認
STEP5.CDN・プロキシを確認
STEP6.プラグインを切り分け
STEP7..htaccess・Webサーバー設定を確認
STEP8.キャッシュ削除後に再テスト

対処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.プラグインを切り分ける

直前にプラグイン設定を変更した場合は、対象プラグインから確認します。

1.変更履歴を確認
2.リダイレクト・SSL系を優先
3.1つずつ停止して確認
4.原因特定後に設定修正

管理画面へ入れない場合、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とは?役割・確認ポイント・注意点」もあわせて確認してください。