Skip to content
Technical SEO SEO

What Is a Redirect Loop? Causes, Errors, and How to Fix It

Payton, founder of Rank High AI Payton
Looking up a triangular spiral staircase that folds back on itself, standing in for a redirect loop.
Photo by Wolfgang Weiser on Pexels

A redirect loop is when two or more URLs keep redirecting to each other, so the browser never reaches an actual page. Page A points to page B, page B points back to page A, and around it goes. Your browser tries, then tries again, then gives up and shows the redirect loop error: ERR_TOO_MANY_REDIRECTS. Nobody sees your content. Not the customer, not Google, not the AI tools quoting websites these days. Everyone hits the same locked door.

It is one of those problems that sounds small and behaves like a wrecking ball. A single misconfigured rule can take a page, a section, or an entire site offline, and it usually happens right after a change everyone thought was safe. Let me explain what a redirect loop actually is, what causes redirect loops, and how to fix one without guessing.

A redirect loop is a road that only leads back to itself

A redirect is normal. When a page moves, the server responds with a status code, usually a 301 (permanent) or a 302 (temporary), that tells the browser “go here instead.” Google’s own guidance on 301 redirects treats this as routine site maintenance, and it is. You redirect an old blog URL to a new one, and everyone lands in the right place.

A redirect loop is what happens when those instructions eat their own tail. The server says “go to B.” B says “go to A.” A says “go to B” again. There is no final destination, just a hallway of doors that all open into each other.

Browsers are not endlessly patient. After a set number of hops with no real page, the browser stops and throws the redirect loop error. In Chrome it reads ERR_TOO_MANY_REDIRECTS. Other browsers phrase it differently, but the message is the same: this page cannot be reached because it keeps forwarding to itself. The HTTP status codes behind all of this are worth knowing, because the 3xx family is where redirects live and where loops are born.

A redirect chain is a detour, a redirect loop is a dead end

People mix up redirect chains and loops, so let me separate them, because the fix is different.

A redirect chain is a line. A goes to B, B goes to C, C finally loads. Everyone arrives, just slowly. Chains are not fatal, but they are sloppy. Every hop costs load time and burns a little crawl budget, and the more links in the chain, the more signal leaks out along the way. A chain is a detour with too many turns.

A redirect loop is a circle. A goes to B, B goes back to A, and nobody ever arrives. That is the difference in one line: a chain eventually ends, a loop never does. When people search “redirect chain vs loop,” this is the distinction they are missing. Chains slow you down. Loops shut you off. If you want the broader picture on managing redirects during a move, I get into that in the website migration SEO guide, since migrations are where both chains and loops love to breed.

What actually causes redirect loops

Almost every redirect loop comes from two rules arguing with each other. One layer of your setup says one thing, another layer says the opposite, and the request bounces between them forever. Here are the usual suspects and how to think about each one.

What causes redirect loopsWhat it looks likeThe fix
HTTP and HTTPS conflictHTTP forces HTTPS, but the SSL setup quietly sends it back to HTTPMake one canonical version and stop the return trip. See HTTPS and SEO
www vs non-wwwwww redirects to the bare domain while the server redirects the bare domain to wwwPick one host version and redirect everything to it, once
Conflicting rulesA rule in your server config fights a rule in your CMS or CDNFind the duplicate rule and delete one side
CMS or plugin conflictTwo redirect or SEO plugins both “help” with the same URLDisable one, keep the other, stop the tug-of-war
Trailing-slash mismatch/page redirects to /page/ while /page/ redirects to /pageChoose slash or no slash and enforce it in one place
CDN or SSL modeA proxy set to “flexible” SSL loops with a server expecting full HTTPSMatch the SSL mode on both sides

Notice the pattern. None of these are exotic. They are two well-meaning settings that were never introduced to each other. That is why loops so often appear right after someone adds a plugin, flips on a CDN, or “cleans up” the redirects. The road was fine until two people started giving directions at the same time.

Redirect loops quietly cost you rankings and customers

A laptop on a desk showing a browser error page that reads "Oh no, your payment failed," next to a small potted plant.
Photo by RDNE Stock project on Pexels

A redirect loop is not a cosmetic bug. It is a page that no longer exists as far as the outside world is concerned.

For visitors, the damage is instant. Someone clicks your link, sees a redirect loop error, and leaves. They do not email you to report it. They just pick the next result. A confusing website creates a back button, and an unreachable one creates it faster.

For search, the damage is slower and worse. When Googlebot hits a loop, it cannot reach the content, so it cannot index it. Crawlers waste their budget bouncing between the same two URLs instead of reading your real pages. Over time, looped pages fall out of the index, and the rankings you worked for go with them. Google cannot rank a page it cannot understand, and it definitely cannot understand a page it can never load. The same goes for AI search tools, which pull from the same crawlable pages. A loop locks all of them out at once.

This is the part that makes redirect loops dangerous. They fail silently. Your homepage might load fine while a whole section of the site is quietly walled off, and you will not know until traffic dips or a customer mentions it. That is exactly why I run a technical SEO audit instead of trusting that everything is fine because the front page works.

How to diagnose a redirect loop

A hand resting on a laptop keyboard with lines of CSS code on the screen, in a wooden-desk workspace.
Photo by Lukas Blazek on Pexels

