All articles
Guide ·

What Does Too Many Redirects Mean? Understand & Fix It

Encountering the 'too many redirects' error? Learn what does too many redirects mean, its causes like redirect loops, and how to diagnose and fix it now.

  • too many redirects
  • redirect loop
  • website error
  • technical seo
  • http redirects

You change a URL, flip a plugin setting, or launch a campaign link. Then someone messages: “Your page is broken.” In Chrome, it says ERR_TOO_MANY_REDIRECTS. In Safari, the page just refuses to open. In WordPress, you might even lock yourself out of wp-admin and wonder what you touched.

This error feels vague, but the problem usually isn't. A request is being sent in circles instead of reaching a final page. Sometimes the loop is obvious, like http bouncing to https and then back again. Sometimes it's buried inside a CDN rule, a reverse proxy header, or an authentication flow that only breaks in Safari.

If you're asking what does too many redirects mean, the short answer is this: your browser followed redirect instructions until it gave up. The useful answer is knowing where that loop lives and how to stop it. That's where most guides fall short. They focus only on server rules and ignore browser privacy features, identity providers, and edge configurations that can create the same symptom.

Table of Contents

Introduction You Have an Error

When this error is first seen, the server is often assumed to be down. It usually isn't. The server is responding. It's just responding with the wrong instructions over and over.

A redirect is supposed to be a clean handoff. Old URL to new URL. Non-secure page to secure page. Short link to destination. When that handoff gets misconfigured, the browser never reaches the intended page. It keeps following instructions until it decides the trip is broken.

That's why this error is so frustrating. The site can look healthy from one angle and still fail for actual visitors. Marketing sees a broken landing page. A developer sees a chain of 301s and 302s. Support gets reports that “it works in Chrome but not in Safari.” All three can be describing the same underlying issue.

A redirect loop is less like a server outage and more like a bad set of directions. The road exists. The signs just keep sending you back to the same intersection.

The fix starts by treating redirects as a system, not a single setting. Web server rules, CMS plugins, load balancers, CDNs, auth providers, cookie policies, and browser privacy controls can all participate in the loop. If you only check one layer, you can miss the actual cause.

Decoding the Too Many Redirects Error

Think of a mailed letter with a forwarding label. The postal worker sends it from Post Office A to Post Office B. Post Office B has another forwarding rule that sends it back to A. The letter isn't lost. It's trapped in a loop.

That's what happens on the web. A browser requests a URL. The server answers with an HTTP redirect such as 301 or 302, telling the browser to fetch a different URL instead. If the next location redirects again, the browser follows that one too. When those redirects circle back, the request never lands.

A diagram illustrating the Too Many Redirects error caused by an infinite loop between two servers.

What the browser is actually doing

This error isn't the browser being picky. Browsers intentionally stop following redirects after a limit so a broken site can't trap the user forever. Modern browsers typically cap a request cycle at around 20 redirects, and each extra hop can add 50 to 150 ms of latency in real-world conditions, according to Network Solutions' explanation of redirect loops.

That means two things:

  • Loops fail hard: if URL A points to B and B points back to A, the browser eventually aborts.
  • Long chains are bad even before failure: a setup with several redirect hops can feel slow long before it reaches the browser's limit.

A lot of people hear “too many redirects” and imagine a pure infinity loop. In practice, the user-facing message can also appear when a setup has too many chained hops across layers. For example, a visitor may hit a short link, then a CDN rewrite, then an origin redirect, then a locale redirect, then a login redirect, then a canonical redirect. That stack gets fragile fast.

Why the message looks different across browsers

The exact wording depends on the browser. Chrome tends to show ERR_TOO_MANY_REDIRECTS. Others phrase it differently. Don't get hung up on the label. The underlying behavior is the same: the client followed redirect responses until it decided the path would never settle.

Practical rule: A redirect should feel like a single handoff. If you need to “trace the journey” to understand where users land, your redirect logic is already too complicated.

If you're debugging campaigns, short links, or branded links, this matters even more. Redirects are often treated as trivial glue. They're not. They're request routing, and request routing has to be precise.

