WordPress

ERR_TOO_MANY_REDIRECTS on WordPress: How to Fix a Redirect Loop

October 23, 2026 · 3 views

ERR_TOO_MANY_REDIRECTS (Chrome), "The page isn't redirecting properly" (Firefox), or "Safari can't open the page because too many redirects occurred" all mean the same thing. The browser was sent from address A to address B and back to A, over and over, until it gave up. On WordPress sites the loop almost always involves HTTPS, www or a caching / security plugin. Here is how to find which one.

1. Rule out your browser

Open the site in a private window or on your phone using mobile data. If it works there, clear the cookies for your domain and you are done. If it loops everywhere, the problem is on the site.

2. See the loop

Paste your address into a redirect checker (search "redirect checker"), or run curl -I -L https://example.com. You will see the chain, for example:

https://example.com      → 301 → http://example.com
http://example.com       → 301 → https://example.com
https://example.com      → 301 → http://example.com ...

Two parties disagree about the "right" address. Now find the two parties.

3. Check the WordPress addresses

In Settings → General, WordPress Address and Site Address must both use the same, final form: https://, and with or without www exactly as you want visitors to see it. If you can't reach the admin, set them in wp-config.php:

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

If the site then loads, the database had http:// or the wrong www form. Fix it properly in the settings (or with a search-replace tool) and remove the two lines.

4. HTTPS behind Cloudflare or a proxy

The most common loop today: Cloudflare's SSL mode is Flexible. Cloudflare talks to your server over plain HTTP, your server (or a plugin) redirects to HTTPS, Cloudflare requests HTTP again, and so on. Set Cloudflare → SSL/TLS to Full (strict) and make sure the server has its own certificate (free AutoSSL / Let's Encrypt in cPanel). If you can't change the proxy, tell WordPress the request was HTTPS by adding this near the top of wp-config.php:

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

5. Duplicate redirect rules

Open .htaccess in the site folder. Look for more than one block that forces HTTPS or www. They often pile up there from a host, an SSL plugin and an SEO plugin. Keep exactly one rule, before the # BEGIN WordPress block, for example:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

Then check the plugins that also redirect: Really Simple SSL, Redirection, Rank Math / Yoast redirects, and "force HTTPS" options in security plugins. One place should do the redirect, not three.

6. Caching

A cached redirect can keep looping after you fixed the cause. Purge the cache in your caching plugin (LiteSpeed Cache, WP Rocket, W3 Total Cache), in Cloudflare (Caching → Purge Everything) and in the browser. Then test again in a private window.

Only the admin loops?

If the front end works but /wp-admin sends you back to the login page again and again, it is usually a cookie problem: mixed http/https or www/non-www between WP_HOME and WP_SITEURL, or a security plugin blocking the login cookie. Make both addresses identical and temporarily rename the security plugin's folder.

Redirect loops cost you every visitor and, after a few days, your Google rankings. If you would rather have it fixed now, we untangle redirect and SSL problems at a fixed price, and you pay only after the site works. Get a free diagnosis.

Is your website having a similar issue?

We diagnose and fix it within 24 hours — you only pay after the fix is confirmed.

Get a Free Diagnosis

More from the blog