All posts
Blog

ERR_TOO_MANY_REDIRECTS: What It Means and How to Fix It

By Dakshesh10 min read

  • err_too_many_redirects
  • too many redirects
  • redirect loop
  • cloudflare
Continue with GoogleFree plan · No credit card required

AI Overview

ERR_TOO_MANY_REDIRECTS means a page is stuck in a redirect loop. Visitors should delete the site's cookies. Site owners should trace the redirect chain, then fix the rule causing it, usually Cloudflare Flexible SSL, WordPress URL settings or conflicting redirects.

Key takeaways

  • ERR_TOO_MANY_REDIRECTS means the browser hit its redirect limit, almost always because URLs keep redirecting back to each other.
  • Visitors can often fix cookie-related loops by deleting the site's cookies, using a private window and clearing the cache.
  • The classic cause is Cloudflare's Flexible SSL mode combined with a server that forces HTTPS; Full (strict) fixes it.
  • On WordPress, check that the WordPress Address and Site Address match exactly, and trust the proxy's HTTPS header if needed.
  • Googlebot generally follows 10 redirect hops, so looping URLs are reported as redirect errors and can't be indexed.

Summarize with AI

Opens the assistant in a new tab with a link to this post.

On this page

ERR_TOO_MANY_REDIRECTS is the error Chrome shows when a page keeps sending the browser somewhere else, and that somewhere else sends it back again. The browser follows the loop for a while, gives up, and shows "This page isn't working. example.com redirected you too many times." Nothing on the site loads, for anyone, until the loop is broken.

The good news: redirect loops have a small number of causes, and most can be found in minutes once you can see the chain of redirects. This guide explains what the error means, how to fix it as a visitor, how to trace and fix it on your website, including the classic Cloudflare and WordPress causes, and what redirect loops do to SEO.

What does ERR_TOO_MANY_REDIRECTS mean?#

A redirect tells the browser that a page has moved, using a 3xx status code like 301 or 302 and a Location header with the new address. Normally the browser follows one redirect, maybe two, and lands on a page that returns 200.

A redirect loop happens when the redirects never reach a final page. For example:

  1. http://example.com redirects to https://example.com
  2. https://example.com redirects back to http://example.com
  3. Repeat forever

Browsers stop following redirects after a limit, which is 20 in Chrome and Firefox, and then show an error instead of looping endlessly. A very long chain of redirects that never loops can hit the same limit, but in practice, this error almost always means a loop.

What the error looks like in each browser#

BrowserMessage
ChromeThis page isn't working. example.com redirected you too many times. ERR_TOO_MANY_REDIRECTS
EdgeThis page isn't working right now. example.com redirected you too many times.
FirefoxThe page isn't redirecting properly
SafariToo many redirects occurred trying to open "example.com"

Chrome's message also suggests "Try deleting your cookies." Sometimes that's genuinely the fix, as explained below.

Common causes of redirect loops#

  1. CDN SSL mode mismatch. The classic: Cloudflare's Flexible SSL mode talks to your server over HTTP, and your server redirects every HTTP request to HTTPS. Cloudflare asks over HTTP again, and the loop begins.
  2. Conflicting HTTPS rules. Your host, your CDN and your application each force HTTPS, and they disagree about what counts as a secure request.
  3. Conflicting www rules. One rule redirects example.com to www.example.com while another redirects www back to the bare domain.
  4. WordPress address settings. The WordPress Address and Site Address don't match how the site is actually served, for example http in the settings while the server forces https.
  5. A proxy that hides HTTPS. Behind a load balancer or reverse proxy, the app sees every request as HTTP and redirects to HTTPS forever, because it never checks the X-Forwarded-Proto header.
  6. Redirect plugins or rules pointing at each other. Page A redirects to B and B redirects to A, often after a migration or a URL cleanup.
  7. Cookies and login loops. A stale cookie makes the site redirect to a login page, which redirects back, and so on.

How to fix ERR_TOO_MANY_REDIRECTS as a visitor#

If the loop happens on someone else's site:

  1. Delete the site's cookies. In Chrome, click the icon left of the address bar, open the cookie or site settings for that site and delete its data, then reload.
  2. Try a private window. If the site works there, the cookies or cache in your normal window are the problem.
  3. Clear the browser cache. Browsers cache 301 redirects, so an old redirect can keep sending you into a loop the site already fixed.
  4. Disable browser extensions that rewrite URLs or force HTTPS, then try again.
  5. Check the date and time on your device, which affects cookies and secure connections.

If the error appears in every browser and on every device, the loop is on the website, and only its owner can fix it.

How to fix ERR_TOO_MANY_REDIRECTS on your website#

1. See the redirect chain#

Don't guess. Look at exactly which URLs redirect where. The free Redirect Chain Checker shows every hop, its status code and where the chain loops.

From the command line, curl follows the chain and prints each response:

curl -sIL --max-redirs 10 http://example.com | grep -iE "^(HTTP|location)"

A loop usually jumps out immediately: the same two or three URLs repeating. Note which part changes in each hop, the protocol, the www, a trailing slash or the path, because that tells you which rule is fighting.

2. Fix Cloudflare's SSL mode#

If you use Cloudflare and the loop flips between http and https, check SSL/TLS > Overview in the Cloudflare dashboard.

  • Flexible connects to your server over HTTP. If your server redirects HTTP to HTTPS, this causes the loop.
  • Full (strict) connects over HTTPS and checks your server's certificate. This is the right setting for nearly every site, as long as your server has a valid certificate.