The Usual Suspects Common Causes for Redirect Loops

Most redirect loops come from conflicting logic. One layer says “go there,” another says “come back here,” and the browser obediently does both until it fails. The hard part is that the conflict often lives across systems managed by different people.

An infographic titled The Usual Suspects illustrating common technical causes of website redirect loops for troubleshooting.

Server rules that conflict with each other

This is the classic case. Apache .htaccess, Nginx rewrite rules, app middleware, or hosting panel redirects all try to normalize the URL. If two of them enforce different versions of the same rule, you get a loop.

Common examples include:

  • HTTP versus HTTPS enforcement: one layer forces secure traffic while another still believes the request arrived over plain HTTP.
  • WWW versus non-WWW normalization: one rule pushes to www, another pushes back to the bare domain.
  • Trailing slash or path normalization: one system adds a slash while another removes it.
  • Recursive pattern rules: a broad regex catches the redirected URL too, so the rule keeps firing on its own output.

This is why redirect logic should have one owner. When a hosting dashboard, framework, plugin, and reverse proxy all “help,” they often don't agree.

CMS settings and plugin conflicts

WordPress is a frequent offender, mostly because it gives multiple places to control the same behavior. The site URL in settings, the home URL in config, an SEO plugin, a redirect plugin, a cache plugin, and a security plugin can all touch redirects.

When a WordPress site throws this error after a migration or SSL change, I usually check the base URL settings first. If the application thinks the site lives at one origin while the server exposes another, WordPress can keep trying to canonicalize every request. Add a plugin that also handles redirects, and the loop becomes harder to spot.

If you need a quick refresher on the behavioral difference between temporary and permanent redirects, this guide on 301 vs 302 redirects is a useful baseline. It won't fix a loop by itself, but it helps when you're auditing a messy redirect map.

HTTPS and proxy mismatches

This is the one that catches teams using a CDN or reverse proxy. The visitor connects over HTTPS at the edge, but the origin sees HTTP unless the proxy headers are interpreted correctly. Then the origin says, “You should be on HTTPS,” and redirects. The edge receives that, serves HTTPS to the user again, and the cycle repeats.

You'll often see this when TLS is terminated at the CDN, but the app isn't configured to trust forwarded protocol headers. The app doesn't know the original request was already secure.

A few red flags:

Symptom Likely issue
Works when proxy is disabled Edge and origin disagree about scheme
Only homepage loops Canonical redirect at app layer
Login pages loop Session or secure cookie settings mismatch
Admin area breaks after SSL change CMS URL settings and proxy headers out of sync

Browser privacy features and SSO loops

Not every redirect loop is purely server-side. Some happen because the browser refuses to cooperate with an authentication flow.

Users can see intermittent too many redirects errors in browsers with enhanced privacy features, including Safari Intelligent Tracking Prevention, because browser-level tracking restrictions and cookie partitioning can break authentication flows that rely on cross-site cookies, forcing repeated redirects between a service and an identity provider, as described in Securly's Safari troubleshooting note.

This explains a common support mystery: the URL works in Chrome, fails in Safari, and works again in an incognito window or after clearing cookies. The redirect chain isn't always wrong in a general sense. It can be wrong for a browser that blocks the cookie needed to complete the login step.

If the loop appears only for some users, only on one browser, or only after login, don't stop at server config. Check cookies, session handling, and any cross-site auth handoff.

That's especially relevant for teams using SSO, embedded apps, or marketing flows that bounce through identity providers before landing on gated content.

Playing Detective How to Diagnose the Redirect Chain

Good debugging starts by seeing the chain, not guessing at it. Redirect loops become much easier to fix once you know which URL fires first, which layer answers, and where the request returns to a prior state.

Use the browser network tab first

Open DevTools in Chrome, Edge, or Firefox. Go to the Network tab, enable Preserve log, then load the failing URL. You're looking for repeated requests with 3xx responses and changing Location headers.

What to watch for:

  1. Start with the first request and note the exact URL entered.
  2. Click each redirect response and inspect the Location header.
  3. Look for repetition in hostname, scheme, path, or query string.
  4. Compare request and response context. If the browser sends cookies on one step and not the next, that matters.

