Table of Contents >> Show >> Hide
- What the Redirect Loop Error Actually Means (In Human Terms)
- Quick Checklist Before You Change Anything
- Step-by-Step: How to Fix WordPress ERR_TOO_MANY_REDIRECTS
- 1) Confirm It’s Not Just Your Browser (Yes, Really)
- 2) Clear Every Cache Layer You Have (Browser, Plugin, Host, CDN)
- 3) Check WordPress URL Settings (The #1 Redirect Loop Trigger)
- 4) Fix HTTPS/SSL Mismatch (Especially with a CDN or Reverse Proxy)
- 5) Reset Your Redirect Rules by Regenerating .htaccess (Apache)
- 6) Disable Plugins Without wp-admin (Fast Conflict Test)
- 7) Switch to a Default Theme (Rare, But Worth a 60-Second Test)
- 8) Check Server-Level Redirects (Nginx, cPanel, Host Panels, and “Helpful” Tools)
- 9) Fix Login and /wp-admin Redirect Loops (Cookies and SSL Admin Settings)
- 10) Use a Redirect Checker (So You Can See the Loop Instead of Guessing)
- 11) Last Resort Checks (When the Easy Stuff Didn’t Work)
- How to Confirm the Redirect Loop Is Truly Fixed
- How to Prevent WordPress Redirect Loops in the Future
- Conclusion
- Experience-Based Troubleshooting: What Usually Causes Redirect Loops (And How People Fix Them Fast)
If your WordPress site is stuck doing cardioHTTP to HTTPS, www to non-www, and back againyour browser eventually taps out with
ERR_TOO_MANY_REDIRECTS (or “This page isn’t redirecting properly”). Congrats: you’ve found the infamous WordPress redirect loop.
The good news? This error is usually fixable in minutes once you know where to look.
This guide walks you through a practical, least-risk-first checklist to stop the redirect loop error in WordPress without turning your site into a crime scene.
We’ll cover the real culprits: mismatched URL settings, SSL/HTTPS confusion, caching layers, redirect plugins, CDN/proxy settings, and server-level rules.
What the Redirect Loop Error Actually Means (In Human Terms)
A redirect loop happens when your site (or something in front of it) keeps telling the browser, “No, go here instead,” and the “here” keeps pointing back to
where you just came from. The browser follows the chain, hits a loop, and finally throws a tantrum.
Common loop patterns look like this:
- HTTP ↔ HTTPS (SSL settings conflict between WordPress, your host, and/or a CDN)
- www ↔ non-www (WordPress settings disagree with server redirects or DNS)
- /wp-admin login loops (cookies, forced SSL admin, security plugins, or proxy headers)
- Old domain ↔ new domain after a migration (database URLs or hard-coded config)
Quick Checklist Before You Change Anything
Don’t worrythis isn’t the “touch nothing and panic” portion. It’s the “touch the right things in the right order” portion.
- Open an incognito/private window and test your homepage and
/wp-admin. - Note what changed recently: SSL install, Cloudflare/CDN toggle, migration, new plugin, new redirect rule, domain change.
- Make a backup of
.htaccessandwp-config.phpbefore editing. - Know your stack: Apache (often
.htaccess) vs Nginx (server config), plus any CDN/reverse proxy.
Step-by-Step: How to Fix WordPress ERR_TOO_MANY_REDIRECTS
Follow these steps in order. Most redirect loop fixes are found earlyno need to jump straight to “rebuild the internet.”
1) Confirm It’s Not Just Your Browser (Yes, Really)
Redirect loops often involve cookies. If your browser saved a stale cookie for a previous URL or protocol, it can keep “helpfully” sending you into a loop.
- Try incognito/private mode first.
- Clear cookies for your domain (not necessarily your entire browsing history).
- Try a second browser or your phone on cellular data for a clean test.
2) Clear Every Cache Layer You Have (Browser, Plugin, Host, CDN)
Redirect rules can be cached. That means you might fix the problem… and still see the loop because a cache is replaying yesterday’s bad decisions.
- Browser cache: hard refresh or clear cached files.
- WordPress cache plugin: purge/clear cache if you can access it.
- Hosting cache: many managed hosts have server/page caching toggles.
- CDN cache: purge CDN cache (Cloudflare, etc.).
Tip: If you can’t access wp-admin, you can still clear some caching plugins by temporarily disabling them (we’ll do that safely below).
3) Check WordPress URL Settings (The #1 Redirect Loop Trigger)
In WordPress, go to Settings → General and confirm:
- WordPress Address (URL)
- Site Address (URL)
These must match the real, intended version of your sitesame protocol and same “www” choice.
Examples:
- Good:
https://example.comandhttps://example.com - Good:
https://www.example.comandhttps://www.example.com - Bad (loop bait): one is
http://and the other ishttps:// - Bad (also loop bait): one has
wwwand the other doesn’t
If you’re locked out of wp-admin, you can force correct URLs in wp-config.php temporarily:
Replace example.com with your actual domain. After you regain access, you can remove these and set URLs in the dashboard (or leave them if you prefer config-as-source-of-truth).
Still locked out? You can update the same values in the database (usually wp_options)look for siteurl and home.
Migrations commonly leave these pointing to an old domain, which can cause a loop.
4) Fix HTTPS/SSL Mismatch (Especially with a CDN or Reverse Proxy)
SSL redirect loops are incredibly common when there are multiple places enforcing HTTPS:
WordPress, a caching plugin, the server, and a CDN/proxy can all try to “help” at once.
Common scenario: Your CDN terminates SSL (visitor connects via HTTPS), but your origin server thinks it’s HTTP. WordPress sees “HTTP” and redirects to HTTPS. The CDN sees “HTTPS already” and redirects… and the loop begins.
If you use a proxy/CDN, make sure your origin is configured for HTTPS correctly and that the proxy mode matches your certificate setup.
Also ensure WordPress can detect HTTPS behind a proxy. Some setups need a hint like this (use only if you’re actually behind a proxy/load balancer):
If the loop started right after “turning on SSL,” check for competing rules:
- Host-level “Force HTTPS” toggle
- Plugin-level “Force SSL/HTTPS” setting
.htaccessor Nginx redirect rules- CDN “Always Use HTTPS” / SSL mode settings
Pick one place to enforce HTTPS if possible, at least while troubleshooting. Redundancy is great for backupsnot for redirects.
5) Reset Your Redirect Rules by Regenerating .htaccess (Apache)
If your host uses Apache (very common), a broken .htaccess can trap your site in a redirect loop.
A safe move: reset .htaccess to a clean default and then “flush permalinks.”
- Via FTP/File Manager, rename
.htaccessto.htaccess_old. - Log into WordPress (if possible) → Settings → Permalinks → click Save Changes (no changes needed).
- WordPress regenerates
.htaccesswith standard rewrite rules.
If you need a typical baseline WordPress .htaccess (Apache), it usually looks like this:
If you had custom redirects, add them back after the loop is fixed, one at a timelike testing hot sauce on a tiny corner of your tongue.
6) Disable Plugins Without wp-admin (Fast Conflict Test)
Redirect plugins, security plugins, caching plugins, and SEO tools can all create or amplify redirect loopsespecially if two tools try to manage redirects.
The fastest test is to disable all plugins at once.
- Connect via FTP/File Manager.
- Go to
wp-content. - Rename the folder
pluginstoplugins_off. - Test your site again.
If the redirect loop is gone, you’ve confirmed it’s a plugin conflict or plugin setting.
Rename the folder back to plugins, then disable plugins one-by-one to find the troublemaker.
Pro tip: If you’re using a dedicated redirect plugin and your host/CDN also has redirect rules, decide who’s in charge. Two redirect managers often end up “arguing politely forever.”
7) Switch to a Default Theme (Rare, But Worth a 60-Second Test)
Themes usually don’t cause redirect loops, but some doespecially if they bundle security features, force HTTPS, or include custom login redirects.
To test:
- In
wp-content/themes, rename your active theme folder (e.g.,mytheme→mytheme_off). - WordPress should fall back to a default theme like Twenty Twenty-Four (if installed).
- Test again.
8) Check Server-Level Redirects (Nginx, cPanel, Host Panels, and “Helpful” Tools)
If WordPress settings and plugins look innocent, the loop may be happening before WordPress even loads.
Common places server redirects hide:
- Hosting control panels (domain redirects, “force HTTPS,” www toggles)
- Nginx config rules (for Nginx-only stacks,
.htaccesswon’t help) - Reverse proxy rules (load balancers, CDN edge redirects)
- Security tools/WAF rules that redirect suspicious traffic
A classic loop: host forces www while WordPress is set to non-www (or vice versa). Another classic: host forces HTTPS while CDN is set in a mode that expects HTTP at the origin.
9) Fix Login and /wp-admin Redirect Loops (Cookies and SSL Admin Settings)
If only /wp-admin or the login page loops, think “cookies + protocol detection.”
Try:
- Clear cookies for the site and test in a private window.
- Make sure site URLs are consistent (Step 3).
- If you forced SSL admin in
wp-config.php, confirm your site truly serves HTTPS correctly.
If your site is behind a proxy and WordPress can’t detect HTTPS, wp-admin loops are especially common until you fix the forwarded protocol handling (Step 4).
10) Use a Redirect Checker (So You Can See the Loop Instead of Guessing)
When you’re troubleshooting, guessing is expensive. A redirect checker (or even a simple header check) shows where the loop actually is.
You’re looking for patterns like:
http://example.com→https://example.com→http://example.com(protocol tug-of-war)https://example.com→https://www.example.com→https://example.com(www ping-pong)- Redirects that repeat the same two URLs over and over (the redirect hamster wheel)
If you’re comfortable with command line, this is a quick way to see headers:
If you see repeated Location: headers bouncing between two URLs, you’ve found your loop pattern.
11) Last Resort Checks (When the Easy Stuff Didn’t Work)
These are less common, but they do happenespecially after migrations or partial restores:
- Hard-coded redirects in
wp-config.phpor custom MU-plugins - Mixed content or forced canonical redirects from SEO settings fighting server redirects
- File permission oddities affecting wp-admin behavior
- Domain-level forwarding at the registrar conflicting with server rules
If you’ve tried everything above and the redirect loop error persists, contact your hosting provider with:
- What changed right before the error
- Your intended canonical URL (exactly: with/without
www, andhttps) - A redirect chain from a redirect checker or header output
How to Confirm the Redirect Loop Is Truly Fixed
Don’t stop at “it works on my laptop.” Confirm stability:
- Test in an incognito window.
- Test your homepage, a random post, and
/wp-admin. - Test both
http://andhttps://versions (HTTP should redirect once to HTTPS, then stop). - Test both
wwwand non-www(one should redirect once to your chosen canonical version). - Purge caches one last time after final changes.
How to Prevent WordPress Redirect Loops in the Future
- Choose one canonical URL (HTTPS + either www or non-www) and stick to it everywhere.
- Keep redirects in one “boss” location: server OR plugin OR CDNavoid overlapping rules.
- Use staging for big changes (SSL, CDN, migrations, redirect rewrites).
- Document changes (even a simple note: “Enabled Force HTTPS on host panel”). Your future self will thank you.
- After a migration, confirm
home/siteurl, search/replace old domains safely, and re-check redirects.
Conclusion
The WordPress redirect loop error looks dramatic, but it usually comes down to a small configuration mismatch: your site URLs don’t match your server redirects,
SSL is being forced in two places, a plugin is fighting a CDN, or a migration left old URLs behind. Start with cookies and caches, confirm your WordPress URL settings,
then work outward to plugins and server/CDN rules. One clean canonical URL + one redirect strategy = a calm browser and a site that doesn’t run in circles.
Experience-Based Troubleshooting: What Usually Causes Redirect Loops (And How People Fix Them Fast)
In real-world WordPress troubleshooting, redirect loop errors tend to follow a few repeatable “plot twists.” If you’ve ever wondered why this keeps happening to
otherwise normal websites that just want to sell candles or share banana bread recipes, here are patterns that show up again and againplus what typically fixes them.
Plot twist #1: The “HTTPS is on… kind of” situation. A lot of redirect loops appear right after someone enables SSL. The site looks like it’s on
HTTPS, but the origin server (or WordPress) thinks the request is HTTP. This happens often with a CDN or reverse proxy in front of the site. The visitor arrives via
HTTPS, the proxy forwards to the server, and the server sees plain HTTP unless it’s configured to trust the forwarded protocol header. WordPress then tries to “upgrade”
the request to HTTPS, but the proxy already considers the visitor HTTPS, so it redirects againor it forwards in a way that triggers the same redirect rule twice.
The fix is usually not “more redirects.” It’s aligning the SSL mode and making sure WordPress can detect HTTPS correctly behind the proxy, then choosing one place to
enforce HTTPS (host panel, server config, or CDNpick one).
Plot twist #2: The migration hangover. After a site moves hosts or changes domains, you might have a perfectly valid new domain pointing to a server
that still believes it lives at the old address. WordPress stores URLs in multiple places: the home and siteurl options, internal links in
content, and sometimes plugin settings. If home is set to https://oldsite.com but your DNS is now https://newsite.com, the
browser gets redirected to oldsite, which may redirect back to newsite, and suddenly your website is doing ping-pong at Olympic speed. The fastest fix is updating
WP_HOME and WP_SITEURL (or updating the database values), then cleaning up old-domain references using a safe search/replace method.
Bonus lesson: do the final checks in a private window so you’re not chasing cookies from the old domain.
Plot twist #3: The www vs non-www tug-of-war. This one is sneaky because it looks harmless. Someone sets WordPress to
https://example.com, but the host panel is configured to “Always redirect to www,” or the registrar has forwarding rules, or the CDN is doing its own
canonicalization. Each layer is trying to be helpful, but they disagree on the “correct” URL. The result is a loop bouncing between two nearly identical addresses.
Fixing it is usually as simple as choosing your canonical version and making sure WordPress, the server, and the CDN all agree. Once they do, the redirect chain
becomes a single hop instead of an endless loop.
Plot twist #4: Two plugins enter, one plugin leaves. Redirect loops also show up when a caching plugin, security plugin, or SEO plugin overlaps with
a dedicated redirect plugin. One tool forces HTTPS, another forces a canonical URL, another manages trailing slashes, and suddenly your site is stuck in a logic debate.
The fastest diagnostic move is disabling all plugins by renaming the plugins folder, then bringing them back one-by-one. When the loop disappears, it’s
not magicit’s evidence. From there, you can adjust the plugin settings or pick one plugin to manage redirects while the others stand down politely.
Plot twist #5: The cache that remembers your mistakes. Even after you fix the underlying redirect rules, caching layers can keep serving the old
redirect responses. People often “fix” the loop and still see it, then undo the fix (tragically re-breaking the site), because the cache didn’t update. When in doubt,
purge caches in this order: browser (or incognito), WordPress cache plugin, host cache, CDN cache. Then test again. If the redirect checker shows one clean redirect to
your canonical URL, you’re doneyour browser just needed to stop living in the past.
The best takeaway: redirect loops are rarely mysterious. They’re usually a disagreement between layers. Make every layer agree on one canonical URL, keep redirects in
one primary place, and your site will stop running laps.
