ERR_TOO_MANY_REDIRECTS means the page is stuck in a redirect loop. The browser is being sent from one URL to another again and again, until it gives up and stops loading the page.
This error is common after HTTPS changes, Cloudflare setup, WordPress migrations, login issues, bad redirect rules, and proxy misconfiguration. In most cases, the site is not fully down. It is trapped in a loop caused by conflicting URL rules or broken session logic.
Quick Fix
- Clear cookies for the affected site and try again.
- Open the page in a private or incognito window.
- Check whether the loop affects one page or the whole site.
- If you own the site, test HTTP and HTTPS separately.
- Check for conflicts between
wwwand non-wwwredirects. - If you use Cloudflare, review SSL mode and Always Use HTTPS.
- Disable redirect, cache, SSL, and security plugins temporarily.
- Check WordPress Address and Site Address values.
- Inspect
.htaccess, NGINX redirects, and server rewrite rules. - Trace the full redirect chain before changing multiple things at once.
What Is ERR_TOO_MANY_REDIRECTS?
ERR_TOO_MANY_REDIRECTS is a browser error shown when a page redirects so many times that the browser stops following the chain. Google Chrome help describes it as a page that has tried to redirect too many times. A very common browser-side fix is clearing cookies, because broken session cookies can keep the loop alive.
The browser may show messages like:
This page isn’t working
example.com redirected you too many times
ERR_TOO_MANY_REDIRECTS
In technical terms, the browser receives repeated 301, 302, 307, or 308 redirects that never lead to a stable final page.
This is different from other common errors:
- ERR_CONNECTION_REFUSED means the connection was not accepted.
- ERR_CONNECTION_RESET means the connection was cut off.
- ERR_TOO_MANY_REDIRECTS means the page keeps bouncing between URLs.
The browser is usually not confused. It is protecting the user from an endless redirect cycle.
Why ERR_TOO_MANY_REDIRECTS Happens
Most real cases come from a small number of causes.
1. HTTP and HTTPS Redirect Rules Conflict
This is one of the most common causes.
Typical loop pattern:
- one rule redirects
httptohttps, - another rule redirects
httpsback tohttp, - the browser keeps bouncing forever.
This often happens after SSL setup changes, reverse proxy deployment, or Cloudflare configuration mistakes.
2. WWW and Non-WWW Redirects Fight Each Other
This is another classic loop.
Example:
- one rule forces
www.example.com, - another rule forces
example.com, - the browser goes back and forth until it hits the redirect limit.
If this error affects the whole site right after a domain normalization change, check this first.
3. Cloudflare SSL Mode Does Not Match the Origin Setup
This is a very common cause on proxied sites. Cloudflare documents redirect loops clearly in its SSL troubleshooting pages.
Examples:
- Flexible mode with origin forcing HTTPS can create a loop.
- Full or Full (strict) with origin forcing HTTP can create a loop.
- Always Use HTTPS combined with origin redirects can create duplicate redirect logic.
Cloudflare specifically recommends reviewing both edge-side and origin-side redirects to avoid redirect loop errors.
4. Browser Cookies Are Broken or Stale
Google Chrome help specifically notes that pages can fail with ERR_TOO_MANY_REDIRECTS when cookies are not working properly. This is why clearing cookies is one of the first real fixes, especially if the issue affects one site only.
This often happens when:
- the site uses login-based redirects,
- old cookies survive a migration,
- the domain or protocol changed,
- session cookies point to the wrong host.
5. WordPress Address and Site Address Are Wrong
On WordPress sites, bad URL settings are a major source of redirect loops.
Typical examples:
- WordPress Address uses HTTP, but Site Address uses HTTPS,
- WordPress uses non-
www, but the server forceswww, - a staging URL is still stored after migration,
- reverse proxy HTTPS is not passed to WordPress correctly.
If the site is WordPress and the loop affects login or admin pages, check URL settings early.
6. A Plugin or Theme Is Forcing Bad Redirects
Redirect, SSL, cache, security, membership, and multilingual plugins are common causes.
They can create loops by:
- forcing login redirects,
- rewriting URLs badly,
- adding duplicate canonical redirects,
- forcing HTTPS in conflict with server rules,
- using outdated domain assumptions.
7. .htaccess or NGINX Rules Are Wrong
If redirect logic is hardcoded at the server level, browser cookie clearing will not fix it.
This is common when:
- old redirect rules remain after migration,
- security rules redirect admin paths strangely,
- multiple redirect blocks exist for the same host,
- server and app redirects overlap.
8. Reverse Proxy or Load Balancer HTTPS Detection Is Broken
If the site is behind Cloudflare, NGINX, HAProxy, Traefik, or a hosting proxy, the origin app may not know whether the visitor is actually on HTTP or HTTPS.
That can lead to loops like this:
- visitor is on HTTPS,
- proxy forwards to origin,
- origin thinks the request is HTTP,
- origin redirects to HTTPS again,
- the visitor is already there, so the cycle repeats.
9. Login or Authentication Logic Keeps Re-Redirecting
Some redirect loops are page-specific and session-specific. The homepage may work, but login, checkout, or admin pages loop endlessly.
This often happens when:
- auth cookies are broken,
- role-based redirects are wrong,
- membership plugins conflict,
- cached login redirects are being served.
How to Fix ERR_TOO_MANY_REDIRECTS Step by Step
Start by isolating whether the loop is caused by browser cookies, app settings, or redirect rules on the server or CDN.
1. Clear Cookies for the Affected Site
This is one of the best first fixes, especially when one site fails while others work. Chrome help specifically recommends deleting cookies for redirect loop errors because cookies often keep the loop active.
Clear site cookies, close the browser tab, then try again.
If the site works after that, the main cause was probably broken or stale session state.
2. Test the Site in a Private or Incognito Window
This is one of the fastest diagnostic steps.
- If the site works in private mode, the likely cause is cookies, cache, or browser state.
- If it still loops there, the issue is more likely server-side, app-side, or proxy-side.
3. Trace the Full Redirect Chain
Before changing rules, inspect the actual chain.
Check:
- which URL starts the loop,
- which URL repeats,
- whether the loop is HTTP ↔ HTTPS,
- whether it is
www↔ non-www, - whether login or auth redirects are involved.
You cannot fix redirect loops reliably if you do not know which redirect repeats.
4. Test HTTP and HTTPS Separately
Try both versions manually:
http://example.comhttps://example.com
This often reveals whether the loop is caused by SSL forcing, HSTS behavior, or conflicting redirect rules.
If one version loads and the other loops, focus on SSL or server redirect logic first.
5. Check Cloudflare SSL/TLS Settings
If the site uses Cloudflare, this is a high-priority step.
Review:
- SSL/TLS encryption mode,
- Always Use HTTPS,
- redirect rules,
- page rules or bulk redirects,
- origin redirect behavior.
Cloudflare’s docs clearly show how redirect loops happen when edge redirects and origin redirects conflict. Flexible mode and bad origin redirects are especially common causes.
6. Remove Duplicate Redirect Logic
Do not force the same redirect in three places.
Common stack mistakes look like this:
- Cloudflare forces HTTPS,
- NGINX also forces HTTPS,
- WordPress plugin also forces HTTPS.
Or:
- Cloudflare forces non-
www, - Apache forces
www, - the SEO plugin sets a different canonical redirect.
Pick one clean redirect strategy and remove the rest.
7. Check WordPress Site URL Settings
If the site uses WordPress, verify:
- WordPress Address (URL)
- Site Address (URL)
Make sure they match the real canonical public URL exactly:
- correct protocol,
- correct hostname,
- correct subdirectory if used.
If needed, define them temporarily in wp-config.php:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
Use the real canonical domain, not the example above.
8. Disable Redirect, Cache, SSL, and Security Plugins Temporarily
If the issue started after a plugin change, disable likely suspects first.
Focus on:
- redirect plugins,
- SSL helper plugins,
- cache plugins,
- login and membership plugins,
- security plugins,
- multilingual plugins.
Then test again after clearing cache.
9. Check .htaccess Rules
If the site runs on Apache or LiteSpeed, inspect .htaccess.
Look for:
- duplicate HTTPS rules,
- duplicate
wwwnormalization rules, - old migration redirects,
- plugin-generated redirect blocks.
One old redirect rule is enough to trap the site in a permanent loop.
10. Check NGINX or Reverse Proxy Redirects
If the site uses NGINX or a load balancer, review the redirect logic there too.
Common issues:
- returning HTTPS redirects when the request is already HTTPS,
- using the wrong forwarded protocol header,
- conflicting host normalization,
- proxy not passing HTTPS status to the origin app.
11. Check HSTS and Browser-Side HTTPS Forcing
HSTS can keep the browser on HTTPS even when the origin or proxy keeps redirecting differently. Cloudflare documents HSTS as another possible redirect-loop factor when encryption and redirect behavior do not match.
This matters most if:
- the loop continues even after some redirect rules are removed,
- the browser never seems to attempt HTTP,
- the site recently changed HTTPS enforcement behavior.
12. Clear All Cache Layers
After changing redirect rules, clear all caches.
- browser cache,
- site cookies,
- cache plugin cache,
- server cache,
- CDN cache.
Then retest in a private window.
Without this step, you may keep seeing a loop that is already fixed.
13. Check Login and Session Redirect Logic
If the loop affects only admin, account, or checkout pages, inspect auth-related logic first.
Look for:
- session cookie issues,
- role-based redirects,
- membership plugin redirects,
- cached login pages,
- wrong post-login destination rules.
14. Review Recent Changes First
This is often the shortest path to the cause.
Ask what changed right before the loop started:
- Cloudflare setup,
- SSL mode change,
- new redirect rules,
- plugin update,
- domain change,
- migration,
- reverse proxy setup.
Most redirect loops begin right after one of those changes.
Advanced Troubleshooting
Compare One Working URL with One Broken URL
Do not test randomly. Compare:
- homepage vs admin page,
- HTTP vs HTTPS,
wwwvs non-www,- logged-out page vs logged-in page.
This reveals whether the loop is global, login-specific, or protocol-specific.
Check Redirect Response Codes
Not all loops are built the same way.
Look for repeated:
301 Moved Permanently302 Found307 Temporary Redirect308 Permanent Redirect
This helps identify whether the problem is app logic, proxy logic, or browser-side cached redirects.
Inspect Cookie Behavior on Login Pages
If the loop happens only after login, check whether the login cookie is actually being set and whether it belongs to the correct domain and path.
This is especially important on:
- WordPress admin,
- membership sites,
- checkout flows,
- subdomain-based applications.
Review One Redirect Source at a Time
Redirects may come from:
- Cloudflare,
- load balancer,
- NGINX,
- Apache,
- WordPress,
- plugins,
- application code.
Find out which layer is issuing the repeated redirect. That is usually where the real fix belongs.
Prevention Tips
- Use one canonical hostname consistently.
- Avoid forcing the same redirect at multiple layers.
- Test HTTP and HTTPS after every SSL or CDN change.
- Keep Cloudflare SSL mode aligned with the real origin setup.
- Clear cookies and cache after domain or protocol changes.
- Do not leave old migration redirects in place.
- Be careful with login, membership, and role-based redirect plugins.
- Document your redirect strategy so future changes do not conflict.
The best prevention is simple: make sure one system decides the canonical URL, and remove competing redirect logic everywhere else.
When to Contact Support
Contact your hosting provider if:
- you cannot inspect server or proxy redirects,
- the issue started after migration or SSL changes,
- reverse proxy behavior is unclear,
- you need access to logs or config you do not control.
Contact Cloudflare support or follow Cloudflare docs if:
- the site uses Cloudflare and SSL mode may be involved,
- Always Use HTTPS or redirect rules may conflict,
- the loop appears only behind the proxy.
Focus on local browser troubleshooting if:
- the issue affects one site only,
- private browsing changes the result,
- clearing cookies fixes it,
- the site is login-based and session cookies may be broken.
FAQ
What does ERR_TOO_MANY_REDIRECTS mean?
It means the browser followed too many redirects and stopped because the page is stuck in a loop.
How do I fix ERR_TOO_MANY_REDIRECTS fast?
Start by clearing cookies for the site, testing in a private window, then check redirect rules, HTTPS forcing, Cloudflare SSL mode, and WordPress URL settings if relevant.
Can cookies cause ERR_TOO_MANY_REDIRECTS?
Yes. Chrome help specifically notes that redirect errors can happen when cookies are not working correctly. Broken session cookies are a common cause on login-based sites.
Can Cloudflare cause ERR_TOO_MANY_REDIRECTS?
Yes. Cloudflare documents redirect loops caused by SSL mode mismatches, Always Use HTTPS, HSTS, and conflicting redirect rules between Cloudflare and the origin.
Why does ERR_TOO_MANY_REDIRECTS happen after enabling HTTPS?
Usually because one layer forces HTTPS while another layer redirects back to HTTP, or because multiple systems are trying to enforce canonical URLs in conflicting ways.
Final Thoughts
ERR_TOO_MANY_REDIRECTS usually looks complicated, but the real cause is often simple: two or more redirect rules are fighting each other, or broken cookies keep forcing the browser into the same loop.
Start with cookies and private browsing. Then trace the redirect chain, check SSL and hostname normalization, and remove duplicate redirect logic from Cloudflare, the server, and the app. That order solves most redirect loops much faster than changing random settings blindly.