The pattern often tells you the cause. http to https and back usually points to proxy or TLS handling. www to non-www and back suggests canonicalization conflict. A repeating login route usually means auth state isn't being persisted.

Use curl to remove browser noise

Browsers add history, cookies, cached behavior, HSTS state, and extension interference. curl gives you a cleaner view.

Run the request with verbose output and redirect following enabled:

  • Use curl -v to inspect headers one hop at a time if you want to stop after the first redirect.
  • Use curl -vL to let it follow the chain so you can watch the sequence unfold.

A practical workflow:

  • Test the public URL first: this shows what a normal client sees.
  • Repeat with and without cookies: if auth is involved, cookie behavior can change the chain.
  • Compare headers: especially Location, Set-Cookie, and any proxy-related headers surfaced by your stack.

If curl reaches the final page but Safari doesn't, that strongly suggests a browser-specific session or privacy issue rather than a raw server loop.

Don't debug from screenshots alone. A redirect error page hides the one thing you need most, which is the sequence of hops that happened before the failure.

Read the server and application logs

Logs answer the question the browser can't: which layer decided to redirect?

Check your web server access logs first. You want timestamped sequences for the same path or session. If Apache or Nginx logs show the request bouncing between two variants of the same URL, that confirms the loop at the server boundary. If the web server shows only one request and your application logs show repeated auth redirects, the loop is happening in app code or middleware.

A simple checklist helps:

  • Web server logs: look for repeated 301 or 302 responses on the same route.
  • Application logs: watch for auth middleware, canonical URL enforcement, locale routing, or session errors.
  • CDN or edge logs: if available, check whether redirects are happening before the request even reaches origin.

A quick diagnosis matrix

What you observe Most likely place to inspect
Scheme flips between HTTP and HTTPS Proxy, TLS, origin trust settings
Host flips between two domain variants Canonical domain rules
Loop starts after login Session cookies, SSO, auth middleware
Browser-specific failure Privacy settings, cookie restrictions
Origin is never reached CDN, edge rules, managed redirects

This part matters because the wrong fix can make things worse. People often clear caches, disable plugins, and purge the CDN all at once. That can hide the signal you need. Trace first. Change one layer at a time after that.

Step-by-Step Fixes for Common Platforms

Once you know where the loop starts, fixing it becomes much more mechanical. The goal is to reduce redirect ownership to one clear layer and make every other layer passive.

A hand pointing to a fix button near a toolbox containing website development software and icons.

Apache and .htaccess

Apache loops usually come from duplicated rewrite intent. Maybe the host panel already forces HTTPS, but .htaccess does it again. Or a broad rewrite rule catches the already-normalized destination.

Work through it in this order:

  1. Back up .htaccess before editing anything.
  2. Comment out custom redirect rules and test the URL.
  3. Restore rules gradually until the loop returns.
  4. Keep one canonical rule set for host and scheme normalization.

A healthy Apache setup usually has one block responsible for canonical host and HTTPS behavior. If a CMS plugin also rewrites these, disable the plugin's redirect handling or remove the overlapping server rule. Don't let both decide.

Nginx

Nginx tends to be cleaner than .htaccess, but it can still loop when server blocks overlap or when the app doesn't trust the proxy headers passed to it.

Check these areas first:

  • Server block ownership: make sure only one block handles the redirect from the old variant to the canonical one.
  • Return versus rewrite logic: if you're using rewrite where a simple return would do, it's easier to create unintended recursion.
  • Forwarded scheme awareness: if the app sits behind a proxy, verify it understands the original request scheme.

When Nginx and the app both force HTTPS, pick one owner. My preference is usually edge or server-level normalization, with the app accepting the canonical request it receives.

WordPress

WordPress loops often look scary because they can block both the frontend and admin area. The good news is the root causes are usually familiar.

Start with the basics:

  • Check site URL consistency: WordPress Address and Site Address should match the intended scheme and host.
  • Disable redirect-related plugins: especially SEO, security, redirection, and caching plugins.
  • Clear application cache: stale cache can preserve old redirect behavior after settings change.
  • Inspect custom code: theme functions and wp-config.php sometimes hardcode URL logic.

