Cause 1: Corrupted Cookies or Site Data (Most Common)
You're trying to open a site and the browser spins, then throws ERR_TOO_MANY_REDIRECTS. The address bar might flicker between http:// and https://, or between a URL with a trailing slash and one without. Nine times out of ten, a stale cookie is telling the server you're not logged in, so the server sends you to a login page, which sees the cookie and sends you back. Over and over.
This happens a lot after a site changes its domain or switches to HTTPS. Say you visited example.com last month when it was plain HTTP. The site set a cookie for the old path. Now it has moved to HTTPS, but your browser still sends that old cookie. The server says "wrong cookie, go here," and the loop starts.
Fix: Clear cookies and site data for that domain only
- Open the site that's looping. You don't need it to load fully.
- Click the padlock (or the tune icon in newer Chrome) to the left of the address bar.
- Choose Cookies and site data.
- Click Manage cookies and site data.
- Find the site in the list, click the trash can next to it, then click Done.
- Press Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac) to hard refresh.
After clearing, the page should load normally. If it loops again, open a private window and try there. A fresh private window has no cookies, so if the site works there, you know the problem is stored data. If it still loops in private mode, jump to Cause 2.
On Firefox, the path is slightly different: click the shield icon, then Clear cookies and site data. On Safari, go to Settings > Privacy > Manage Website Data and remove the site.
Cause 2: Conflicting HTTPS Redirect Rules
If clearing cookies doesn't fix it, the server itself is probably misconfigured. The most common setup is a CDN like Cloudflare with its "Always Use HTTPS" toggle turned on, while the origin server also has a redirect rule forcing HTTPS. Both try to redirect at the same time, and the browser gives up.
Another frequent trigger: WordPress with Really Simple SSL active, plus a .htaccess rule that also forces HTTPS. The two rules fight each other. You'll see the loop happen only on some pages, often the homepage or the login page.
Fix: Check the redirect chain
Use a free tool like httpstatus.io or curl -I from a terminal. Paste the URL and look at the chain. A healthy site shows one or two hops. A broken one shows the same URL repeating.
curl -I https://example.com
# Look for multiple 301 or 302 lines pointing to the same location
If you see a loop, decide where the redirect should live. Pick one place: either the CDN or the origin. Don't do both. On Cloudflare, go to SSL/TLS > Edge Certificates and turn off Always Use HTTPS if your origin already handles it. On WordPress, deactivate Really Simple SSL and add a single rule to .htaccess instead:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Save the file, then hard refresh. The loop should stop. If it doesn't, clear your browser cache one more time — old 301 responses get cached aggressively, and you won't see the fix until they expire.
Cause 3: Browser Extensions Interfering
Privacy extensions, ad blockers, and HTTPS enforcers can rewrite URLs on the fly. If an extension forces HTTPS on a site that only supports HTTP, or strips a query parameter the server needs, you get a redirect loop. This one's sneaky because it only happens on your machine. Your coworker on the same Wi-Fi sees the site fine.
Common offenders: HTTPS Everywhere (now retired but still installed on a lot of machines), some VPN browser extensions, and older versions of uBlock Origin with custom filter lists.
Fix: Test in incognito with extensions off
- Open a new incognito or private window.
- Try the site. Incognito disables extensions by default.
- If it loads, an extension is the problem.
- Go back to a normal window, open
chrome://extensions(orabout:addonsin Firefox). - Disable extensions one at a time, refreshing the site after each.
When the loop stops, you've found the guilty extension. Remove it or update it. Nine times out of ten, updating fixes it because the developer already patched the URL rewriting bug.
Quick Reference: Match the Symptom to the Fix
| Symptom | Likely Cause | Fix |
|---|---|---|
| Loop happens only on one site, works in private mode | Corrupted cookies | Clear cookies and site data for that domain |
| Loop happens for everyone, across browsers | Server or CDN redirect conflict | Remove duplicate HTTPS rules |
| Loop only on your machine, not others | Browser extension | Disable extensions one by one |
| Loop after switching a site to HTTPS | Stale cookies + server rule | Clear cookies, then check .htaccess |
| Loop on login page only | Session cookie conflict | Clear cookies for the site |
Start with cookies. It's the fastest fix and solves most cases. If that fails, check your redirect rules on the server or CDN. And if it's just you, not everyone else, look at your extensions. That order saves you time every single time.