How to Fix ERR_TOO_MANY_REDIRECTS
The ERR_TOO_MANY_REDIRECTS message appears when a website keeps bouncing your browser between URLs. Try the page in a private window first. If it opens there, remove cookies for that website and briefly disable your browser extensions. Still seeing the error in every browser and on every device? The fault is probably with the website’s server, CDN, HTTPS setup, or redirect rules.
Fastest fix for visitors: Delete data for the affected website, not your entire browsing history. That way, you keep your logins and preferences for other sites.
Clear cookies for the affected website
An old login, session, or redirect cookie may keep sending the browser back to the wrong place.
- Open the affected website in Chrome or Edge.
- Click the icon to the left of the address bar.
- Open Cookies and site data or Site settings.
- Delete the stored data for that domain.
- Close every tab for the website, reopen the browser, and try the page again.
Firefox puts the same controls under Settings > Privacy & Security > Cookies and Site Data > Manage Data. Search for the domain, remove its data, then reload the page.
Why Too Many Redirects Happens
A normal HTTP redirect moves a visitor from one URL to another. A server might, for instance, send http://example.com to https://example.com. Trouble starts when two or more rules send the request back and forth with no final destination.
| Symptom | Likely cause |
|---|---|
| Works in a private window | Corrupt cookies, cached data, or an extension |
| Fails in every browser | Server-side redirect configuration |
| Started after enabling HTTPS | Conflicting HTTP-to-HTTPS rules |
| Started after adding a CDN or proxy | Incorrect SSL mode or forwarded protocol handling |
| Only affects login or admin pages | Session cookie, authentication, or application URL mismatch |
Steps for Website Visitors
1. Try a private browsing window
Open an Incognito or InPrivate window, then visit the same URL. If the page works in that fresh session, stored browser data or an extension is probably to blame rather than a server outage.
2. Turn off extensions for a moment
Privacy tools, ad blockers, user-agent switchers, VPN extensions, and HTTPS enforcement add-ons can all change requests. Disable them briefly, restart the browser, and test the site. Then switch the extensions back on one at a time until you find the one causing the loop.
3. Check your device’s date and time
A clock that’s wrong can interfere with secure sessions and authentication cookies. Turn on automatic time and time-zone settings, then restart the browser.
4. Use another device or network
Try opening the site on a phone over mobile data. If it fails there too, changing settings in your usual browser probably won’t solve it. You’ll need to contact the website owner or wait for them to correct the configuration.
Fixing the Loop on Your Website
1. Trace the redirect chain
Start with cURL and inspect the response headers and destinations:
curl -I -L --max-redirs 10 https://example.comWatch for repeated Location: values or URLs that alternate, perhaps between HTTP and HTTPS. If you’d rather inspect the chain without automatically following every redirect, use:
curl -I https://example.com2. Pick one canonical URL
Choose either the www address or the bare domain, then give every other version one clear route to it. Don’t create separate rules that force opposing versions.
http://example.com→https://example.comhttp://www.example.com→https://example.comhttps://www.example.com→https://example.com
Every source URL should arrive at the canonical address without being sent back to an earlier stop. That’s the part to check.
3. Inspect CDN and reverse proxy SSL settings
One common loop begins when a CDN connects to the origin over HTTP but the origin insists on HTTPS. The browser asks for HTTPS, the CDN contacts the server over HTTP, and the server sends the request back to HTTPS. Then it starts over.
Use end-to-end HTTPS where possible. On Cloudflare, install a valid certificate at the origin and select Full (strict) SSL/TLS mode. Avoid Flexible mode if the origin already redirects HTTP traffic to HTTPS.
Software running behind Nginx, Apache, a load balancer, or another reverse proxy also has to recognize the original protocol. Confirm that the proxy sends X-Forwarded-Proto. The application should trust that header only when it comes from approved proxies.
4. Review the server’s redirect rules
Look through recent redirects in Apache’s .htaccess, the Nginx configuration, hosting control panels, and any redirect plugins. You may need to disable those rules temporarily. Pay particular attention to duplicated HTTPS, domain, language, or trailing-slash rules. Make a backup before editing configuration files, and test the server configuration before reloading it.
5. Fix WordPress address settings
In WordPress, go to Settings > General. Check that WordPress Address and Site Address both use the intended HTTPS domain. If you can’t reach the dashboard, temporarily define the addresses in wp-config.php:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');Replace the example domain with the site’s real canonical address. After that, disable redirect, security, caching, and SSL plugins one by one. A plugin can create a loop if it applies the same redirect already being handled by the CDN or web server.
Mistakes That Usually Make Things Worse
- Wiping all browser data right away: Remove data for the affected domain first.
- Adding yet another redirect: Extra rules often cover up the conflict instead of fixing it.
- Leaving temporary redirects in place permanently: Switch to a permanent redirect only after you’ve confirmed the final URL.
- Changing DNS without a reason: DNS generally isn’t the source of a redirect loop, since redirects happen after the browser reaches a web server.
- Turning off HTTPS: Fix the proxy and certificate setup rather than weakening the site’s security.
Checking That the Fix Worked
- Purge the website, server, and CDN caches.
- Remove cookies for the domain, or open a fresh private window.
- Test the HTTP and HTTPS addresses, including both www and non-www versions.
- Run the cURL command again. Confirm that the chain stops at the intended page.
- Test login, logout, checkout, and administration pages separately.
A properly configured site generally takes no more than one or two redirects to arrive at its canonical HTTPS URL. If the browser still finds a loop, inspect the full redirect chain before changing anything else.