If you're locked out of the admin, disable plugins through your hosting file manager or deployment process, then test again. After access returns, re-enable plugins one by one. For teams building campaign links and short redirects on top of WordPress, that's often a sign the CMS is being asked to do jobs better handled elsewhere. If that's your use case, it's worth looking at tools designed specifically for link creation, such as this guide on how to create a bit link.

Field note: In WordPress, “too many redirects” often isn't one bug. It's two reasonable features colliding. A plugin enforces one URL policy, the server enforces another, and neither knows the other exists.

Cloudflare and edge rules

Cloudflare-related loops usually come from one of three places: SSL mode mismatch, redirect rules that overlap with origin logic, or Workers/Page Rules that reprocess already-redirected requests.

A clean audit looks like this:

  • Review SSL/TLS mode first: if the edge and origin don't agree on how HTTPS is handled, fix that before touching anything else.
  • Inspect redirect products in one pass: Redirect Rules, Page Rules, Transform Rules, and Workers can overlap.
  • Test origin directly if possible: if origin works cleanly but proxied traffic loops, the issue likely sits at the edge.
  • Remove chain duplication: if Cloudflare forces canonical host, don't also force it inside the app unless you've verified the logic is complementary.

For any platform, the winning pattern is simple: one redirect policy, one canonical destination, and no duplicate enforcement across layers.

Best Practices for Proactive Redirect Management

The easiest redirect loop to fix is the one you never deploy. Organizations often encounter difficulties when redirects accumulate over time. A CMS adds one rule, a migration adds another, a CDN adds a third, and nobody owns the full path.

A practical redirect process looks like this:

  • Test on staging: validate real request flows before production, especially for login, checkout, and campaign URLs.
  • Order rules deliberately: specific rules should run before broad canonicalization logic.
  • Audit after changes: migrations, SSL updates, domain changes, and new plugins are common loop triggers.
  • Check multiple browsers: Safari behavior can expose auth and cookie problems that Chrome hides.
  • Keep business-critical links separate: campaign, QR, and operational links deserve simpler routing than a general-purpose website stack.

Here's the trade-off I see often. Self-managed redirects feel easy when there are only a few of them. They get harder as soon as you mix branded domains, analytics, geo routing, A/B testing, auth, and multiple infrastructure layers. At that point, the redirect isn't just a convenience feature. It's operational infrastructure.

Managed edge redirect services are useful because they remove redirect logic from overloaded app stacks. For marketing and operational links, that usually means fewer moving parts, faster debugging, and less chance of loops caused by plugins or proxy mismatches.

If you work with branded campaign links, this broader idea behind a vanity URL matters too. The URL isn't only about branding. It's also about controlling the redirect path cleanly enough that users reach the destination without extra hops or hidden dependencies.

Frequently Asked Questions

Does a too many redirects error hurt SEO

Yes. Search engines can't reliably access the destination page if the request never resolves. In practical terms, it's a crawl blocker. A redirect chain can already be inefficient. A redirect loop is worse because there's no successful endpoint to index.

How is this different from a 404 error

A 404 Not Found is a dead end. The server says the resource isn't there. A too many redirects error is a broken route. The destination may exist, but the user never reaches it because the path keeps changing.

Can this error fix itself

Usually not when the cause is server config, CMS rules, CDN logic, or application middleware. Those need an explicit correction. The one partial exception is browser-side state. If bad cookies or privacy-restricted auth state caused the loop, clearing cookies or retrying in a different browser can sometimes make the symptom disappear for that user. It doesn't solve the underlying design problem.


If you need redirect infrastructure that's simpler to manage than a patchwork of plugins, proxy rules, and ad hoc shorteners, 302.sh is built for that job. It gives small teams and creators edge-served short links, branded domains, QR codes, smart routing, and privacy-first analytics, while keeping the redirect path separate from the application stack that usually causes these loops in the first place.

Short links that keep working.
Fairly priced.