We come across a lot of different errors here at Kinsta, and ERR_TOO_MANY_REDIRECTS (also known as a redirect loop) is one we see on a regular basis. Typically this occurs after a recent change on your website, a misconfiguration of redirects on your server, or wrong settings with third-party services. But don't worry, this error is fairly easy to fix.

Check out the recommendations below on how to fix this error and get your site back up and running.

What is the ERR_TOO_MANY_REDIRECTS Error?

The reason for ERR_TOO_MANY_REDIRECTS is pretty much what it sounds like, something is causing too many redirects, sending your website into an infinite redirection loop.

Essentially the site is stuck (such as URL 1 points to URL 2 and URL 2 points back to URL 1, or the domain has redirected you too many times) and unlike some other errors, these rarely resolve themselves and will probably need you to take action to fix it.

You might have also come across the error "request exceeded the limit of 10 internal redirects due to probable configuration error".

There are a couple of different variations of this error depending upon the browser you're running.

Google Chrome

In Google Chrome this error will show asERR_TOO_MANY_REDIRECTS (as seen below) or This webpage has a redirect loop problem.

This page isn't working. domain.com redirected you too many times.

ERR_TOO_MANY_REDIRECTS in Google Chrome
ERR_TOO_MANY_REDIRECTS in Google Chrome

