Canonical Checker

Run a free 7-point canonical audit on any URL. Catches loops, broken targets, duplicate tags, and conflicting signals in a single check — no sign-up.Results in a few seconds. Nothing is stored.

New check
Checks
All 7 checks+ robots.txt+ noindex+ redirects

We fetch the page, follow its canonical chain, and read robots.txt — like a crawler would.

Every signal a crawler reads, compared in one pass

  • 7 canonical checks
  • 0 sign-ups or quotas
  • 0 URLs logged or stored
<link rel="canonical">
Link: rel="canonical"
robots.txt
meta robots
X-Robots-Tag
3xx redirect chain
canonical target status
canonical → canonical chain
Checks

The 7 Canonical Issues This Tool Catches

A canonical tag is a one-line instruction — and a one-line instruction can go wrong in a surprising number of ways.

Declared 01

Missing canonical

Catches

Without a declared canonical, Google decides on its own which variant of the URL is the “real” one. Tracking parameters, http/https, and www/non-www versions then compete against each other. A self-referencing canonical settles the question.

Self-referencing 02

Non-self-referencing canonical

Catches

A canonical that points somewhere else declares this page a duplicate of the target — the target gets indexed instead. That’s exactly right for consolidation, and exactly wrong when a template accidentally stamps the same canonical on every page.

Target status 03

Canonical → 404

Catches

When the canonical target answers with an error status, the instruction is dead: Google can’t consolidate onto a page that doesn’t exist, drops the hint entirely, and picks a version itself — often not the one you wanted.

Chain 04

Canonical loop

Catches

Page A canonicalizes to page B, and B canonicalizes back to A. Both instructions cancel out, Google ignores them, and indexing becomes a coin flip. Loops are nearly invisible in the source of a single page — you only see them by following the chain, which is what this tool does.

Cross-domain 05

Cross-domain canonical

Catches

A canonical pointing at another domain hands your indexing to that domain. Legitimate for syndicated articles — devastating when a staging hostname or an old migration target is left behind in the template and silently deindexes the live site.

Duplicates 06

Multiple canonical tags

Catches

Two canonical tags with different targets is a contradiction, and Google’s response to contradictions is to trust neither. The usual culprit: an SEO plugin and a theme each injecting their own tag without knowing about the other.

Conflict 07

HTTP header vs meta conflict

Catches

Canonicals can be declared twice: by the server in an HTTP Link header and by the page in a <link> tag. When CDN or server config disagrees with the CMS, the two signals collide — and a collided signal is a discarded signal.

Extra signals +

robots.txt & noindex

Also reads

Beyond the 7 checks, every audit reads robots.txt, meta robots, and the X-Robots-Tag header, and records page status and the full redirect chain — the signals that decide whether Google sees your canonical at all.

How it works

How it works

One request from you, a handful from us — no crawler queue, no account, no quota.

Fetch & followWe request your URL exactly like a crawler would, following every redirect and recording the chain.
Parse every signalAll <link rel="canonical"> tags, the HTTP Link header, meta robots, and robots.txt are read and compared.
Walk the chainWe fetch the canonical target itself, follow its canonical in turn, and flag 404s, redirects, and loops.
API & Zapier

Run checks from Zapier or your own code

The same 7-point audit, as JSON over one GET request. Integrations sign in with an API key.

  1. Get an API keyKeys start with cc_ and are issued by email. Request a key and tell us what you’ll use it for. Treat it like a password.
  2. Connect ZapierAdd the Canonical Checker app in Zapier and paste your key when it asks. Use the Check Canonical Tag action to audit a URL, or the Canonical Status Changed trigger to get alerted when a page’s canonical setup changes.
  3. Or call the API directlySend your key in the X-API-Key header (or as Authorization: Bearer). GET /api/me confirms a key works. An invalid key returns 401. Every endpoint, field and error is in the API reference.
# Run a check
curl -G https://canonicalchecker.com/api/check \
  -H "X-API-Key: cc_…" \
  -d url=example.com
# Response (trimmed)
{
  "verdict": "pass",
  "canonical": {
    "effective": "https://example.com/",
    "source": "html"
  },
  "checks": [
    { "id": "declared", "status": "pass" },
    …
  ]
}
FAQ

Frequently asked questions

Everything you need to know about canonical tags and duplicate content.

What is a canonical tag?

A canonical tag (<link rel="canonical" href="…">) tells search engines which URL is the preferred, “master” version of a page when several URLs show the same or very similar content. Search engines consolidate ranking signals onto the canonical URL and typically index that one.

What is a self-referencing canonical, and do I need one?

A self-referencing canonical points at the page’s own URL. It looks redundant but isn’t: it neutralizes duplicate variants created by tracking parameters, session IDs, and protocol or www differences before they become a problem. It’s the recommended default for every indexable page.

What is a canonical loop and how do I fix it?

A loop means the canonical chain circles back on itself — A points to B and B points back to A. Google ignores looped canonicals and chooses a version on its own. Fix it by deciding which URL should be indexed, giving that page a self-referencing canonical, and pointing every other variant directly at it (no chains).

What happens if my canonical points to a 404?

The directive is simply discarded — Google can’t consolidate signals onto a page that doesn’t resolve. The page with the broken canonical may still get indexed, but you’ve lost control over which variant wins. Point the canonical at a live, 200-status URL.

Is a cross-domain canonical bad?

Not inherently. It’s the standard mechanism for syndicated content: the republishing site canonicalizes to the original so the original ranks. It becomes dangerous when it’s unintentional — a staging domain or migration leftover in your template can deindex whole sections of the live site.

I have multiple canonical tags — which one does Google use?

If they conflict, quite possibly none of them: Google has stated that conflicting canonicals may all be ignored. In practice the first tag in the <head> often wins, but you shouldn’t rely on it. Find the plugin, theme, or template that injects the extra tag and remove it.

Canonical tag vs 301 redirect — which should I use?

A 301 redirect is the stronger signal: users and crawlers both land on the target, and there’s no ambiguity. Use a canonical when both URLs must stay accessible (filtered views, print versions, UTM-tagged URLs, syndication). Use a 301 when the duplicate URL has no reason to exist.

Does Google always obey the canonical tag?

No — it’s a strong hint, not a directive. Google can override it when other signals (internal links, sitemaps, redirects, near-identical content elsewhere) disagree. That’s why consistency matters: canonical, sitemap URLs, and internal links should all point at the same variant.

Is this checker free? Do you store my URLs?

Completely free, no account, no quota. Each check fetches your page live, computes the result, and returns it — nothing is logged or stored.

Check your canonical before Google does.

Run a free check