Two pages name each other as the main one

In the reportCanonical loop

canonical_loop · Review item

Short answer

This appears when two pages each name the other as their canonical, giving conflicting hints about which address is the main one. Choose one address, let that page name itself, and keep the other pointing at it.

Severity: Medium. Review this pair in your next round of site changes; search engines may ignore conflicting canonicals like these.

Why it matters

A canonical is a strong signal for which address should be shown. The canonical link standard asks not to name, as a canonical, an address that declares a canonical to another address, which each page in a loop does, and lets search engines ignore such declarations.

What to do

  1. Read the target, its partner and the source-page evidence in the finding. Source and reference examples are limited; additional counts may be shown.
  2. Choose the intended main page and let that page name itself.
  3. Point the other page directly to the intended main page, or let each page name itself if both should stand independently.

When to leave it as it is: Review an intentional pair before changing it. If both pages should appear independently, each should normally name itself rather than the other.

What we read

We reuse the site’s canonical graph and retained crawl or bounded target-probe observations. A target’s complete single canonical must point to a page whose own complete declaration points back. The target must answer HTTP 200 directly; a redirect does not establish this canonical loop.

Only two-page cycles are detected. Each observed pair has one finding. When both addresses are graph targets with the loop established, the lexicographically smaller URL owns it; otherwise the observed target owns it. The partner is included among affected URLs.

Example & evidence

Illustrative example — two pages that name each other, not a live audit.

https://bakery.example/bread/sourdough/ declares:

<link rel="canonical" href="https://bakery.example/bread/sourdough-loaf/">

and https://bakery.example/bread/sourdough-loaf/ answers 200 with:

<link rel="canonical" href="https://bakery.example/bread/sourdough/">

Each names the other, so the pair is reported once, with both canonicals.

A possible correction: let /bread/sourdough-loaf/ name itself, and keep /bread/sourdough/ pointing at it.

Confirm & check again

Check for yourself: Open each page’s source and read its canonical: if the two complete declarations name each other, they form a two-page loop.

Check again: Full audit — Run a new site audit. A sufficient clean recheck must resolve the same target and the partner evidence needed to exclude a return. An unread partner cannot prove the loop fixed. If the target is no longer named, all previous source pages need sufficient rechecks before removal can be confirmed. Source membership changes keep the target’s identity; a different owning target is a different finding. Dismissal does not change technical history.

Limits & sources

Cycles of three or more pages appear as chains. Unread or incomplete canonical channels, script-only shells and unsettled target responses remain inconclusive. This check adds no fetch path and does not establish Google’s chosen canonical.

Confidence: High Both directions of the two-page canonical relationship are observed. That does not show which page a search engine will select.

Sources

Editorial review: 2 November 2026