ERR_TOO_MANY_REDIRECTS: The page is stuck in a redirect loop
Two rules are bouncing the request back and forth — most often an HTTPS redirect at the application level fighting a proxy that is forwarding as plain HTTP, so each side thinks the other needs to upgrade.
Short answer
Two rules are bouncing the request back and forth — most often an HTTPS redirect at the application level fighting a proxy that is forwarding as plain HTTP, so each side thinks the other needs to upgrade.
What ERR_TOO_MANY_REDIRECTS means
Browsers follow a limited number of redirects (usually 20) before giving up. A loop means the chain never terminates: A sends you to B, and B sends you back to A.
Causes and fixes, most likely first
The CDN forwards to the origin over HTTP while the origin redirects all HTTP to HTTPS — an infinite loop. Switch the CDN's SSL mode to Full so the origin leg is encrypted, or make the origin trust the forwarded-proto header instead of the raw scheme.
www and non-www rules each redirect to the other. Pick one canonical hostname and make sure only one rule redirects, in one direction.
A CMS's configured site URL disagrees with the hostname being requested. Set the CMS site/home URL to the exact canonical hostname and scheme in use.
A stale cookie is driving a login redirect loop. Clear cookies for the domain and retry. If a private window works and a normal one does not, this is the cause.
ERR_TOO_MANY_REDIRECTS on specific platforms
ERR_TOO_MANY_REDIRECTS on Chrome — The loop is usually stored in a cookie, so Chrome keeps redirecting even after the server-side rule is fixed.
ERR_TOO_MANY_REDIRECTS on Nginx — A 'return 301 https://$host$request_uri' block inside the HTTPS server block sends HTTPS traffic back to itself, producing an infinite loop…
ERR_TOO_MANY_REDIRECTS on Cloudflare — SSL mode set to Flexible makes Cloudflare fetch the origin over plain HTTP; the origin then redirects to HTTPS, Cloudflare follows it back…
ERR_TOO_MANY_REDIRECTS on WordPress — WP_HOME and WP_SITEURL set to https:// while a proxy passes the request as http:// makes WordPress redirect endlessly trying to reach the…
ERR_TOO_MANY_REDIRECTS on Shopify — A domain pointed at Shopify through a third-party proxy or a CNAME on the apex creates a loop between the proxy's redirect and Shopify's…
ERR_TOO_MANY_REDIRECTS on Netlify — A catch-all rule in _redirects that matches its own destination path re-enters itself on every pass.
How to stop it happening again
Monitor the redirect chain, not just the final status — a loop that resolves for cached visitors still breaks new ones.
Assert a single canonical hostname and scheme in one place only.
Check your own domain
The uptime probe returns the full redirect chain, so you can see the exact two URLs bouncing off each other instead of inferring it from behaviour.
Frequently asked questions
How do I fix ERR_TOO_MANY_REDIRECTS?
Trace the redirect chain from outside the browser. Nine times out of ten it is an HTTPS redirect at the origin fighting a CDN that forwards over HTTP — fix by using an encrypted origin connection or honouring the forwarded-proto header.
Why does clearing cookies sometimes fix it?
Because a stale session cookie can trigger a login redirect that immediately redirects back. That loop is per-visitor, not site-wide.