Rankato

Free Canonical Tag Checker

Paste a URL. We check the link tag, HTTP header, og:url, and hreflang alignment. Follow the canonical to confirm it's reciprocal — no login required.

Checks link + header + og:urlReciprocity check

Check any page's canonical tag

We read the <link rel="canonical"> tag, the HTTP Link header, and og:url, resolve them, follow the target to verify it returns 200 and self-references, and flag hreflang / cross-domain / mixed-protocol conflicts.

The Canonical Tag Checker reads all three canonical signals Google recognizes — the <link rel="canonical"> tag in the <head>, the Link: <url>; rel="canonical" HTTP header, and the og:url hint — resolves them to absolute URLs, and checks whether they agree with each other and with the page's final URL after redirects. It optionally follows the canonical target itself to confirm it returns HTTP 200 and has a matching reciprocal canonical, which is when the signal actually works. It flags every common mistake: multiple conflicting canonicals (Google throws them all out), canonicals pointing to a 4xx or a redirect (silently ignored), hreflang self-references that don't match the canonical (whole hreflang cluster discarded), mixed http/https protocols, cross-domain canonicals, and relative URLs. Each finding comes with a fix and a plain-English explanation of the ranking consequence.

What a canonical tag does — and doesn't — do

A canonical tag tells search engines which URL is the preferred version when the same content is reachable at multiple URLs. It's not a redirect — the duplicate URLs remain accessible — but it consolidates ranking signals (backlinks, freshness, engagement) onto the canonical version. What it doesn't do: it doesn't force Google to obey it. Google treats the canonical tag as a hint. Google can and does override it if other signals point to a different preferred URL: internal links, HTTP headers, hreflang clusters, sitemaps, and the page's own content. When you see "Duplicate, Google chose a different canonical than user" in Search Console, that's Google saying: your canonical said one thing, everything else said another, and Google went with the majority.

The three canonical signals Google reads

Google collects canonical signals from three sources and picks the strongest one it can trust. 1. <link rel="canonical"> in the <head> — the most common and recommended. Set it on every page, even to itself. 2. HTTP <code>Link</code> header, e.g. Link: <https://example.com/page>; rel="canonical". Used mainly for non-HTML resources like PDFs where you can't add a link tag. Applies to HTML too, and takes precedence over the tag if Google is unsure. 3. og:url is not officially a canonical signal but Google uses it as a fallback when everything else is missing. Our checker inspects all three and reports whether they agree — because if they disagree, Google may go with any of them.

Self-referencing canonicals — the boring answer that's usually right

The safest default is: every canonical page points to itself. On example.com/pricing, the canonical is https://example.com/pricing. This makes explicit what would otherwise be an implicit assumption and protects against Google picking a duplicate you didn't expect. Self-references are especially important when URL variations creep in: ?utm_source=…, ?ref=…, trailing slashes, uppercase paths, session IDs, pagination parameters. Without a self-referencing canonical, each variation is a potential ranking dilution. Non-self-referencing canonicals are only appropriate when you genuinely want signals consolidated on another URL — duplicate content (same product on multiple category pages), syndicated articles, paginated series pointing to a "view all" page.

Common mistakes that silently kill canonicals

Multiple canonical tags. If a page has two <link rel=canonical> tags pointing at different URLs, Google ignores both. Common cause: a CMS emitting one and a plugin emitting another. Canonical to a redirect. If the canonical URL 301s to another URL, Google follows the redirect and picks whatever it lands on. Better: point the canonical directly at the final URL. Canonical to 4xx. A canonical URL that returns 404 is discarded. Google falls back to picking a canonical itself. Cross-protocol. Canonical http:// on an https:// page confuses Google. Relative URL. Some parsers resolve relatives correctly, others don't. Always use an absolute URL. Hreflang mismatch. If your self-referencing hreflang uses a different URL than the canonical, Google discards the whole hreflang cluster. Our checker catches all six.

Reciprocity — the check most tools skip

A canonical only works when it's reciprocal. If page A points its canonical at page B, page B's canonical should point at itself — not back at A, not at page C. Non-reciprocal chains break the signal: Google sees A → B and then B → C, treats it as a canonical chain, and often just picks its own preferred URL. Our checker optionally fetches the canonical target and reads its canonical to detect this exact problem. Two ways it fails: (a) the canonical target has a canonical of its own pointing at a third URL (broken chain), or (b) the canonical target has no canonical at all (weak signal). Fix by ensuring every canonical target self-references.

Tool FAQs

Everything you need to know about using Canonical Tag Checker.

Should every page have a canonical tag?+

Yes. Self-referencing canonicals on every page eliminate ambiguity when URL variations creep in (tracking parameters, trailing slashes, casing, session IDs, pagination). The cost is zero — one line of markup — and it protects against Google picking a variation you didn't expect. The only pages that shouldn't have a self-canonical are alternate versions that legitimately point elsewhere (e.g. paginated pages pointing to a "view all" page, or product duplicates pointing to a master SKU).

Does canonical override robots noindex?+

No — they're independent signals with different jobs. noindex tells Google not to include a URL in search results. canonical tells Google which URL is preferred among duplicates. Combining them creates a contradiction Google mostly ignores: if a page is noindex, its canonical is effectively unused (the page won't appear in search either way). Never use them together — pick one based on what you want: noindex to remove from index, canonical to consolidate signals onto another URL.

Can I canonical to a different domain?+

Yes — this is called a cross-domain canonical and is the correct approach for syndicated content. If your article is republished at partner.com/article, that page's canonical should point back at your original URL. Google will treat your version as the master and consolidate signals onto it. Cross-domain canonicals only work when both sites are indexable by the same search engine and you have control over both. Our checker flags cross-domain canonicals as a warning so you can confirm it's intentional.

What's the difference between 301 redirect and canonical?+

A 301 sends the browser (and Googlebot) to a new URL — the old URL is no longer accessible. A canonical keeps both URLs accessible but tells Google which is preferred. Use 301 when you're retiring a URL and want everyone to move. Use canonical when both URLs need to work — e.g. product pages accessible under multiple categories, paginated series, print vs mobile versions. Rule of thumb: if the duplicate exists for user-experience reasons and shouldn't be broken, use canonical. If the duplicate is legacy or wrong, use 301.

Does canonical work for AMP pages?+

AMP uses a specific bi-directional canonical setup: the AMP version has <link rel=canonical> pointing to the non-AMP master, and the non-AMP master has <link rel=amphtml> pointing to the AMP version. Google treats the master URL as canonical and shows the AMP version in mobile AMP-eligible surfaces. Note that Google removed AMP as a Top Stories ranking requirement in 2021, so AMP itself is optional now — but the canonical/amphtml pattern is still valid if you use AMP.

Does this tool follow the canonical to check reciprocity?+

Yes, if you leave the Verify canonical target toggle on. When the canonical points to a different URL than the page's own final URL, we fetch that target, read its own <link rel=canonical>, and compare. If the target self-references, the chain is clean. If it points somewhere else, we flag non_reciprocal_canonical — the signal is broken and Google will likely pick its own canonical. Turn it off for faster checks on lots of URLs.