A website that keeps bouncing between the same pages is more than annoying. It can lock visitors out, block your WordPress login, and make your business site look broken.
The WordPress too many redirects error usually appears when parts of your setup disagree. WordPress may expect HTTPS while your server sends HTTP, or your domain may switch between www and non-www. Plugins, caching systems, .htaccess, and Cloudflare can also create conflicting rules.
We’ll start with the quickest checks, then move into server and hosting settings if the problem remains.
Key Takeaways
- The WordPress too many redirects error usually comes from conflicting HTTPS, domain, plugin, server, CDN, or caching settings.
- Trace the redirect chain first to identify whether the loop involves HTTP and HTTPS, or
wwwand non-wwwURLs. - Make sure the WordPress Address URL and Site Address URL match exactly, and use
wp-config.phpif you can’t access the dashboard. - Deactivate redirect, security, SSL, and caching plugins, then purge caches across WordPress, hosting, your CDN, Cloudflare, and the browser.
- Use one clear owner for HTTPS redirects and align Cloudflare, proxy, origin server, and SSL certificate settings.
What ERR_TOO_MANY_REDIRECTS Actually Means
Your browser requests a page, but the server responds with instructions to visit another URL. That URL sends the browser back again, creating a redirect loop error. Chrome, Firefox, or Safari eventually stops after detecting an infinite loop.
The most common loops look like this:
http://example.comredirects tohttps://example.com, then back to HTTP.example.comredirects towww.example.com, then returns to the non-wwwversion.- Cloudflare sends HTTP to your server while your server forces HTTPS.
- A WordPress plugin adds a redirect that conflicts with a hosting rule.
- Cached
301responses keep showing an old redirect after the real issue is fixed.
The goal is simple: one preferred domain, one preferred protocol, and one clear redirect path.
Trace the redirect chain first
Don’t change five settings at once. Find the redirect that repeats.
Open your browser’s developer tools, select the Network tab, turn on Preserve log, and reload the affected page. Look for repeated 301 or 302 responses and inspect the Location header. It shows where each request is being sent.
You can also test the headers with curl -I https://example.com from a terminal. If the chain alternates between HTTP and HTTPS, the protocol is the problem. If it switches between www and non-www, your domain settings disagree.
Cloudflare lists SSL mode, Edge Certificate settings, and redirect settings among the common causes in its redirect loop troubleshooting guide.
How to clear browser cookies and cache
Before editing WordPress, try a private window. If it works there, clear browser cache and remove its cookies. Stale cookies and cached redirect responses can make the repaired site look broken.
Delete the domain’s stored data, then close and reopen the browser. A cached redirect can make a fixed website look broken on one device while it works normally elsewhere.
This check takes a minute. It’s worth doing first.
Fix the WordPress Address and Site Address
WordPress stores two important URLs in its settings:
- WordPress Address URL, which points to the WordPress installation.
- Site Address URL, which is the public address visitors use.
For most sites, both values should match exactly. Use the same https:// protocol, domain, www preference, and trailing-slash convention where applicable.
URL mismatches often appear after a site migration or domain change.
Match both URLs in the dashboard
If you can access the admin dashboard, go to Settings > General. Check both URL fields carefully, including the HTTPS settings.
For a standard site, the correct setup might be:
https://example.com
Both fields should use that same address. Don’t leave one set to http://example.com and the other set to https://example.com.
The same applies to www. If your preferred address is https://www.example.com, use it in both fields. A small difference can create a large problem.
WordPress provides additional guidance on changing these settings in its site URL documentation.
Save the settings once, then clear your caching layers before testing again. If WordPress immediately redirects you out of the dashboard, use the next method.
Set the URLs in wp-config.php
When the admin area is unavailable, you can temporarily define the correct values in the wp-config.php file.
Use your hosting file manager, cPanel, or an FTP client to open the file in your WordPress root directory. Add these lines above the /* That's all, stop editing! */ line:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
Replace example.com with your real domain. Use HTTPS only if your certificate is active and your server supports HTTPS.
These constants override incorrect values stored in the WordPress database, including the relevant wp_options table. WordPress also explains the file’s role in its wp-config.php editing guide.
Create a backup before editing the file. One missing quote or semicolon can cause a different error, so slow down for this step.
If the site starts working, update the database values later or keep the definitions in place. Remember that these lines can make the URL fields in the dashboard read-only.
Disable Plugins and Purge Caches
A plugin can create a redirect loop without affecting every page. This often involves redirect, security, SSL, and caching tools.
Look closely at Redirection, Really Simple Security, WP Rocket, and WP Fastest Cache. Test the caching plugin’s layer separately from the redirect and security tools.
The issue isn’t that these tools are bad. It usually comes from two systems trying to control the same redirect.
Deactivate plugins without dashboard access
If you can still log in, deactivate plugins one at a time. Start with redirect, SSL, security, and caching tools, then test the site after each change.
If you can’t reach the admin dashboard, use FTP or your hosting file manager instead. Open wp-content/plugins and rename the suspected plugin folder, such as redirection to redirection.off.
If you can’t identify the plugin, rename the entire plugins folder to plugins.off. WordPress will deactivate all the plugins. This deactivates the tools without deleting their settings or website content.
Rename the folder back after testing, then restore plugins one at a time until the loop returns. That process takes longer, but it identifies the source while preserving your plugin settings and website content.
Purge every caching layer
Run one cache flush across your WordPress plugin, hosting account, content delivery network (CDN), and browser. Include Cloudflare if it’s active.
Some hosting security systems and Cloudflare Automatic Platform Optimization can cache redirect responses. That can preserve a bad 301 even after you fix the rule that created it.
Test in a private window after the flush. If the page works privately but not normally, the regular browser session may still hold stale data.
Reset the .htaccess File
Apache and LiteSpeed servers often use an htaccess file (.htaccess) for redirects and rewrites. A damaged or duplicated rewrite rule can send every request into an infinite loop.
Before changing the file, download a backup. Then rename .htaccess to .htaccess.bak. Renaming is safer than deleting because you can restore the original file if needed.
Identify all owners of HTTP-to-HTTPS redirect rules in your hosting control panel, .htaccess, WordPress plugins, and CDN settings. You usually need one clear owner for that redirect.
Try loading the site. If the redirect error disappears, .htaccess caused the problem.
Once you can access WordPress, go to Settings > Permalinks and click Save Changes. WordPress will usually generate a fresh set of basic rewrite rules.
Remove duplicate HTTPS rules
Remove duplicate redirect rules from the hosting panel, file, plugins, or CDN.
For example, an HTTPS rule in .htaccess can conflict with a hosting panel rule. A CDN may add another redirect at the edge. Multiple rules can turn one simple action into a loop.
If your site runs behind a proxy or load balancer, the server may see the connection as HTTP even when the visitor used HTTPS. In that setup, redirect logic must correctly read the X-Forwarded-Proto header. Ask your hosting provider to check this rather than adding random rewrite rules.
Nginx servers don’t use .htaccess. If renaming the file changes nothing, inspect Nginx configuration, hosting redirects, or your CDN instead.
Fix Cloudflare Flexible SSL Loops
Cloudflare Flexible SSL is a common cause of redirect loops in WordPress.
With Flexible mode, the visitor connects to Cloudflare over HTTPS, but Cloudflare connects to the origin server over HTTP. A consistent SSL configuration requires agreement between the edge mode, origin protocol, and certificate. If your WordPress host automatically redirects HTTP to HTTPS, the cycle looks like this:
- The visitor requests HTTPS.
- Cloudflare connects to the origin using HTTP.
- The origin sends an HTTPS redirect.
- Cloudflare repeats the same HTTP request.
- The process starts over.
Cloudflare documents this exact problem in its explanation of ERR_TOO_MANY_REDIRECTS and SSL modes.
Use Full or Full (strict) with a valid certificate
If your hosting account has a working SSL certificate, open Cloudflare and go to SSL/TLS > Overview.
Choose:
- Full (strict) when the origin has a valid certificate that matches the domain.
- Full when the origin supports HTTPS but the certificate doesn’t pass Cloudflare’s full verification.
Full (strict) is the stronger option because Cloudflare encrypts the connection to your server and checks the origin certificate.
Don’t use Flexible mode while your origin server forces HTTPS. Either remove the origin redirect, which is rarely the preferred long-term choice, or move Cloudflare to Full or Full (strict).
After changing the mode, run a cache flush in Cloudflare. Check your redirect rules and Page Rules too. An edge rule can conflict with a WordPress or hosting rule even when the SSL mode is correct.
Check the certificate and origin settings
Make sure the certificate covers the exact domain you use. Check both example.com and www.example.com if your site supports both.
You can test the certificate with the Qualys SSL test. If the certificate is expired, missing a hostname, or installed on the wrong server, fix that before changing more redirects.
If you’re using ZADiC hosting, its SSL certificates and WordPress hosting options keep these settings together. Fewer separate layers can make HTTPS issues easier to troubleshoot.
Fix a Login Page That Keeps Redirecting
When only /wp-login.php or /wp-admin loops, the cause is often different from a whole-site redirect.
Start by using clear browser cookies for the domain. WordPress uses authentication cookies, and a stale cookie can send you back to the login page even after the main site works.
Then check these settings:
- The two WordPress URL values match.
- The HTTPS settings match between your proxy, WordPress, and server.
- Your security plugin isn’t blocking or rewriting login requests.
- Cloudflare isn’t using Flexible mode with an origin that forces HTTPS.
- Your domain’s
wwwand non-wwwversions resolve consistently.
If you added define( 'FORCE_SSL_ADMIN', true ); to wp-config.php, the server and proxy must correctly recognize that the original request was HTTPS. Otherwise, WordPress can treat every secure login request as plain HTTP and redirect it again.
Your hosting provider can inspect the server headers and authentication cookies faster than repeated trial and error. Human support is a practical escalation when those checks are needed.
Prevent Redirect Problems on Your Hosting Account
Once the site loads, test more than the homepage. Open the login page, a post, an image, and both www and non-www versions. Test the HTTP version too, and confirm every request reaches one final HTTPS URL.
Keep a record of the canonical domain you chose. Use that same version in WordPress, your hosting panel, Cloudflare, Google Search Console, email links, and marketing materials. Test future domain or HTTPS changes on a staging site when possible, before applying them to production.
If redirect problems keep returning, a simpler hosting architecture may reduce the systems controlling redirects. Ask your hosting provider whether the setup can be simplified. ZADiC offers WordPress hosting, cPanel hosting, managed Web Hosting Plus, and VPS options, so you can choose the level of control your site needs.
Our goal is straightforward: dependable hosting, security monitoring, and 24/7 human support when something breaks. You shouldn’t need to become a server administrator to keep your website online.
Frequently Asked Questions
What causes the WordPress too many redirects error?
The error usually happens when WordPress, the server, Cloudflare, or a plugin sends conflicting redirect instructions. Common examples include HTTP-to-HTTPS loops and repeated switches between www and non-www URLs.
How can I fix the error if I can’t access WordPress?
First, define matching WP_HOME and WP_SITEURL values in wp-config.php. You can also deactivate plugins by renaming their folders through FTP or your hosting file manager, then test the site again.
Can a WordPress plugin cause a redirect loop?
Yes. Redirect, SSL, security, and caching plugins can conflict with hosting or CDN rules. Deactivate suspected plugins one at a time, or temporarily rename the entire plugins folder if you can’t reach the dashboard.
Why does Cloudflare cause too many redirects?
Cloudflare Flexible SSL can create a loop when the visitor connects over HTTPS but Cloudflare connects to an origin server that automatically redirects HTTP to HTTPS. Use Full or Full (strict) mode when the origin supports HTTPS, then purge the Cloudflare cache.
What should I check after fixing the redirect error?
Test the homepage, login page, posts, images, and both www and non-www versions of the domain. Confirm that HTTP requests and alternate domain versions reach one final canonical HTTPS URL without additional loops.
Conclusion
The WordPress too many redirects error usually comes from conflicting URL values, SSL settings, server rules, plugins, or cached responses. Compare the request path, correct mismatched settings, remove conflicts, refresh server rules, and align the proxy with the origin when HTTPS is enforced.
A working site needs one canonical domain and one clear HTTPS path. With the right hosting setup and support behind it, resolving those conflicts becomes manageable instead of a day-consuming mystery.






