We come across a lot of different errors here at Kinsta, and the ERR_TOO_MANY_REDIRECTS is one we see on a regular basis. Typically this occurs after a recent change on your WordPress site, 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 your website to go 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.
There are a couple different variations of this error depending upon the browser you’re running.
In Google Chrome this error will show as ERR_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.
In Mozilla Firefox it will show as The page isn’t redirecting properly (as seen below).
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
Here are some recommendations and things to check to fix the error (sorted in order by most common reasons we see):
Delete Cookies and Clear Cache in Your Browser
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.
In Google Chrome click on the three small dots in the upper right-hand corner. Then click on “Settings.”
Scroll down and click on “Advanced.”
Then click on “Content settings.”
Click on “Cookies.”
Then click on “See all cookies and site data.”
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.
And of course, it never hurts to try clearing your cache and restarting your browser as well. Below are instructions on how to clear cache in the various browsers:
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 setup 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 setup 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.
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
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 setup 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.
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.
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.
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.
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.
Below is an example of what your wp-config.php file might look like afterward.
Once you manually set it, you can browse to your site to verify whether or not it fixes the redirect loop.
Temporarily Disable WordPress Plugins
When it comes to WordPress, temporarily disabling all your WordPress plugins can be a quick way to spot problems. If you have some plugins that are doing redirects, a conflict with these could easily cause 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.
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.
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.
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 % !-f RewriteCond % !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
See the WordPress Codex for more examples, such as a default
.htaccess file for multisite.
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 setup 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.
And of course, you can always open up a support ticket and we’ll check this for you.