TalkToWPTalkToWP
Log inStart Free
SoloOne WordPress site, watched and fixed for you.AgencyEvery client site in one fleet view.
NoticeboardCustomer storiesBlogFAQSecurity
Solo pricingAgency pricing
Log inStart Free

ERR_TOO_MANY_REDIRECTS in WordPress: Fix the Redirect Loop

AG Abhishek Gupta Published 10 Nov 2026 7 min read
Quick answer

A loop between http and https, or two settings that disagree. Match WordPress and Site Address, set Cloudflare SSL to Full, then clear every cache.

ERR_TOO_MANY_REDIRECTS means your site is sending visitors in a loop, redirecting from one URL to another and back until the browser gives up. In WordPress the usual causes are mismatched WordPress Address and Site Address settings, a clash between http and https, SSL set to “Flexible” in Cloudflare, or a redirect or caching plugin. Clear your cookies, then check each of those in turn.

Key Takeaways

  • The error is a redirect loop, not a missing page. Two rules are pointing at each other.
  • First, clear cookies and cache for the site, then try a private window.
  • Check Settings > General: both addresses should match and use the same http or https.
  • Cloudflare “Flexible” SSL with a WordPress HTTPS redirect is a classic cause.
  • WP_HOME and WP_SITEURL in wp-config.php can override a bad database value.
  • Back up before editing files or the database.

Chrome shows this as “This page isn’t working. yoursite.com redirected you too many times”, and other browsers use different wording. It looks like a big failure, but it is usually a single wrong setting.

What Does ERR_TOO_MANY_REDIRECTS Mean?

A redirect sends visitors from one address to another, for example from http:// to https://, or from example.com to www.example.com. A loop happens when rule A sends the browser to B and rule B sends it back to A. The browser follows the chain about 20 times and then stops with this error.

Because WordPress, your server, a plugin and a CDN can all issue redirects, any two of them can disagree.

What Causes the Redirect Loop?

  • WordPress Address and Site Address do not match, or differ in www or in http versus https.
  • A forced HTTPS redirect with no real HTTPS behind it, or an SSL certificate problem.
  • Cloudflare SSL mode set to “Flexible” while the origin server also forces HTTPS.
  • A reverse proxy or load balancer that hides the original HTTPS request from WordPress.
  • Conflicting redirect rules in .htaccess, a plugin and the host’s settings.
  • A caching or redirect plugin, or a stale browser or site cache.
  • Cookies from an earlier session that confuse the login.

How Do You Fix It?

Back up before you change files or settings. If you cannot reach wp-admin, use FTP, SFTP or your host’s file manager.

1. Clear cookies and try a private window

Delete cookies and cached files for your site in the browser, or open a private window. A stale cookie is a surprisingly common cause, and this costs nothing to test. Try another browser too.

2. Check the WordPress Address and Site Address

If you can log in, go to Settings > General. The WordPress Address (URL) and Site Address (URL) should normally be the same, and both should use https:// if your site has a working SSL certificate. Make sure www is consistent with the version you want to use. Save and test.

3. Set the URLs in wp-config.php if you cannot log in

If the loop locks you out of wp-admin, define the addresses directly. Add these lines to wp-config.php above the “That’s all, stop editing” line:

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

Use your own domain. These constants override the values stored in the database, and the fields in Settings > General become read-only while they are set. Once the site works, you can fix the database values and remove the lines if you prefer.

4. Check Cloudflare or your CDN

In Cloudflare, go to SSL/TLS and look at the encryption mode. If it is on “Flexible” and your WordPress site or host forces HTTPS, you get a loop: Cloudflare talks to your server over http, your server redirects to https, and the cycle repeats. Switch the mode to “Full” or, with a valid certificate on the server, “Full (strict)”. Purge the Cloudflare cache afterwards. Also look for page rules or redirect rules that duplicate your server’s own.

5. Handle a reverse proxy or load balancer

If your host places a proxy in front of WordPress, WordPress may not realise the visitor used https. Hosts normally configure this for you, so ask them. If you manage the server, a common fix is to add this to wp-config.php above the “stop editing” line:

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
    $_SERVER['HTTPS'] = 'on';
}

Only use it if your proxy really sets that header.

6. Disable redirect and caching plugins

Rename wp-content/plugins to plugins-off to deactivate everything. If the loop stops, rename it back and reactivate plugins one at a time. Watch SSL plugins, redirect managers, SEO plugins with redirect features, and caching plugins in particular. Clear any cache they hold, including your host’s cache.

7. Rename or reset .htaccess

Rename .htaccess to .htaccess-old, then, if the site loads, go to Settings > Permalinks and click Save Changes to create a clean one. Custom rules that force www or https may be duplicating what WordPress or your host already does.

8. Check the SSL certificate

Visit the https version of your site. If the certificate is missing or invalid, install or renew it through your host before forcing https anywhere.

How Do You Prevent It?

  • Pick one canonical address, such as https://example.com, and set it everywhere: WordPress, your CDN, your host.
  • Put redirect rules in one place rather than in a plugin, .htaccess and the CDN at once.
  • Test after any SSL, CDN or migration change.
  • Back up before changing site settings, so a wrong value is easy to reverse.
  • Monitor the site. A redirect loop makes a site unreachable, and monitoring finds out first.

TalkToWP checks every site every 5 minutes on every plan, Free included. When a change such as an update causes a redirect loop or another error, it tells you which plugin or update was responsible and hands you the fix in plain English. The free plan covers one site, and you can sign up here. If a plugin update is behind the loop, our guide on whether an update is safe helps you avoid repeats, and the 500 Internal Server Error guide covers a related server-side failure.

Frequently Asked Questions

Why do I get ERR_TOO_MANY_REDIRECTS after installing an SSL certificate?

Usually because WordPress or a plugin now forces https while the Site Address still says http, or because Cloudflare is on “Flexible” SSL. Make both WordPress addresses use https and set Cloudflare to Full or Full (strict).

Can I fix it if I cannot log in to wp-admin?

Yes. Set WP_HOME and WP_SITEURL in wp-config.php, or rename the plugins folder to rule out a plugin. Both need only FTP or a file manager, not wp-admin access.

Is the error caused by my browser?

Sometimes. Stale cookies and cached redirects can keep the loop alive after the real cause is fixed. Clear cookies for the site or use a private window to check, then purge any site or CDN cache too.

Should WordPress Address and Site Address always match?

Normally yes. They differ only in specific setups, for example when WordPress core files sit in a subfolder while the site displays at the domain root. If you are not sure you have that setup, keep them identical.

Does the www or non-www choice matter?

Yes, consistency matters. If WordPress says example.com but a rule redirects to www.example.com, or the reverse, the two can fight. Pick one and make WordPress, your host and your CDN all agree.

AG
Abhishek Gupta Founder of TalkToWP. Has been fixing WordPress sites for agencies and owners for over a decade.

Related answers

All answers
Monitoring Uptime Said 100%, Site Was Broken: 5 WordPress Cases Read AI and MCP WordPress MCP Servers for Multiple Sites, Compared (2026) Read Plugin updates Update All WordPress Plugins at Once? A Decision Table Read