Troubleshooting Guides
Fixing ERR_TOO_MANY_REDIRECTS: How to Fix Too Many Redirects for Good
The error almost always traces to one of three places - a forced-HTTPS rule fighting your SSL setup, a WordPress URL mismatch, or a Cloudflare SSL mode set wrong.
3
Most common causes: SSL rules, proxy mode, WordPress URLs
Free
Auto-renewing SSL that avoids the mismatch causing this
24/7
Human support to trace a loop across DNS, proxy and server
Daily
Backups to restore a config before a risky redirect edit
In short
Here's how to fix too many redirects: check whether your site forces HTTPS in .htaccess while a proxy like Cloudflare is set to Flexible SSL, since that mismatch loops the browser between the proxy and the origin server; switching Cloudflare to Full (Strict) usually resolves it. Without a proxy, the cause is often a WordPress site address set to the wrong protocol, fixed with a direct wp-config.php edit.
Identifying which of the three layers is actually looping is most of the fix - the rest is usually a single setting change.
ERR_TOO_MANY_REDIRECTS shows up when a browser detects it's being bounced between the same URLs (or between HTTP and HTTPS versions of them) past a safety threshold, and it stops rather than loop indefinitely. The frustrating part is that the message itself doesn't say which layer is causing it - the browser, a proxy or CDN sitting in front of the site, the server's own redirect rules, or the application's URL configuration could all produce the identical error.
In practice, the vast majority of cases trace back to one of three specific causes: an SSL-forcing rule that conflicts with how HTTPS is actually being handled, a Cloudflare (or similar) SSL mode mismatched with the origin server's certificate, or a WordPress site address configured for the wrong protocol. This guide walks through identifying and fixing each one.
What Causes a Redirect Loop in the First Place
A redirect loop happens when two rules disagree about where a URL should ultimately land, and each one keeps sending the request back toward the other. The most common version is an HTTP-to-HTTPS redirect at one layer meeting an HTTPS-to-HTTP redirect at another layer - the browser gets bounced back and forth until it gives up and shows ERR_TOO_MANY_REDIRECTS instead of a page.
The fix depends entirely on identifying which layer is actually causing the disagreement: a proxy or CDN in front of the site, the web server's own .htaccess rules, or the application itself (WordPress being the most common case, since it stores its own idea of the site's URL separately from the server configuration). Guessing and changing settings at random usually just moves the loop rather than fixing it.
How to Fix Too Many Redirects Caused by SSL Rules
A common cause on the server side is a .htaccess rule forcing every request to HTTPS while something else - another rule further down the file, or a plugin doing the same thing independently - is also trying to enforce a redirect, and the two end up disagreeing about the destination URL. Duplicate or conflicting RewriteCond and RewriteRule blocks handling the same HTTP-to-HTTPS logic are worth checking for specifically, since only one should exist.
It's also worth confirming the SSL certificate is actually installed correctly and hasn't expired - a server trying to force HTTPS without a valid certificate to back it up can produce the same symptom. Free auto-renewing SSL removes the expiry half of that risk entirely, since the certificate renews on its own before it lapses.
Fixing It When Cloudflare (or Another Proxy) Is Involved
When a site sits behind Cloudflare, the SSL mode setting matters as much as anything happening on the origin server itself. Flexible mode encrypts the connection between the visitor's browser and Cloudflare but connects to the origin server over plain HTTP - if the origin also has a rule forcing HTTP requests to redirect to HTTPS, Cloudflare's request loops right back into that redirect, and the visitor's browser sees it as an endless cycle.
Full mode encrypts both legs of the connection but accepts any certificate on the origin, including a self-signed one, while Full (Strict) requires a valid, trusted certificate on the origin server. Full (Strict) paired with a genuine certificate - which free auto-renewing SSL provides by default - is the most reliable combination, since it matches what the origin server is actually doing with what Cloudflare expects on its end.
Fixing WordPress-Specific Redirect Loops
WordPress stores its own idea of the site's address in two settings - Site Address (URL) and WordPress Address (URL) - found under Settings > General in wp-admin. If either one is set to http:// while the server is actually enforcing https://, or vice versa, WordPress and the server disagree about the correct URL and loop. When the loop makes wp-admin itself unreachable, the same values can be set directly in wp-config.php using the WP_SITEURL and WP_HOME constants, or edited in the wp_options database table via phpMyAdmin as a last resort.
It's also worth ruling out a security or SSL-forcing plugin adding its own redirect on top of the server's, which is a common source of a double redirect that looks identical to a server-level loop from the outside. After any fix, clear the browser's cache and cookies before retesting, since browsers cache redirect chains aggressively and can keep showing the old error even after the underlying cause is resolved.