(Check out how to fix Chrome's ERR_CACHE_MISS error).

Mozilla Firefox

In Mozilla Firefox it will show asThe page isn't redirecting properly (as seen below).

An error occured during a connection to domain.com. This problem can sometimes be caused by disabling or refusing to accept cookies.

ERR_TOO_MANY_REDIRECTS in Firefox
ERR_TOO_MANY_REDIRECTS in Mozilla Firefox

Microsoft Edge

In Microsoft Edge, it will simply show asThis page isn't working right now (as seen below).

Domain.com redirected you too many times.

ERR_TOO_MANY_REDIRECTS in Microsoft Edge
ERR_TOO_MANY_REDIRECTS in Microsoft Edge

Safari

In Safari, it will show as Safari Can't Open the Page (as seen below).

Too many redirects occurred trying to open "domain.com." This might occur if you open a page that is redirected to open another page which is then redirected to open the original page.

ERR_TOO_MANY_REDIRECTS error in Safari
ERR_TOO_MANY_REDIRECTS error in Safari

Here are some recommendations and things to check to fix the error (sorted in order by most common reasons we see):

  • Delete cookies on that specific site
  • Clear WordPress site, server, proxy, and browser cache
  • Determine nature of redirect loop
  • Check your HTTPS settings
  • Check third-party services
  • Check your WordPress site settings
  • Temporarily disable WordPress plugins
  • Check redirects on your server

Delete Cookies on That Specific Site

Google and Mozilla both in fact recommend right below the error to "try clearing your cookies." Cookies can sometimes contain faulty data in which could cause the ERR_TOO_MANY_REDIRECTS error. This is one recommendation you can try even if you're encountering the error on a site you don't own.

Due to the fact that cookies retain your "logged in" status on sites and other settings, we recommend simply deleting the cookie(s) on the site that is having the problem. This way you won't impact any of your other sessions or websites that you frequently visit.

Follow the steps below to delete a cookie on a specific website in Google Chrome.

Step 1

In Google Chrome click on the three small dots in the upper right-hand corner. Then click on "Settings."

Chrome settings
Chrome settings

Step 2

Scroll down and click on "Advanced."

Chrome advanced settings
Chrome advanced settings

Step 3

Then click on "Content settings."

Chrome content settings
Chrome content settings

Step 4

Click on "Cookies."

Chrome cookies
Chrome cookies

Step 5

Then click on "See all cookies and site data."

Chrome see all cookies
Chrome see all cookies

Step 6

Search for the site (domain) where you are encountering the ERR_TOO_MANY_REDIRECTS error. You can then delete the cookie(s) currently stored on your computer for that domain. Then try visiting the site again.

Delete cookie in Chrome
Delete cookie in Chrome

Clear Server, Proxy, and Browser Cache

Due to the fact that redirect loops are responses that can be cached, it's always recommended to try clearing the cache on your WordPress site, the server, third-party proxy services, and even your browser if necessary.

Subscribe Now

Clear WordPress Site Cache

Depending upon the type of redirect loop, you might still be able to gain access to your WordPress admin dashboard. In this case, you can easily clear the cache within the settings of your caching plugin. Here are a couple of quick links on how to clear WordPress cache with popular plugins:

  • Clear Cache with Cache Enabler
  • Clear Cache with W3 Total Cache
  • Clear Cache with Super Cache

If you're a Kinsta client, you can easily clear your cache from the WordPress admin toolbar.

Clear Kinsta cache from WordPress admin
Clear Kinsta cache from WordPress admin

Clear Server Cache

If you can't access WordPress admin, many WordPress hosts have their own control panel tools for clearing the cache on your WordPress site.

If you're a Kinsta client, you can manually clear WordPress cache from within the MyKinsta dashboard. Simply click on your site, click into tools, and click on the "Clear Cache" button. Then check your site to see if the redirect loop still exists.

Clear WordPress cache
Clear WordPress cache

Clear Proxy Cache

If you're using a third-party reverse-proxy service such as Cloudflare or Sucuri, it can also be beneficial to clear the cache on their side.

Cloudflare

To purge Cloudflare cache, login to their dashboard, click into "Caching" and click on "Purge Everything."

Purge cache

Sucuri

To purge Sucuri cache, login to their dashboard, go to "Performance" and click on "Clear Cache."

Clear Sucuri cache
Clear Sucuri cache

Clear Browser Cache

If you want to check and see if it might be your browser cache, without clearing your cache, you can always open up your browser in incognito mode. Or test another browser and see if you still see the ERR_TOO_MANY_REDIRECTS error.

Open Chrome in Incognito mode
Open Chrome in Incognito mode

If you determine it is being caused by your browser cache, you can then clear it. Below are instructions on how to do it in various browsers:

  • How to Force Refresh a Single Page for All Browsers
  • How to Clear Browser Cache for Google Chrome
  • How to Clear Browser Cache for Mozilla Firefox
  • How to Clear Browser Cache for Safari
  • How to Clear Browser Cache for Internet Explorer
  • How to Clear Browser Cache for Microsoft Edge
  • How to Clear Browser Cache for Opera

Determine Nature of Redirect Loop

If clearing the cache didn't work, then you'll want to see if you can determine the nature of the redirect loop. Our free online Redirect Checker tool can help provide some further analysis into what might be going on. This could also be done via cURL.

For example, on the site below, it has a 301 redirect loop back to itself, which is causing a large chain of faulty redirects. You can follow all the redirects and determine whether or not it's looping back to itself, or perhaps is an HTTP to HTTPS loop in which we'll discuss how to solve that further below.

Too many redirects
Too many redirects

The Redirect Path Chrome extension can also be very useful and provides insights into all of the redirects happening on your site (specific URL or page.

Redirect Path extension
Redirect Path extension

Check Your HTTPS Settings

Another thing to check is your HTTPS settings. A lot of times we 've seen ERR_TOO_MANY_REDIRECTS occur when someone has just migrated their WordPress site to HTTPS and either didn't finish or set up something incorrectly.

1. Don't Force HTTPS Without an SSL Certificate

This is by far the most common reason we see on a regular basis. If you force your WordPress site to load over HTTPS without first installing an SSL certificate, you'll instantly throw your site into a redirection loop. To fix this, simply install an SSL certificate on your WordPress site.

It's also recommended to run an SSL check. SSL/TLS certificates require not only your main certificate but also what they call intermediate certificates (chain) to also be installed. These need to be set up properly.

We recommend using the free SSL check tool from Qualys SSL Labs. It is very reliable and we use it for all Kinsta clients when verifying certificates. Simply head over to their SSL check tool, input your domain into the Hostname field and click on "Submit." You can also select the option to hide public results if you prefer. It could take a minute or two to scan your site's SSL/TLS configuration on your web server.

SSL check
SSL test

2. Don't Use an SSL Plugin, Update your Hard-coded Links

There are some free SSL WordPress plugins, such as the Really Simple SSL plugin that will help you automatically redirect to HTTPS. However, we don't recommend this method as a permanent solution because third-party plugins can always introduce another layer of problems and compatibility issues. It's a good temporary solution, but you should really update your hard-coded HTTP links.

We have a great tutorial with 4 easy ways to do a search and replace in WordPress. If you're a Kinsta client, you can always reach out to our support team to do this for you as well.

3. Check HTTP to HTTPS Redirects on Server

It could very well be that perhaps the HTTPS redirect rules on your server were misconfigured.

Redirect HTTP to HTTPS in Nginx

If your web server is running Nginx, you can easily redirect all of your HTTP traffic to HTTPS by adding the following code to your Nginx config file. This is the recommended method for redirecting WordPress running on Nginx.

server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }

We use Nginx for everyone here at Kinsta. The great news is that you don't have to worry about this. If you need to add a redirect simply open up a quick support ticket and let us know which domain you need to be redirected. We then add it to the Nginx config for you.

Check Out Our Video Guide to Redirects

Redirect HTTP to HTTPS in Apache

If your web server is running Apache, you can easily redirect all of your HTTP traffic to HTTPS by adding the following code to your.htaccess file. This is the recommended method for redirecting WordPress running on Apache.

            RewriteEngine On RewriteCond              %              {              HTTPS              }              off RewriteRule              ^              (              .              *              )$ https:              //%{HTTP_HOST}%{REQUEST_URI} [L,R=301]                      

4. Check For Too Many HTTPS Redirects

Perhaps you simply have too many HTTPS redirects. You can easily check your site to see how many redirects it's using with Patrick Sexton's Redirect mapper tool. Here is an example below of redirects that are not set up correctly which are easily spottable using the redirect mapper. You can see that there are duplicate HTTPS redirects happening on both the www and non-www versions.

redirects not setup correctly
Redirects

Check Third-Party Services

ERR_TOO_MANY_REDIRECTS is also often commonly caused by reverse-proxy services such as Cloudflare. This usually happens when their Flexible SSL option is enabled and you already have an SSL certificate installed with your WordPress host. Why? Because, when flexible is selected, all requests to your hosting server are sent over HTTP. Your host server most likely already has a redirect in place from HTTP to HTTPS, and therefore a redirect loop occurs.

To fix this you need to change the Cloudflare Crypto settings from Flexible to either Full or Full (strict). If you're a Kinsta client, make sure to also check out our steps on how to install an SSL certificate while using Cloudflare.

Cloudflare full
Set Cloudflare crypto level to full

You can use their Always Use HTTPS page rule to redirect all users to HTTPS without creating a loop. Another thing to watch out for with Cloudflare is their forwarding URL redirection rules. Be careful not to create a redirect where the domain points to itself as a destination. This can cause an infinite redirect error, and the affected URLs will not be able to resolve.

If you're using StackPath, they have an option called "Origin Pull Protocol" that needs to be set to HTTPS only.

Using Cloudflare DNS Only

If you only want to use Cloudflare's DNS, and not their proxy/WAF service, then you should make sure your DNS records are set to "DNS Only." The clouds will appear as "grey" instead of "orange." You configure this under the "DNS" tab in the Cloudflare control panel.

Cloudflare DNS only
Cloudflare DNS only

Check Your WordPress Site Settings

Another thing to check is your WordPress site settings. There are two different fields you'll want to ensure are set correctly, and not pointing at a wrong domain or are mismatched. Another common mistake is that you're not using the correct prefix to match the rest of your site, www or non-www. Sometimes people migrate hosts, or change domains and these can get changed without you realizing it.

  • WordPress Address (URL): The address to reach your blog.
  • Site Address (URL): The address of your WordPress core files.

Both should match unless you are giving WordPress it's own directory.

WordPress address
WordPress address

Most likely though you aren't able to access your WordPress dashboard. So what you can do is override the settings above by inputting the values in your wp-config.php file.

The wp-config.php file is typically located at the root of your WordPress site and can be accessed via FTP, SSH, or WP-CLI. To hard-code WP_HOME and WP_SITEURL, simply input the following code towards the top of the file, changing the values to reflect your domain.

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

Below is an example of what your wp-config.php file might look like afterward.

change wordpress url wp-config.php
Change WordPress URL in wp-config.php file

Or if you prefer, here are two additional ways you could change your WordPress URLs without access to your admin dashboard:

  • Change WordPress URL Directly in Database
  • Change WordPress URL With WP-CLI

Once you manually set it, you can browse to your site to verify whether or not it fixes the redirect loop.

Multisite

If you're changing domains on a multisite, make sure to also check the wp_blogs table. We've seen people do a search and replace wrong and cause an infinite redirect loop. This is because the network site doesn't match the subsites.

wp_#_options: Each subsite will have sets of tables that correspond to theblog_id in thewp_blogs table. Go to thewp_#_options table, where # corresponds to theblog_id, and update the "SITEURL" and "HOME" settings in that table.

Temporarily Disable WordPress Plugins

When it comes to WordPress, temporarily disabling all your WordPress plugins can be a quick way to spot problems. For example, plugins such as Redirection or Yoast SEO premium let you implement redirects. Sometimes settings or updates to these plugins can conflict with redirects that might already be set on your server, causing a redirect loop.

Remember, you won't lose any data if you simply disable a plugin. Most likely you can't access the WordPress admin, so you'll need login via SFTP to your server and rename your plugins folder to something like plugins_old. Then check your site again.

SFTP rename plugins folder
SFTP rename plugins folder

If it works, then you will need to test each plugin one by one. Rename your plugin folder back to "plugins" and then rename each plugin folder inside of if it, one by one, until you find it. You could also try to replicate this on a staging site first.

Rename plugin folder
Rename plugin folder

Check Redirects on Your Server

Besides HTTP to HTTPS redirects on your server, it can be good to check and make sure there aren't any additional redirects setup wrong. For example, one bad 301 redirect back to itself could take down your site. Usually, these are found in your server's config files.

Apache .htaccess file

Kinsta only uses Nginx, but if you're using a WordPress host that is running Apache, it could very well be that your.htaccess file has a wrong rule in it. Follow the steps below to recreate a new one from scratch.

First, login to your site via FTP or SSH, and rename your.htaccess file to.htaccess_old. This ensures you have a backup.

Rename .htaccess file
Rename .htaccess file

Normally to recreate this file you can simply re-save your permalinks in WordPress. However, if you're in the middle of an ERR_TOO_MANY_REDIRECTS error you most likely can't access your WordPress admin, so this isn't an option. Therefore you can create a new.htaccess file and input the following contents. Then upload it to your server. The following uses the default settings.

          # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress        

See the WordPress Codex for more examples, such as a default.htaccess file for multisite.

We've taken our knowledge of effective website management at scale, and turned it into an ebook and video course. Click here to download the The 2020 Guide to Managing 40+ WordPress Sites!

Nginx Config

If your host uses Nginx, this file can be a little trickier as the config file can vary a bit depending on the hosting provider. We recommend reaching out to your host and have them check your config file for anything that might be causing a redirect loop or too many redirects.

If you're a Kinsta client, you'll first want to check to ensure you didn't set up a redirect wrong in our redirect tool. Below is a simple example of a redirect from https://domain.com/ back to itself, that would cause a redirect loop.

Bad 301 redirect
Bad 301 redirect

This also commonly happens when the location URL is included in both "Redirect From" and "Redirection To."

For example, the following would cause a redirect loop:

Redirect From:^/blog/aboutRedirect To:https://domain.com/blog/about-me

Why? Because once the process reached^/blog/about, the remaining part-me wouldn't matter, and it would cause an infinite loop. You have to specify the end of the string and the starter point. Here is what you would do to fix it:

Redirect From:^/blog/about$Redirect To:https://domain.com/blog/about-me

The $ character will tell Nginx to stop and match the request only if the string is there exactly, but nothing after it.

And of course, you can always open up a support ticket and we'll check this for you.

Misconfigured Reverse Proxies

Another common reason for the ERR_TOO_MANY_REDIRECTS error is if you are using a reverse proxy. Reverse proxies can be quite complicated and it's very easy to send your WordPress site into a redirect loop if misconfigured. Again, if you're a Kinsta client, our support team can help with this.

Website stuck in an infinite redirection loop? 🛣 Check out these recommendations on how to get back up and running fast. Click to Tweet

Summary

Redirect loops can sometimes be tricky to track down. But hopefully, some of the troubleshooting steps above help you to resolve your ERR_TOO_MANY_REDIRECTS error. If we missed anything, feel free to let us know below in the comments.


Save time, costs and maximize site performance with:

  • Instant help from WordPress hosting experts, 24/7.
  • Cloudflare Enterprise integration.
  • Global audience reach with 33 data centers worldwide.
  • Optimization with our built-in Application Performance Monitoring.

All of that and much more, in one plan with no long-term contracts, assisted migrations, and a 30-day-money-back-guarantee. Check out our plans or talk to sales to find the plan that's right for you.