Switch to Full (strict), then decide where HTTPS is enforced. Either turn on Cloudflare's Always Use HTTPS, or keep the redirect on your server, but make sure they don't contradict each other. If your origin certificate is missing or invalid, fix that first, or visitors will see a certificate error instead. Our guide to Your connection is not private covers certificate problems.

3. Fix WordPress address settings#

In WordPress, go to Settings > General and check that WordPress Address (URL) and Site Address (URL) both use the exact protocol and hostname the site is served on, for example https://www.example.com.

If the loop locks you out of the dashboard, set them in wp-config.php, above the line that says "That's all, stop editing!":

define( 'WP_HOME', 'https://www.example.com' );
define( 'WP_SITEURL', 'https://www.example.com' );

Or with WP-CLI:

wp option get home
wp option update home 'https://www.example.com'
wp option update siteurl 'https://www.example.com'

4. Teach the app it's behind HTTPS#

If your site sits behind a load balancer or proxy that terminates HTTPS, the application may see plain HTTP and keep redirecting. On WordPress, add this to wp-config.php so it trusts the proxy's header:

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
    $_SERVER['HTTPS'] = 'on';
}

Other frameworks have their own "trust proxy" setting. Turn it on only for your own proxy, so visitors can't fake the header.

5. Untangle conflicting redirect rules#

Check every place redirects can be set:

  • Your .htaccess or nginx config
  • Your CDN page rules or redirect rules
  • Your host's control panel (force HTTPS, force www)
  • Redirect plugins and SEO plugins
  • Your application code or framework config

Keep each rule in one place. Decide on one canonical version, such as https://www.example.com, and redirect every other version straight to it in a single hop.

6. Find page-level loops#

If only some pages loop, look for redirects that point at each other, often left over from a migration. Export your redirect list and search for any destination that also appears as a source. Our website migration checklist covers how to map redirects without creating chains or loops.

7. Clear caches and test#

After fixing the rule, clear your server cache, plugin cache and CDN cache, then test in a private window. Browsers cache 301 redirects, so your normal browser may keep showing the old loop for a while.

Does ERR_TOO_MANY_REDIRECTS hurt SEO?#

Yes, and fast. A page stuck in a redirect loop never returns content, so search engines can't crawl or index it.

Google's documentation says Googlebot generally follows 10 redirect hops when crawling. A loop never ends, so Googlebot gives up and the URL is reported as a Redirect error in Search Console's Page indexing report. If the loop hits important pages, or the whole site through an HTTPS or www rule, those pages can drop out of search until it's fixed.

Even without a full loop, long chains waste crawl effort and slow visitors down. Keep it simple: every old URL should redirect once, directly to its final destination. Our guide to 301 vs 302 redirects explains which status code to use.

How to catch redirect problems before they take your site down#

Redirect loops usually appear right after a change: a new SSL setting, a CDN switch, a plugin update or a migration. They hit every visitor at once, and they often happen late in the day when nobody's checking.

MyKavo catches them in several ways:

  • Uptime checks every 5 minutes. If your homepage can't be loaded, MyKavo alerts you after two failed checks in a row, by email and optionally Slack, Discord or a webhook.
  • Redirect changes flagged on every scan. When a monitored page starts redirecting, or its redirect destination changes, MyKavo raises it as a change, with the old and new final URL side by side.
  • Status code changes as critical alerts. If a page that returned 200 starts failing, it's flagged as critical, not buried among small changes.

Frequently asked questions

What does ERR_TOO_MANY_REDIRECTS mean?

It means the page redirected the browser so many times that it gave up, almost always because of a redirect loop where URLs redirect back to each other. Chrome and Firefox stop after 20 redirects.

How do I fix ERR_TOO_MANY_REDIRECTS in Chrome?

Delete the site's cookies, try a private window, clear the cache and disable URL-rewriting extensions. If it happens on every browser and device, the website itself needs fixing.

Why does Cloudflare cause ERR_TOO_MANY_REDIRECTS?

Usually because the SSL mode is set to Flexible, which connects to your server over HTTP while your server redirects HTTP to HTTPS. Switching to Full (strict) with a valid origin certificate fixes it.

How do I fix too many redirects on WordPress?

Make sure the WordPress Address and Site Address match the exact protocol and hostname, set WP_HOME and WP_SITEURL in wp-config.php if you're locked out, and check for conflicting redirect plugins.

How many redirects does Google follow?

Google says Googlebot generally follows 10 redirect hops. Beyond that, or in a loop, the URL is reported as a redirect error and isn't indexed.

Can cookies cause a redirect loop?

Yes. A stale or conflicting cookie can send you between a login page and a protected page. Deleting the site's cookies or using a private window usually fixes it.

The bottom line#

ERR_TOO_MANY_REDIRECTS means a redirect loop. As a visitor, delete the site's cookies and clear the cache. As a site owner, trace the chain, then fix the rule that fights: usually a Cloudflare Flexible SSL setting, mismatched WordPress addresses, an app that can't see it's behind HTTPS, or two redirects pointing at each other.

See exactly where your redirects go with the free Redirect Chain Checker, then start free with MyKavo to get alerted when a redirect changes or a page stops loading.

Try it on your site · free

Trace your own redirect chain

Every hop, its status code and where it ends up.

Open the full tool
Share this post

Get alerted when your site breaks. Free, no card.

Start free