Summary
"This page isn't working: example.com redirected you too many times. ERR_TOO_MANY_REDIRECTS" is what the browser shows when two redirect rules keep sending a visitor back and forth. On sites behind Cloudflare it most often starts right after enabling Cloudflare, adding an SSL plugin, switching to HTTPS, or moving hosts. The whole site, or only /wp-admin, stops loading.
This guide gives you the fast isolation steps first. If you would rather hand it over, SazM offers an affordable, low-cost redirect-loop fix for a fixed $99 price, delivered within 48 hours, entirely in writing: no calls, no project manager, one senior developer.
Where the Error Lives
A redirect loop is a chain of 301/302 responses that never ends. Check the chain itself, then the three places that can issue redirects:
curl -sIL --max-redirs 6 https://example.com/ | grep -iE "^(HTTP|location)"
Cloudflare dashboard → SSL/TLS → Overview # encryption mode (Flexible, Full, Full strict)
Cloudflare dashboard → Rules → Redirect Rules # custom redirects
.htaccess / nginx server block # HTTP to HTTPS and www rules
wp-config.php, Settings → General # WP_HOME, WP_SITEURL, FORCE_SSL_ADMIN
If the output alternates between http:// and https:// for the same URL, the loop is HTTP to HTTPS. If it alternates between www and non-www, two host rules disagree.
Quick Fix Breakdown (DIY)
- Check the Cloudflare SSL/TLS mode first. In Flexible mode Cloudflare talks to your origin over plain HTTP. If the origin then redirects HTTP to HTTPS, the request loops. Install a valid certificate on the origin (a free Cloudflare Origin CA certificate works) and switch to Full (strict).
- Keep one place in charge of HTTPS redirects. Use either Cloudflare's "Always Use HTTPS" or an origin rule, not an SSL plugin plus
.htaccessplus Cloudflare together. - Make WordPress see the original protocol behind a proxy. If you must stay on Flexible temporarily, add this above the "That's all, stop editing" line in
wp-config.php:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
- Match the site URLs to the live address. Compare the values and fix any
http://or wrong-host entry:
wp option get home
wp option get siteurl
wp option update home 'https://example.com'
wp option update siteurl 'https://example.com'
- Look for duplicate rules in
.htaccess. TwoRewriteRule ... https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]blocks, or a leftover host rule from staging, will loop. Back up the file, then restore the default WordPress block. - Disable the SSL or redirect plugin with WP-CLI if you cannot reach wp-admin:
wp plugin deactivate really-simple-ssl --skip-plugins --skip-themes
- Purge caches and test in a private window. Browsers cache
301responses. Purge Cloudflare's cache and any page-cache plugin, then retest with thecurlcommand above rather than trusting the browser. - Admin-only loops: if only
/wp-adminloops, checkFORCE_SSL_ADMIN, the cookie domain (COOKIE_DOMAINinwp-config.php) and any rule in Cloudflare that caches or redirects/wp-adminor/wp-login.php.
If none of these isolates it within an hour, stop. Every extra hour is lost visits and lost orders.
Hand It Over: $99 Fixed, Within 48 Hours
Redirect loops drag on because the cause is spread across Cloudflare, the origin server and WordPress, and each layer looks fine when checked alone. One developer who traces the whole chain ends the guessing.
What you get for $99:
- A fixed price agreed before work starts. One issue, one flat fee, no hourly meter.
- Delivery within 48 hours of access, with the fix verified on staging before anything touches production.
- Fully written, fully async. You send the URL, the output of the
curlcommand above, what changed recently (Cloudflare setup, SSL plugin, host move) and a screenshot of the Cloudflare SSL/TLS page. You get questions, progress and proof in writing. There are no calls, meetings or project managers. - Written proof it works: the root cause in plain language, which rules or settings changed, a before and after redirect trace, and a rollback note.
- Money-back guarantee if the agreed root cause cannot be resolved.
- Safe access only: a limited hosting, SSH or Cloudflare account that you can revoke. Never send passwords through the inquiry form.
If the loop is gone but the site is crashing or blank, see WordPress crash recovery after a plugin update. If checkout misbehaves after the fix, see WooCommerce checkout not working.
Behind it: 20+ years in production (since Oct 2006) and 100+ projects in the portfolio.
Get this error fixed for $99 → · Queue an urgent fix · See past projects
For ongoing upkeep, see WordPress care.
Frequently Asked Questions
What causes ERR_TOO_MANY_REDIRECTS with Cloudflare and WordPress?
Usually Cloudflare is in Flexible SSL mode while the origin or an SSL plugin redirects HTTP to HTTPS, so each request is sent back to the start. Mismatched home and siteurl values, duplicate .htaccess rules and cached 301 responses are the other common causes.
How do I fix too many redirects after enabling Cloudflare?
Install a valid certificate on the origin and set Cloudflare SSL/TLS to Full (strict), keep only one layer responsible for HTTPS redirects, confirm home and siteurl use the live HTTPS address, then purge caches and retest with curl -IL.
Why does only wp-admin redirect in a loop?
Admin loops often come from FORCE_SSL_ADMIN combined with a proxy that hides HTTPS from WordPress, a wrong cookie domain, or a Cloudflare rule that redirects or caches /wp-admin. Passing the X-Forwarded-Proto header through or using Full (strict) normally resolves it.
How much does it cost to fix a WordPress redirect loop?
SazM fixes one issue for a fixed $99, delivered within 48 hours, with a money-back guarantee if the agreed root cause cannot be resolved. Typical agency hourly rates are higher and open-ended, while very low marketplace gig prices rarely include root-cause diagnosis, a staging test or a guarantee.
Do I need a call to explain the problem?
No. Send the URL, the redirect trace and what changed recently. Everything, including questions and the final write-up, happens in writing.