LinkAutopsy
URL Diagnostic System
Online
Redirect Loop · ERR_TOO_MANY_REDIRECTS

Redirect loop.
A sends to B, B sends to A.

A redirect loop means two or more URLs keep bouncing between each other forever. The browser gives up and shows ERR_TOO_MANY_REDIRECTS. The full chain is always the key to finding the conflict.

// Classic Loop Patterns
PatternWhat's happening
HTTP → HTTPS → HTTP Server forces HTTPS but CDN strips SSL and sends HTTP back to origin
www → non-www → www Server redirects to www, CDN/proxy redirects back to non-www
Cloudflare Flexible SSL Cloudflare HTTPS → origin HTTP → origin redirects to HTTPS → repeat
WordPress + CDN WordPress siteurl is HTTP, CDN forces HTTPS, creating an infinite loop
.htaccess conflict Two redirect rules matching the same URL and fighting each other
Plugin conflict Two WordPress redirect/SSL plugins issuing conflicting redirects
// How to Fix It

Go to Cloudflare SSL/TLS settings and change from Flexible to Full (Strict). Flexible SSL is the #1 cause of redirect loops on Cloudflare sites. Your origin needs a real SSL certificate.

In Settings → General, ensure both WordPress Address and Site Address use https://. Then deactivate SSL/redirect plugins one at a time to find the conflict.

Rename .htaccess to .htaccess.bak temporarily. If the loop stops, a rewrite rule is the cause. Add back rules one at a time.

Trace the exact chain with LinkAutopsy above. The loop point — where a URL appears twice — tells you exactly which server or rule is creating the cycle.

// Reading a Redirect Chain

LinkAutopsy shows every hop with its HTTP status code and destination. Here's how to read it:

301http://example.com → https://example.com
301https://example.com → http://example.com ← LOOP

In this example: the origin forces HTTPS→HTTP, but something in the chain keeps sending HTTP→HTTPS. Cloudflare Flexible SSL mode is the classic culprit.

// FAQ

Cookies can force redirect loops. Clear all cookies for the domain and try again. Incognito has no cookies, so it bypasses cookie-based loops.

Chrome gives up at 20 redirects. Firefox at 20. Best practice is 0–1 redirects to reach the final URL. More than 3 is a problem.

Each redirect hop loses a small amount of link equity and adds latency. A loop means Google can't index the page at all. Even non-loop chains longer than 2 hops should be cleaned up.