Before you fix anything, find the loop. Guessing at redirect rules is how you turn one loop into three.

  • Read the error. ERR_TOO_MANY_REDIRECTS confirms it is a loop, not a normal 404 or server error. That one line saves you from chasing the wrong problem.
  • Open the Network tab. In your browser developer tools, watch the requests. A loop shows up as the same two URLs repeating with 301 or 302 status codes, over and over, until the browser quits. That repetition is your smoking gun.
  • Use a redirect checker. A tool that maps the full redirect path will show you the exact hop where A points to B and B points back to A. This is the fastest way to see a redirect chain vs loop at a glance.
  • Check the server logs. Your web server’s error and access logs record every redirect it issues. When the browser tools are not enough, the logs usually name the culprit.
  • Rule out the browser first. Clear cache and cookies, or try incognito. Sometimes a stale cookie fakes a loop that is not really in your config. Rare, but free to check.

The goal here is one specific answer: which two URLs are pointing at each other, and which rule is telling each one to do it. Once you know that, the fix is short.

How to fix a redirect loop

Fixing a redirect loop means breaking the circle in exactly one place, then confirming nothing else re-forms it. Work through this in order.

  1. Find the two rules that disagree. From your diagnosis, you know the looping URLs. Now locate every rule that touches them: server config (.htaccess or Nginx), CMS settings, redirect plugins, and CDN rules. The loop lives where two of these overlap.
  2. Pick one canonical version and commit to it. HTTPS or HTTP. www or non-www. Slash or no slash. Choose one of each, then make every redirect point toward that version and never away from it. Most loops die right here.
  3. Delete the duplicate rule. If your CMS already forces HTTPS, your server should not also try. If a plugin handles www, your config should not fight it. Two rules doing the same job is how the loop started. Keep one.
  4. Match your SSL and CDN settings. If you use a CDN like Cloudflare, make sure its SSL mode agrees with your server. A proxy set to “flexible” while the server demands full HTTPS is a classic loop generator.
  5. Fix your CMS site address. In WordPress and similar systems, a mismatch between the site URL and home URL settings loops the whole site. Make both match your canonical version exactly.
  6. Clear every cache and retest. Server cache, CDN cache, plugin cache, browser cache. Redirects get cached aggressively, so an old rule can haunt you after you have fixed it. Then reload and watch the Network tab to confirm the page loads clean.

If the loop only appeared after a specific change, undo that change first. The fastest fix is often just removing the rule you added an hour ago.

The real fix is having one source of truth for redirects

Here is where I will spend my one strong opinion, because I have a computer science degree and technical SEO is home turf. Most redirect loops are not really a redirect problem. They are an ownership problem.

Loops happen when three or four different systems all think they are in charge of redirects. The server has rules. The CMS has settings. Two plugins have opinions. The CDN has its own layer. Nobody wrote down which one wins, so they all try, and eventually two of them collide. Schema, clean HTML, and sane redirects are the foundation, not busywork, and the foundation cracks when four things guard the same door.

The durable fix is to decide, on purpose, where redirects live. Pick one layer as the source of truth. Keep your canonical rules there and nowhere else. When every redirect has a single home, loops mostly stop happening, because there is no second rule left to argue with. Boring, I know. Boring is what keeps sites online.

Frequently asked questions

What does the too many redirects error mean?

It means your browser followed a redirect, got sent to another redirect, and kept going until it hit its limit without ever loading a real page. In Chrome that error reads ERR_TOO_MANY_REDIRECTS. That is the redirect loop error. It almost always points to two conflicting rules, most often an HTTP/HTTPS or www mismatch, sending the request back and forth.

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

A redirect chain eventually ends. A goes to B, B goes to C, and C finally loads, just with wasted hops in between. A redirect loop never ends because the URLs point back at each other. Chains slow a page down and leak signal. Loops make the page completely unreachable.

What causes redirect loops?

Two rules that disagree. Common causes include an HTTP-to-HTTPS setup that quietly reverses itself, www and non-www rules fighting each other, trailing-slash mismatches, conflicting CMS plugins, and a CDN SSL mode that does not match the server. In almost every case, two settings are each trying to be in charge of the same URL.

Are redirect loops bad for SEO?

Yes. A looped page cannot be crawled, so it cannot be indexed, so it cannot rank. Crawlers waste budget bouncing between the same URLs instead of reading your real content. Left alone, looped pages drop out of the index entirely, and AI search tools lose access to them too.

How do I find a redirect loop on my site?

Open your browser developer tools, go to the Network tab, and load the broken page. A loop shows the same URLs repeating with 301 or 302 status codes until the browser stops. A redirect-checker tool or your server logs will confirm exactly which two URLs are pointing at each other.

Can clearing my browser cache fix a redirect loop?

Sometimes, if the loop is caused by a stale cookie or cached redirect rather than a real config problem. It is worth trying first because it is free. But if the loop is in your server, CMS, or CDN rules, clearing the browser will not touch it. You have to fix the rule itself.

How long does it take to fix a redirect loop?

The fix itself is usually quick once you find the two conflicting rules, often minutes. Finding them is the slow part. After the fix, clear every cache so an old redirect does not linger. Live pages typically recover fast, but re-indexing dropped pages can take Google longer.

Fix the loop, then check the rest of the doors

A redirect loop is a small mistake with a loud result: a page that forwards to itself forever and lets nobody in. Find the two rules that disagree, pick one canonical version, delete the duplicate, and clear your caches. Most loops close in one edit.

If you are not sure whether loops or chains are quietly costing you traffic, run a free audit and see what your redirects are actually doing. Better to catch a locked door yourself than to hear about it from the customer who already left. And if you want help keeping the whole site fast and crawlable, that is the point of our organic SEO work.

Ready to rank higher?

Get a free, no-obligation SEO audit and see exactly how AI can grow your business in search.

Get your free SEO audit