Free SSL That's Actually Configured Right, Not Just Installed
A redirect loop caused by SSL is rarely about whether a certificate exists at all - it's about whether the certificate, the server's redirect rules, and any proxy in front of it all agree on the same setup.
Free auto-renewing SSL removes the expiry-related version of this problem entirely, and a cPanel-style panel makes it simple to confirm the certificate actually covers the hostnames it needs to, with 24/7 human support to trace the rest.
- Free auto-renewing SSL avoids the certificate half of most redirect loops
- cPanel-style panel confirms the certificate covers www and non-www correctly
- 24/7 human support to trace a loop across DNS, proxy and server layers
- Daily backups restore wp-config.php or .htaccess before a risky edit
Why Hosting Cheap
What you get
Free auto-renewing SSL
Installed and kept current automatically, removing a common cause of redirect loops.
cPanel-style panel
Check and reissue a certificate directly, without filing a support ticket first.
24/7 human support
Get help tracing whether a loop originates at the proxy, server or application layer.
Daily backups
Roll back a bad .htaccess or wp-config.php edit in seconds if a fix goes wrong.
Free managed migration
Move a looping site to a correctly configured host without rebuilding it.
30-day money-back guarantee
Confirm the fix holds under real traffic before committing further.
How It Works
Get set up in a few steps
Identify which layer is looping
Check whether the disagreement is at the browser, proxy, server or application level.
Match SSL and proxy settings
Set Cloudflare (or another proxy) to Full or Full (Strict) to match a real origin certificate.
Correct WordPress or .htaccess URLs
Fix the site address settings or redirect rules, then clear the browser cache and retest.
Included
Everything you need, on every plan
- Confirm whether the site sits behind Cloudflare or another proxy
- Set the proxy's SSL mode to Full (Strict) if the origin has a real certificate
- Check .htaccess for duplicate or conflicting HTTPS redirect rules
- Confirm the SSL certificate is actually installed and hasn't expired
- Check that WordPress Site Address and WordPress Address both use https://
- Edit wp-config.php directly if wp-admin is unreachable due to the loop
- Clear browser cache and cookies before retesting the fix
- Back up .htaccess and wp-config.php before editing either one
FAQ
Frequently asked questions
What does ERR_TOO_MANY_REDIRECTS actually mean?
It means the browser detected it was being sent back and forth between the same URLs, or between HTTP and HTTPS versions of them, past a safety threshold, and stopped rather than loop indefinitely.
Why does Cloudflare's Flexible SSL setting cause this?
Flexible mode connects to the origin server over plain HTTP, so if the origin also forces HTTP requests to redirect to HTTPS, the request loops between Cloudflare and the origin's own redirect rule.
Can I fix a redirect loop if I can't reach wp-admin?
Yes, the same Site Address and WordPress Address values can be set directly in wp-config.php using the WP_SITEURL and WP_HOME constants, or edited in the database via phpMyAdmin.
Does an expired SSL certificate cause redirect loops?
It can, since a server trying to force HTTPS without a valid certificate behind it produces a similar symptom - free auto-renewing SSL removes that particular risk by keeping the certificate current automatically.
Will clearing my browser cache actually help?
Often, yes - browsers cache redirect chains aggressively, so the error can persist even after the underlying cause is fixed until the cache and cookies are cleared and the page is retested.
How do I know if the loop is at the DNS or plugin level?
Test the site directly by its IP address or through a different proxy configuration to rule out DNS and proxy issues, and temporarily deactivate any SSL-forcing plugin to check whether it's adding a redirect on top of the server's own rule.
Related hosting
SSL Certificates
Free auto-renewing SSL that removes a common cause of redirect loops.
Web Hosting
NVMe SSD and LiteSpeed hosting with a cPanel-style panel for SSL and redirects.
WordPress Hosting
Managed WordPress hosting where URL settings and SSL stay in sync.
Domain Registration
Manage DNS for a domain affected by a proxy or SSL mode mismatch.
Stuck in a Redirect Loop Right Now?
Get 24/7 human support to trace the exact cause, backed by free auto-renewing SSL and daily backups to restore a config safely.
Get Started