ERR_TOO_MANY_REDIRECTS
The site sent your browser to another address, which sent it back (or onward) again and again. Chrome stopped after about 20 redirects.
Quick checks
- Delete the site's cookies and reload.
- Try a private window.
- Check whether the problem happens for others (other devices, other browsers).
Fixes on Mac
Delete cookies for this site
- Chrome: click the icon left of the address › Cookies and site data › manage and delete.
- Safari: Safari › Settings › Privacy › Manage Website Data › find the site › Remove.
Check the redirect chain
- In Terminal, run
curl -sIL https://example.com | grep -i -E '^(HTTP|location)'to see each hop.
- In Terminal, run
Fixes on Windows
Clear cookies
- Chrome: Settings › Privacy and security › Third-party cookies › See all site data, find the site and delete.
Other devices
Phones
- Clear the site's data in the browser settings, or try a private tab.
Still not working?
Site owners, common loops:
- HTTP ↔ HTTPS: the server redirects to HTTPS, while a proxy or CDN talks to it over HTTP and the app redirects again. With Cloudflare, use SSL mode Full (strict) instead of Flexible.
- www ↔ non-www: two rules disagree about which host is canonical.
- CMS settings: WordPress
siteurl/homeset to a different scheme or host than the server's redirect. - Login loops: a session cookie that's never set (wrong domain or Secure flag) sends users back to login.
See what’s happening
LightAtom's connections view shows the browser reconnecting rapidly to the same server during a redirect loop.
Frequently asked questions
What causes ERR_TOO_MANY_REDIRECTS?
A redirect loop: rules that send the browser between http and https, www and non-www, or a login page and back. Stale cookies can trigger it on otherwise-working sites.
Does clearing cookies fix too many redirects?
Often, when a cookie holds an outdated setting. If it comes back immediately, the site's redirect rules are broken and only the owner can fix them.
How do I fix redirect loops with Cloudflare?
Set SSL/TLS encryption mode to Full (strict) when the origin already redirects HTTP to HTTPS. Flexible mode talks to the origin over HTTP, so the origin keeps redirecting.