Canonical Loop: What Causes It and How to Fix It

No Comments

Canonical Loop: What Causes It and How to Fix It

TL;DR

A canonical loop is when page A names page B as its canonical, and page B names page A back again (or a longer A to B to C to A cycle). Search engines cannot resolve which URL is the real one, so they may ignore every canonical in the loop and pick a URL themselves. Fix it by deciding the single true canonical, pointing every variant at that one URL, and making the chosen URL reference itself.

What this means

A canonical tag exists to point clearly at one preferred version of a page. A loop breaks that promise. The classic case is a two-page loop: page A carries rel="canonical" pointing to page B, and page B carries one pointing back to page A. Neither page references itself, so there is no endpoint.

Loops can also be longer. Page A points to B, B points to C, and C points back to A. Each step looks reasonable on its own, but followed end to end the chain never resolves to a stable destination. This is closely related to a redirect chain or loop, except the signal here is the canonical link element rather than an HTTP redirect.

Why it matters

Google treats rel="canonical" as a strong hint, not a command. When the hint contradicts itself, Google has nothing it can trust. Its own guidance is to avoid sending conflicting canonical signals, because consistent signals are what let it pick the right URL.

Faced with a loop, search engines typically discard the canonicals entirely and choose a canonical on their own, based on which URL looks most useful and most preferred by the site. That can mean the wrong URL gets indexed, ranking signals get split across duplicates, and you lose the control the tag was meant to give you. For more on how duplicate variants compete, see the duplicate content guide.

How it gets flagged

Crawlers follow the canonical link element from page to page and watch for a URL that points back into a set it has already visited. Screaming Frog reports this under its canonicals checks, and Sitebulb raises a dedicated "Canonical loop" hint for any internal URL whose canonical target canonicalizes back to the original. The SEO ProCheck crawler flags the same pattern: a closed cycle of canonical references with no self-referencing endpoint.

How to fix it

Work through three steps:

  1. Decide the single true canonical. Of the URLs in the loop, choose the one version that should rank: the cleanest, most complete, most linked-to URL.
  2. Point every variant at it. Every other URL in the loop should carry a canonical tag pointing to that one chosen URL, with no intermediate hops.
  3. Make the chosen URL self-reference. The canonical URL must name itself in its own canonical tag. That self-reference is what closes the loop and gives crawlers a stable endpoint.

Say you keep https://example.com/page-a/ as the true canonical. Every page in the loop, including page A itself, should output:

<!-- On page A (self-referencing) -->
<link rel="canonical" href="https://example.com/page-a/" />

<!-- On page B (the variant) -->
<link rel="canonical" href="https://example.com/page-a/" />

Keep the signals consistent everywhere: internal links, the XML sitemap, and any redirects should all agree with the canonical you chose. For the full mechanics of the tag, see the canonical tags complete reference.

False positives

A few flags are not real loops. If a canonical target was recently corrected, a crawler may still be reporting cached HTML; recrawl the affected URLs to confirm the live tags. URLs that differ only by trailing slash, protocol, or case can look like a loop when normalization is inconsistent, so check whether the target actually resolves to a different page. And if pages render canonicals through JavaScript, a crawler that does not execute scripts can misread the relationship; verify with a rendered crawl before treating it as a true loop.

FAQ

Will Google just ignore a canonical loop, or does it hurt rankings?

It usually ignores the looped canonicals and picks its own, which can index the wrong URL and split signals across duplicates. The lost control is the real cost.

Does the chosen canonical really need to point to itself?

Yes. A self-referencing canonical on the preferred URL is what gives crawlers a stable endpoint and prevents the cycle from reforming.

How is a loop different from a canonical chain?

A chain (A to B to C) ends at a final URL; a loop folds back on itself with no endpoint. Both should be flattened so every variant points straight at the one true canonical.

Stuck untangling canonical loops across a large site?

An advanced SEO audit maps every canonical, redirect, and duplicate so the right URLs get indexed.

Get an Advanced SEO Audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog