You open your website and see the message "This page isn't working. example.com redirected you too many times" (or ERR_TOO_MANY_REDIRECTS in Chrome). Nobody can access the page, not even Google's bots, and every minute that passes is lost traffic. This guide takes you from diagnosis to solution step by step.
What does the "too many redirects" error mean?
The ERR_TOO_MANY_REDIRECTS error appears when the browser detects that a URL has entered a redirect loop: A redirects to B, B redirects to C, C redirects back to A (or directly A redirects to itself). Browsers limit the number of consecutive redirects they follow (typically 20) to prevent infinite loops. When that limit is exceeded, the browser stops and shows the error.
This error affects users and Googlebot equally. If your site has had this error for hours, Google may deindex the affected pages and lose accumulated ranking signals. Maximum resolution priority.
The 6 most common causes (and how to identify yours)
1. Misconfigured HTTP ↔ HTTPS loop
The most frequent cause. You have the HTTP to HTTPS redirect configured on the server, but WordPress (or another CMS) has the URL stored as HTTP in the database. Result: the server redirects to HTTPS → the CMS redirects back to HTTP → infinite loop.
- •In WordPress: go to Settings → General and verify that both "WordPress Address" and "Site Address" start with https://.
- •On the server: verify that your HTTP→HTTPS redirect rule does not also apply to requests that already arrive via HTTPS.
- •In Cloudflare: if you use Cloudflare with SSL in "Flexible" mode, the server receives requests as HTTP even though the user arrives via HTTPS. Change SSL to "Full" or "Full (Strict)".
2. www ↔ non-www loop
The server redirects example.com → www.example.com, but the CMS or a secondary rule redirects www.example.com → example.com. Both rules active at the same time create the loop.
- •Decide which is your canonical version: with www or without www.
- •Make sure only one redirect rule exists (the one leading to the correct version), not two that contradict each other.
- •In WordPress, verify that "Site Address" matches your canonical version.
3. Redirect plugin with a manually configured loop
If you use a plugin like Redirection or Yoast SEO Redirects in WordPress, someone may have accidentally configured a redirect from A → B and another from B → A. It can also happen if a redirect points to the same URL as the source.
- •Go to your redirect plugin panel and look for rules that point to URLs that in turn redirect.
- •Check specifically if any rule's destination matches the source of another rule.
- •Temporarily disable the plugin to confirm whether it is the cause of the problem.
4. Conflicting .htaccess rules
On Apache servers, the .htaccess file can accumulate multiple conflicting rules. A typical case: a rule added by the CMS and another added manually that redirect in opposite directions.
# These two rules together create a loop: RewriteRule ^$ /home [R=301,L] # redirects / → /home Redirect 301 /home / # redirects /home → / # The solution: remove one of the two or consolidate into a single rule
5. Login page redirect pointing to itself
Common in WordPress: the login page (/wp-admin or /wp-login.php) redirects the authenticated user to a URL that in turn redirects back to the login. Usually caused by a security plugin or a post-login redirect plugin that is misconfigured.
6. Incorrect reverse proxy or CDN configuration
If you use Nginx as a reverse proxy in front of Apache, or a CDN like Cloudflare, both layers may have redirect rules that interact poorly. For example: Cloudflare redirects HTTP→HTTPS and the origin server also has that rule, but communication between Cloudflare and the origin is HTTP.
Step-by-step diagnosis in under 5 minutes
Step 1: Identify the loop with iRankly's Analyzer
Enter the affected URL in the analyzer. You will see the complete redirect chain with the HTTP codes of each hop. If there is a loop, the analyzer detects it and shows you at which point the repetition occurs.
Prueba la herramienta gratis
Redirect Chain AnalyzerAnaliza tus URLs con {tool} de iRankly. Sin registro, sin tarjeta.
Step 2: Confirm the loop from the terminal
If you want to see the HTTP headers of each hop directly, use curl with the -L option (follow redirects) and --max-redirs to limit hops:
# Follow up to 10 redirects and show the headers of each hop curl -L --max-redirs 10 -I https://example.com # If you see the same URL appearing twice in the chain, you have the loop
Step 3: Test without cookies and cache
Some loops only occur when an active session cookie is present (for example, the WordPress cookie indicating the user is logged in). Open a private window or clear site cookies and try again. If the error does not appear in incognito, the cause is in an authentication-related redirect.
Specific solutions by cause
| Cause | Quick fix |
|---|---|
| Cloudflare SSL in Flexible mode | Change to Full or Full (Strict) in Cloudflare → SSL/TLS |
| WordPress URL in HTTP with server in HTTPS | Settings → General → change both URLs to https:// |
| www/non-www loop in .htaccess | Remove the duplicate rule, keep only one canonical direction |
| Redirect plugin with loop | Disable the plugin, identify the conflicting rule, fix it |
| .htaccess circular rule | Add RewriteCond %{HTTPS} on condition to prevent it from applying to requests already on HTTPS |
| WordPress login loop | Disable security/login plugins one by one until you find the culprit |
How to prevent it from happening again
- •Document all active redirects in a central log before adding new ones.
- •Before publishing a new redirect, verify with the analyzer that the destination does not in turn redirect.
- •If you use Cloudflare, set SSL mode to Full (Strict) from day one to avoid HTTP/HTTPS conflicts.
- •In WordPress, always keep "WordPress Address" and "Site Address" URLs synchronized with the actual server protocol.
- •Set up a monitoring alert that warns you if any URL returns a 5xx error or enters a loop.
After resolving the loop, wait 10–15 minutes and check again with the analyzer. Sometimes the server or CDN cache maintains the incorrect redirect for a few more minutes. If the problem persists, purge the Cloudflare cache or your WordPress cache plugin.