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 settings.
- 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. 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 HTTP responses 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 protecting the user from an endless redirect cycle.
Why ERR_TOO_MANY_REDIRECTS Happens
Most real cases come from a small number of configuration conflicts.
1. HTTP and HTTPS Redirect Rules Conflict
This is one of the most common causes. One rule redirects http to https, and another rule redirects https back to http. 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
Another classic loop occurs when one rule forces www.example.com, while another forces example.com. 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. For example, using Flexible mode when your origin server forces HTTPS creates a loop. Using Full mode when your origin forces HTTP can also create a loop. Cloudflare recommends reviewing both edge-side and origin-side redirects to avoid conflicts.
4. Browser Cookies Are Broken or Stale
Pages can fail with ERR_TOO_MANY_REDIRECTS when cookies are not working properly. This often happens when the site uses login-based redirects, old cookies survive a migration, or 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 include having the WordPress Address set to HTTP while the Site Address uses HTTPS, or a staging URL still being stored after a migration.
6. A Plugin or Theme Is Forcing Bad Redirects
Redirect, SSL, cache, security, membership, and multilingual plugins can create loops by forcing login redirects, rewriting URLs badly, or adding duplicate canonical redirects.
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, or when server and application redirects overlap.
8. Reverse Proxy HTTPS Detection Is Broken
If the site is behind a proxy (like Cloudflare, NGINX, or HAProxy), the origin app may not know whether the visitor is actually on HTTP or HTTPS. The origin thinks the request is HTTP and redirects to HTTPS, but the visitor is already there, repeating the cycle.
9. Login or Authentication Logic Keeps Re-Redirecting
Some redirect loops are page-specific. The homepage may work, but login or admin pages loop endlessly due to broken auth cookies, wrong role-based redirects, or membership plugin conflicts.
How to Fix ERR_TOO_MANY_REDIRECTS Step by Step
1. Clear Cookies for the Affected Site
This is the best first fix. Clear the site’s cookies, close the browser tab, and try again. If the site works, the cause was likely stale session state.
2. Test the Site in a Private or Incognito Window
If the site works in private mode, the likely cause is your local cookies or browser cache. If it still loops, the issue is server-side or proxy-side.
3. Trace the Full Redirect Chain
Before changing rules, inspect the actual chain using an online redirect checker. Check which URL starts the loop, whether it is an HTTP/HTTPS toggle, or a WWW/non-WWW conflict.
4. Test HTTP and HTTPS Separately
Try loading both http://example.com and https://example.com manually. If one version loads and the other loops, focus on SSL or server redirect logic.
5. Check Cloudflare SSL/TLS Settings
If you use Cloudflare, review your SSL/TLS encryption mode. Ensure it aligns with your origin server (usually Full (strict) is best if your origin has an SSL certificate). Also check Page Rules for conflicting bulk redirects.
6. Remove Duplicate Redirect Logic
Do not force the same redirect in three places. For example, if Cloudflare forces HTTPS, do not also force it in NGINX and via a WordPress plugin. Pick one clean redirect strategy.
7. Check WordPress Site URL Settings
Verify that your WordPress Address (URL) and Site Address (URL) match the real canonical public URL exactly. If needed, define them temporarily in wp-config.php:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
8. Disable Plugins Temporarily
Disable redirect, SSL, cache, and membership plugins. Test the site again after clearing your cache to see if a plugin was causing the loop.
9. Check .htaccess or NGINX Rules
Inspect your server configuration files for duplicate HTTPS rules, old migration redirects, or conflicting host normalizations. One bad rule is enough to trap the site.
10. Clear All Cache Layers
After changing redirect rules, clear your browser cache, cache plugins, server cache, and CDN cache. Without this step, you may keep seeing a loop that is already fixed.
Advanced Troubleshooting
Compare Working and Broken URLs
Compare the homepage vs. admin pages, or logged-out vs. logged-in sessions. This reveals whether the loop is global, login-specific, or protocol-specific.
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.
Prevention Tips
- Use one canonical hostname consistently.
- Avoid forcing the same redirect at multiple network layers.
- Test HTTP and HTTPS after every SSL or CDN change.
- Keep Cloudflare SSL mode aligned with the real origin setup.
- Document your redirect strategy so future changes do not conflict.
When to Contact Support
Contact your hosting provider if you cannot inspect server redirects, the issue started after a server migration, or reverse proxy behavior is unclear. Contact Cloudflare support if the loop appears strictly related to edge-level SSL mismatch.
FAQ
What does ERR_TOO_MANY_REDIRECTS mean?
It means the browser followed too many redirects and stopped because the page is stuck in an infinite loop.
How do I fix ERR_TOO_MANY_REDIRECTS fast?
Start by clearing cookies for the site and testing in a private window. Then check redirect rules, HTTPS forcing, Cloudflare SSL mode, and WordPress URL settings.
Can Cloudflare cause ERR_TOO_MANY_REDIRECTS?
Yes. Cloudflare can cause redirect loops due to SSL mode mismatches (like using Flexible mode with an HTTPS origin), Always Use HTTPS conflicts, or overlapping Page Rules.
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. Trace the chain, fix the conflict, and clear your caches.