Canonical Tag Checker
The Canonical Tag Checker reads the rel=canonical declaration on up to 10 URLs, resolves relative targets, and reports missing, duplicate or conflicting values. A canonical URL is the address a publisher wants search engines to treat as the preferred version of a page.
What a canonical URL does
Canonicalization is the process of naming one preferred address when several URLs carry the same or similar content, and a canonical URL is the address that the process elects. A canonical URL checker reads the declaration a page uses to state that preference.
The rel=canonical declaration carries that preference. It is a consolidation hint, so a search engine weighs it against redirects, internal links, sitemap entries, and content similarity rather than obeying it as a command.
A canonical declaration does not remove a URL from a crawler’s queue and does not redirect a visitor. Both URLs stay reachable, and the declaration names the address that represents the content.
Canonical markup in HTML and in HTTP headers
Both forms name the preferred address, and a conflict between them leaves the consolidation signal ambiguous.
HTML link element
<link rel="canonical" href="https://example.com/products/blue-widget">HTTP Link response header
Link: <https://example.com/products/blue-widget>; rel="canonical"Canonical tags, redirects and noindex solve different problems
A redirect moves a visitor and a crawler from one URL to another, a canonical tag keeps both URLs reachable while naming a preferred one, and a noindex directive asks a search engine to exclude a URL from the index.
When to use a redirect
Choose a redirect when the old URL should stop serving content and every visitor should land on the new address. A permanent redirect passes the signal to the destination, and the old URL leaves the index over time.
When to use a canonical tag
Choose a canonical tag when both URLs must stay live, including tracking-parameter variants, print views, and product pages reachable from several categories. Both addresses keep working and the declaration consolidates them.
Why noindex and canonical conflict
Choose noindex when a URL should stay reachable for users but must not appear in search. Combining noindex with a canonical declaration to another URL is contradictory, because the noindexed URL is asked to leave the index while it also nominates a preferred address.
Duplicate content and canonical consolidation
Duplicate or near-duplicate URLs divide signals such as links and click data across several addresses, and a canonical declaration consolidates those signals onto one address.
Common technical causes of duplicate URLs
Duplicates arise from a technical cause rather than copied text: HTTP and HTTPS, www and non-www, trailing and missing slashes, uppercase paths, session identifiers, and sort or filter parameters. Each variation is a distinct URL to a crawler.
How to consolidate duplicates
The correction starts by making one address canonical and redirecting the variants that must not serve content. The canonical declaration then names the retained address from any variant that must stay live.
Why a self-referencing canonical helps
A self-referencing canonical on the preferred URL is the normal pattern. It confirms the address rather than pointing elsewhere, and it prevents a template default from nominating a different URL.
Where canonical declarations can appear
A canonical declaration reaches a search engine through an HTML link element or an HTTP Link header, and the two sources can disagree.
HTML link element
The HTML form declares the preference inside the document as a link element with the canonical relationship. A page builder or SEO plugin emits it in the document head.
HTTP Link header
The HTTP form declares the same preference on the response. Because it travels outside the HTML, it can apply to non-HTML resources and can be added by a proxy or CDN.
Conflicting declarations
An HTML value and a header value that name different URLs leave the signal ambiguous. The checker reports each declaration with its source so the conflict can be corrected in the layer that produced it.
Relative and cross-domain canonical values
A relative canonical value is valid when the page base is unambiguous, and it resolves against the effective URL of the fetched response.
Relative versus absolute values
An absolute value removes the dependency on the effective URL and any base element, so it is the safer form when a response can be reached through several hostnames.
Cross-domain canonicals
A canonical that points to another domain tells a search engine that the preferred version of the content lives elsewhere. That is appropriate for syndicated content and inappropriate when both sites should rank separately, because the declaration concentrates signals on the named target.
Canonical targets that redirect
A target that redirects adds a second hop before the preferred URL is reached. Point the declaration at the final address so the canonical and the redirect describe the same destination.
Canonical declaration outcomes and the correct response
| Declaration found | What it signals | Effect | Correction |
|---|---|---|---|
| No declaration at all | The page names no preferred address | Each search engine picks a canonical from other signals | Add a self-referencing canonical to the preferred URL |
| Self-referencing canonical | The page confirms its own address | The address is stated rather than inferred | Keep it; it blocks a template default from nominating another page |
| Duplicate identical values | The same target is named more than once | Consumers resolve the same value repeatedly | Retain one declaration and remove the duplicate emitter |
| Conflicting HTML and header values | Two sources name different addresses | The consolidation signal is ambiguous | Align both sources on the one intended target |
| Cross-domain canonical | The preferred version is said to live on another host | Signals concentrate on the other domain | Use only for syndicated content; remove it to rank here |
| Canonical target returns a redirect | The named address is not the final address | A second hop precedes the preferred URL | Point the declaration at the final address |
Using the Canonical Tag Checker
What the Canonical Tag Checker checks and reports
Show every supported HTML link element and HTTP Link header canonical declaration with its exact value and evidence source on the fetched response, rather than selecting one value silently.
Resolve relative references against the effective fetched page URL and display declared and resolved values separately, without treating a relative declaration as automatically invalid.
Distinguish missing, single, duplicate-identical and conflicting declarations. The verdict preserves each source so an HTML and header conflict can be corrected at the right layer.
Safely fetch one resolved target when available, then report its status and observed directives separately. Target availability does not change the declaration evidence found on the source page.
When to use the Canonical Tag Checker
Run the Canonical Tag Checker when a page consolidates signals to an unexpected URL or before releasing canonical template changes.
How to use the Canonical Tag Checker
Example: inspect https://example.com/products?color=blue to verify that its canonical resolves to the intended product URL.
Common Canonical Tag Checker issues and fixes
When the report finds multiple canonical values, compare their HTML or HTTP sources and retain one intended declaration across supported sources. Identical duplicates still add avoidable ambiguity; conflicting targets may cause search engines to ignore the signal altogether.
A relative canonical is not automatically invalid. Confirm that the displayed resolved URL is the intended preferred page, then use an absolute canonical when practical to reduce dependence on the effective URL or an unexpected base element.
When the optional target check observes a redirect, trace that target with the Redirect Checker. If the redirect is intentional, point the source declaration directly at the final preferred URL so the canonical and redirect signals agree.
Understanding your Canonical Tag Checker results
The report lists every supported declaration, source, resolved URL and classification, then safely checks one declared target when available.
Limitation: The Canonical Tag Checker reads raw HTML and supported HTTP Link headers for up to 10 public URLs and may inspect one resolved target. It does not render JavaScript, crawl sitewide duplicate content, compare page similarity or access first-party Search Console selection data. Network, redirect, authentication and parser failures remain inconclusive fetch evidence. A declared canonical is a signal rather than a command, so this report cannot prove which URL Google or another search engine selected.
Frequently asked questions
Does Google always select the declared canonical?
No. A canonical declaration is a consolidation signal, not a command or indexing guarantee. Search engines compare the declaration with redirects, internal links, sitemap entries, content similarity and other signals. This checker reports what the fetched response declares; it cannot confirm the canonical a search engine selected.
Is a relative canonical URL invalid?
No. A relative canonical reference can resolve to a valid absolute URL when the page base is unambiguous. The Canonical Tag Checker shows the declared value and resolved target separately, so malformed references, unexpected bases and cross-origin targets remain visible for correction.
Should a page canonicalize to itself?
A self-referencing canonical is the normal declaration on the preferred URL. It confirms the address and blocks a template default from nominating a different page. A missing self-reference is only a defect when another declaration or a redirect contradicts the address that should rank.
Can two pages both declare the same canonical?
Two URLs that declare the same target are consolidating onto that target, which is the intended use for near-duplicate variants. The pattern becomes a defect when a page that should rank for its own query points at an unrelated URL and hands its signals away.
What is the difference between a canonical URL and a canonical tag?
A canonical URL is the address being nominated as preferred, and the canonical tag is the markup that declares it. The tag carries the preference, and the URL is the value that preference names.
Monitor URLs over time
Canonical declarations change with template releases and URL restructuring. Monitor your canonical URLs and catch a changed target before it consolidates the wrong page.