📈 SEO & Marketing Free Forever

Canonical Tag Checker, Verify Canonical URLs Free

This canonical tag checker fetches any URL and reads its rel="canonical" tag to confirm it points where you expect. Instantly see whether a page is self-referencing, canonicalized elsewhere, or missing a canonical tag entirely, no sign up needed.

Try:

Enter a page URL to check its canonical tag, follow where it points, and catch redirect chains and conflicting signals.

What a canonical tag actually does. It tells search engines which URL is the real one when the same content is reachable at several addresses. Print versions, tracking parameters, http and https, www and non-www, trailing slashes. Without it, search engines pick for you, and they may not pick the one you want ranking.

Why we follow the tag. Checking that a canonical exists is easy and mostly useless. The failures that cost you rankings are the ones you cannot see from a single page: a canonical pointing at a URL that redirects, or a chain where A points to B and B points to C. Google does not follow those reliably and will fall back to guessing. So we load the destination and check what it says about itself.

noindex plus canonical is the classic mistake. They are contradictory instructions. One says remove this page, the other says merge its ranking signals into another page. Google generally honours the noindex, and the canonical does nothing.

About This Tool

How the canonical tag checker fetches, parses and audits a live page

A browser page cannot read the raw HTML of another domain on its own. That is a security boundary, not a bug, and every canonical checker on the web has to work around it somehow. This tool works around it with a small fetch service on this site, which loads the page server side and hands the raw markup back to your browser as plain text. From that point on, everything is parsed and evaluated locally in JavaScript using the native DOMParser. Nothing about the page you check is stored on any server we control.

What actually happens when you click Check

Step 1 Normalize the URL If you paste a bare domain without a scheme, the tool prepends https:// before doing anything else, since a fetch call needs a fully qualified address.
Step 2 Proxy fetch The tool calls this site's fetch service with your URL. The service follows redirects, then returns the final URL, the HTTP status and the page HTML, which is what lets the browser read it.
Step 3 Parse the DOM The returned HTML text is fed into new DOMParser().parseFromString(html, 'text/html'), producing a real, queryable document object without ever attaching it to the visible page.
Step 4 Extract and cross check The tool queries link[rel="canonical"], meta[name="robots"], the page title, and every link[rel="alternate"][hreflang] tag, then resolves the canonical href against the page URL with the URL constructor so relative paths become absolute.
// simplified from the actual source var links = doc.querySelectorAll('link[rel~="canonical"]'); var raw = links.length ? links[0].getAttribute('href') : null; var canon = raw ? new URL(raw, pageUrl).href : null; // exact match only: http vs https, www, // a trailing slash or a query string all // make it a different URL if (sameUrl(canon, pageUrl)) { status = 'Self referencing'; } else if (nearUrl(canon, pageUrl)) { status = 'Almost matches, check it'; } else { status = 'Points to a different URL'; }
>

Checks it actually runs

Beyond just reading the tag, the tool flags the misconfigurations that most commonly break canonicalization in the wild. Each one maps to a real condition in the parsed document, not a guess.

CheckWhat triggers it
Multiple canonicalsMore than one link[rel=canonical] element is present. Search engines may ignore all of them.
Protocol mismatchThe page was fetched over one protocol but the canonical href points to the other, http versus https.
WWW mismatchCanonical and page share a hostname but disagree on the www prefix, which can split ranking signals.
Relative URLThe raw href attribute is not fully qualified, against Google's stated recommendation for canonical tags.
Noindex plus canonicalMeta robots contains noindex while the page also declares a canonical, a contradictory pair of signals.
Canonical outside the headThe tag sits in the body, or after an element that closes the head early. Google ignores it there.
Broken targetThe canonical URL returns an error, redirects, is noindex, or points on to yet another URL.
Error pageThe page itself returns a 4xx or 5xx status, so its canonical is never read.
Why results can lag reality. The fetch service does not use a Googlebot user agent, and it cannot see canonicals sent as an HTTP Link header. If a site serves different HTML to crawlers than to normal browsers, cloaking, A/B testing frameworks, or aggressive edge caching, what this tool sees may not exactly match what Google indexed. Treat it as a fast first pass, then confirm anything critical in Google Search Console's URL Inspection tool, which shows the canonical Google actually chose.

Reading the hreflang table

If the page declares international variants, the tool lists every hreflang and href pair it finds. The checker confirms this page lists itself and flags hreflang on a page that canonicalises elsewhere, but it does not load each alternate to confirm the set is reciprocal, which Google requires: if page A points to page B as an alternate, page B should point back to page A.

Self-canonical

The most common and generally correct setup. The page names itself as the canonical version, telling search engines there is nothing else competing for its ranking signals.

Canonical to elsewhere

Deliberate for paginated series, tracked URL variants, or duplicate content, but worth a second look if you did not expect it, since it tells search engines to index a different URL instead.

Fetch: this site's own service Parsing: browser DOMParser No server side storage

Canonicalisation documentation

Duplicate content problems this catches

Auditing a migrated site for canonicals still pointing at the old domain, checking that paginated category pages canonicalize correctly instead of all pointing to page one, verifying an e-commerce filter URL does not accidentally self canonicalize when it should defer to its parent listing, and spot checking a client's site before a technical SEO handoff.

Common Questions

FAQ: Canonical Tag Checker

A canonical tag tells search engines which URL is the "master" or preferred version when the same or very similar content is reachable from multiple addresses, for example with and without a trailing slash, with tracking parameters, or through pagination. It consolidates ranking signals like backlinks toward a single URL instead of splitting them across duplicates, and it prevents duplicate content from competing against itself in search results.

Not always a critical problem, Google will typically choose a canonical version on its own using other signals if none is specified, but that automatic choice may not match what you actually want indexed. Explicitly setting a self-referencing canonical on every page removes the ambiguity and gives you direct control, which is why it's considered a technical SEO best practice even on pages with no obvious duplication risk.

This is intentional in many legitimate cases, such as a print friendly version pointing to the main article, a paginated page pointing to page one, or a URL with tracking parameters pointing to the clean version. However, it can also be a misconfiguration, particularly on CMS platforms where a template bug or plugin conflict sets the wrong canonical across many pages at once. If the target doesn't match your intent, it's worth investigating your CMS or theme settings.

No, Google treats the canonical tag as a strong hint rather than a strict directive. In most cases Google respects it, but it can override your chosen canonical if other signals, like internal linking patterns or redirect history, point strongly to a different URL. This is different from a noindex meta tag or a 301 redirect, both of which are much stronger, more binding instructions to search engines.

Yes, this is standard practice and recommended by Google's own documentation, even for pages with no known duplicate content risk. A self-referencing canonical on every page acts as a safety net against future duplication (from URL parameters added by campaigns, A/B testing tools, or session IDs, for example) and costs nothing to implement upfront.

A 301 redirect physically sends visitors and search engines to a different URL, the original page no longer loads its own content at all. A canonical tag lets the original page load and remain accessible normally, it only signals to search engines which version to index and rank, without redirecting actual visitors. Use a redirect when a page should no longer exist at its old address, use a canonical when both versions need to stay live for different reasons.

Yes, cross domain canonicals are valid and commonly used for syndicated content, for example when a news outlet republishes a press release and canonicalizes it back to the original source's domain, telling search engines to credit and rank the original rather than the syndicated copy.

No, this site does not log or store the URLs you check, pages are fetched live through this site's own fetch service and nothing is kept.