XiaTools

How to Trace Redirect Chains and Fix Redirect Loops

Updated 30 Sept 2026

A redirect chain occurs when a browser is sent through multiple intermediate URLs before reaching a final destination, while a redirect loop traps the browser in an endless cycle. Both issues ruin user experience, slow down page load speeds, and severely harm your SEO rankings. By diagnosing the HTTP status codes and inspecting your server configurations, you can systematically clean up your URL paths.

Understanding HTTP Redirects

HTTP redirects instruct browsers and search engine crawlers that the requested resource has moved to a new location. When configured efficiently, this happens in a single step. However, misconfigurations accumulate over time, turning a simple redirection into a multi-hop journey.

Types of Redirects

Understanding the status codes involved is the first step in debugging. The most common status codes you will encounter include:

  • 301 Moved Permanently: Tells search engines that the page has moved permanently, transferring most of the link equity (SEO value) to the new URL.
  • 302 Found (Temporary): Indicates that the move is temporary, telling search engines to keep indexing the original URL.
  • 307 Temporary Redirect: The modern, stricter equivalent of a 302 redirect that guarantees the HTTP method (like POST or GET) will not change when redirected.
  • 308 Permanent Redirect: The modern equivalent of a 301 redirect that preserves the original HTTP method.

Why Chains and Loops Happen

Redirect chains usually happen organically. For example, your site migrates from HTTP to HTTPS, then from non-www to www, and later implements a localized URL structure like /en/. If each transition creates a new rule without updating the old ones, a request to http://example.com/page might turn into:

  1. http://example.com/page -> https://example.com/page (HTTP to HTTPS)
  2. https://example.com/page -> https://www.example.com/page (Non-www to www)
  3. https://www.example.com/page -> https://www.example.com/en/page (Localization)

An infinite loop happens when Rule A points to Rule B, and Rule B points right back to Rule A. This often happens due to conflicting rules between your DNS provider, your CDN, your web server configuration, and your CMS plugins.

The Impact on SEO and Performance

Every single redirect requires a complete HTTP request-response cycle. If your visitor has to hop through three redirects before reaching the target page, they experience an extra 300 to 900 milliseconds of latency purely waiting on server round-trips.

Search engine crawlers allocate a specific crawl budget to your website. If crawlers waste their limited time crawling bloated redirect chains instead of discovering fresh content, your indexation suffers. Furthermore, major search engines typically drop link equity transfer after multiple redirect hops, meaning your hard-earned backlinks lose their value along a long chain.

How to Trace Redirects

Before you can fix a broken routing path, you need to see every single hop a request makes. You can utilize the Redirect Checker to instantly inspect all intermediate status codes, response headers, and final destination URLs for any target domain.

Using Browser Developer Tools

You can also trace redirects natively using your browser's built-in developer tools. Follow these steps:

  1. Open your web browser and navigate to the target URL.
  2. Press F12 or right-click anywhere on the page and select Inspect to open Developer Tools.
  3. Click on the Network tab.
  4. Ensure the Preserve log checkbox is ticked so logs do not clear on page transitions.
  5. Check the Disable cache option to ensure you are seeing live server responses.
  6. Enter your URL in the address bar and press Enter.
  7. Look at the waterfall column. You will see multiple entries with status codes like 301, 302, or 307 followed by a final 200 OK status.
  8. Click on any individual redirect request to inspect its Location header under the Response Headers section.

Using Command Line Tools

If you prefer working inside a terminal, curl is a powerful utility for tracing redirects. Use the following command to follow redirects and display the header trail:

curl -I -L https://example.com/old-page

The -I flag fetches the headers only, and the -L flag tells curl to follow any Location headers it encounters along the way.

Step-by-Step Guide to Fixing Redirect Chains and Loops

Once you identify the bloated paths or infinite cycles, you must edit your server blocks or application routing rules. Here is how to resolve them across standard environments.

Step 1: Consolidate Multi-Hop Rules

Instead of chaining rules together incrementally, point every old variation directly to the final destination URL.

  • Bad Configuration (Chain):
    • /about-us redirects to /about
    • /about redirects to /company/about
  • Good Configuration (Direct):
    • /about-us redirects directly to /company/about
    • /about redirects directly to /company/about

Step 2: Fix Apache .htaccess Rules

Infinite loops in Apache frequently stem from over-greedy regular expressions or conflicting HTTPS enforcement rules. Check your .htaccess file for overlapping conditions.

# Correct Apache Rule for HTTPS and www enforcement without looping
RewriteEngine On

# Ensure we don't apply rules to internal rewrites
RewriteCond %{ENV:REDIRECT_STATUS} ^$

# Force HTTPS and www in a single clean rule
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

Step 3: Fix Nginx Server Blocks

In Nginx, loops often happen when return and rewrite directives conflict, or when proxy configurations pass requests back and forth between a load balancer and an application server.

# Correct Nginx Server Block for www and HTTPS redirection
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://www.example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    
    # SSL Certificate directives here...
    
    return 301 https://www.example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;

    # SSL Certificate directives here...
    
    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Step 4: Check CDN and Proxy Settings

If your web server looks clean, inspect your Content Delivery Network (CDN) settings. A very common cause of infinite redirect loops is setting your CDN SSL mode to Flexible while your origin server forces HTTPS.

  • Flexible Mode: CDN connects to your server via HTTP, but talks to the visitor via HTTPS.
  • The Loop: If your server sees an incoming HTTP request from the CDN and says "Aha! I require HTTPS!" it redirects the CDN back to HTTPS. The CDN receives the redirect, drops back to HTTP to talk to your origin server, and the cycle repeats forever.
  • The Fix: Change your CDN SSL/TLS encryption mode from Flexible to Full or Full (Strict) so the CDN communicates with your origin server securely over port 443.

Redirect Troubleshooting Checklist

Use this quick checklist when auditing your website for redirect issues:

  • Clear your browser cache and cookies before testing URLs.
  • Check both www and non-www variations of your domain.
  • Check both HTTP and HTTPS protocols for every variant.
  • Verify that your CDN SSL setting matches your origin server's SSL configuration.
  • Ensure that internal navigation links point directly to the final destination URL, not an old redirected path.
  • Test your primary landing pages using developer tools or automated checkers to guarantee zero intermediate hops.

Frequently asked questions

What is the difference between a redirect chain and a redirect loop?

A redirect chain happens when a URL passes through multiple intermediate redirect pages before reaching the final destination. A redirect loop occurs when two or more URLs point to each other in an unbroken circular path, trapping the browser in an infinite cycle.

How do redirect chains impact my website's SEO?

Redirect chains slow down page load times, which degrades user experience and Core Web Vitals scores. Furthermore, search engine crawlers waste crawl budget processing unnecessary hops, and long chains often fail to pass full link equity.

Why do I get a 'Too many redirects' error in my browser?

This error appears when an infinite redirect loop is detected. The browser stops trying to load the page after hitting a safety threshold of consecutive redirects, usually caused by conflicting server rules or misconfigured CDN SSL settings.

Should I use 301 or 302 redirects for permanent changes?

You should always use a 301 Permanent Redirect when moving a page or domain permanently. A 301 tells search engines to transfer nearly all SEO value and link juice to the new URL, whereas a 302 tells them the move is temporary.

How can I fix a redirect loop caused by Cloudflare Flexible SSL?

This loop occurs when Cloudflare communicates with your origin server over HTTP while your server forces an upgrade to HTTPS. To fix it, log into your CDN dashboard and change your SSL/TLS encryption setting from Flexible to Full or Full (Strict).

Related articles

Free tools