Both Declaration Channels
Compare the HTML link element with any HTTP Link header and find cases where two canonical targets compete.
TL;DR: Canonical URL Checker checks compare canonical tags and final urls to detect canonical conflicts. so you can confirm the current issue, understand when it matters, and move directly into the next fix without leaving the browser.
Compare canonical tags against final URLs after redirects. Find mismatches before Google indexes the wrong page.
Updated
Loading tool interface...
The Canonical Tag Checker fetches the submitted page, follows its redirects, extracts canonical declarations from the HTML and HTTP `Link` header, and resolves each target. It then fetches the canonical target to check its final URL, response status, redirect count, content type, meta robots, and `X-Robots-Tag`. The result separates the page signal from the health of the URL it names.
Treat canonical as a hint: `<link rel="canonical" href="https://example.com/preferred">` asks search engines to consolidate duplicate or near-duplicate URLs under the preferred address. It does not redirect users and it does not guarantee selection. Internal links, sitemap entries, redirects, content similarity, and the canonical declaration should all support the same preferred URL. Strong conflicting signals can cause a search engine to choose another canonical.
Use one absolute target: Put one canonical link in the HTML head and use a complete HTTP or HTTPS URL. A relative value such as `/page` can resolve correctly, but an absolute target makes protocol and host intent explicit. Multiple HTML canonical tags are ambiguous. An HTML canonical and HTTP header canonical that name different URLs create the same conflict in two response channels. PageChecks reports tag count, relative values, invalid values, and HTML-header disagreement.
Make a unique page self-referential: An indexable page with distinct content should normally canonicalize to its own final preferred URL. Match HTTPS, `www` choice, path casing, trailing slash, and meaningful query parameters. If `https://example.com/page` redirects to `/page/`, the canonical should name the final `/page/` URL instead of the redirecting form.
Send duplicate variants to the same target: Tracking parameters such as `utm_source`, `gclid`, and `fbclid` usually do not change primary content, so their URL variants can canonicalize to the clean page. Functional parameters need more care. A filtered product list, sorted result, currency selection, or pagination URL may show materially different content. Do not canonicalize it away until you have decided whether that version deserves separate discovery and indexing.
Keep the target direct and healthy: The canonical target should return 200 without another redirect. A target returning 404, 410, 5xx, or `noindex` cannot serve as a clear indexable preference. PageChecks follows target redirects and reports whether the resolved target matches the declared destination. Update the source canonical to the final 200 URL rather than relying on a chain.
Resolve redirect conflicts: A redirect is a stronger user-visible routing action, while canonical is a consolidation hint in the document. If `/old` redirects to `/new` but `/new` canonicalizes back to `/old`, the signals form a cycle. Change the final page to self-canonicalize at `/new`, update internal links, and list only `/new` in the sitemap.
Do not pair cross-URL canonical with noindex: `noindex` asks a search engine to remove the checked page, while a canonical to another URL asks it to consolidate duplicates. Combining both makes the intended action unclear and may prevent the canonical relationship from being processed over time. Use `noindex` for a page that should disappear without consolidation. Use canonical when duplicate signals should transfer to a preferred indexable URL.
Use cross-domain canonicals deliberately: A syndicated article or mirrored product page can canonicalize to the original on another domain. The target should contain matching or near-matching primary content and be accessible to crawlers. A mistaken template that points every page to an external domain can remove an entire section from the preferred index set, so the checker flags cross-domain targets for review rather than assuming they are wrong.
Handle pagination page by page: Page 2 of a series usually contains items absent from page 1, so a blanket canonical from every paginated URL to page 1 can hide deeper items. Self-canonicalize each page when it represents a distinct slice, and connect the series with crawlable links. Use a view-all canonical only when that target contains the same full content and performs well enough to serve users.
Align canonical with hreflang: Each localized page should normally canonicalize within its own language version. An English URL that canonicalizes to French while also participating in an hreflang cluster gives search engines incompatible selection and language signals. Fix canonicals first, then verify reciprocal hreflang annotations across the cluster.
Use HTTP Link canonicals for non-HTML files: A PDF cannot place a canonical in an HTML head, so the server can send `Link: <https://example.com/preferred>; rel="canonical"`. HTML responses can also use the header, but the value must agree with any HTML tag. The checker displays both channels and identifies a conflict when their resolved targets differ.
Audit templates after URL changes: Host migrations, HTTPS upgrades, route renames, and trailing-slash changes often leave a hard-coded old target in a shared template. Test one URL from each template, including products, articles, categories, filters, and paginated pages. Then confirm that internal links and sitemap locations use the same final forms shown in the canonical report.
Canonical URL Checker is most useful when you need a direct answer on a live URL or draft before you change templates, ship content, or rerun a wider audit.
After checking canonicals, audit meta tags for conflicts and trace redirect chains to the same destination. Then move to the related checks below to confirm the fix on the live canonical page.
Compare the HTML link element with any HTTP Link header and find cases where two canonical targets compete.
Follow the canonical target to its final response and flag redirects, non-200 status codes, unsupported content, or noindex directives.
Separate protocol, host, cross-domain, trailing-slash, and query-parameter differences so the fix belongs in the right rule or template.
Verify that the page's final redirect destination and declared canonical resolve to the same preferred URL instead of forming a cycle.
Use issue-specific recommendations for missing, multiple, invalid, relative, conflicting, redirecting, or non-indexable canonical targets.
Answers about Canonical URL Checker
Run the page URL through the Canonical Tag Checker and compare the declared target with the fetched final URL. The report also checks HTML and HTTP header canonicals, target status, redirects, and index directives.
Conflicts commonly come from mixed protocols, different hosts, trailing-slash variants, parameters, or separate HTML and HTTP header values. Fix the template so every version identifies one preferred absolute URL.
Point the canonical to the preferred HTTPS URL when HTTPS is the indexable version. The HTTP URL should redirect to that same HTTPS destination so the redirect and canonical signals agree.
Yes, the checker follows the page redirect and the canonical target, then compares their final destinations. A canonical that points through another redirect should be updated to the final 200 URL.
A self-referencing canonical is a clear default for a unique indexable page. Use the exact preferred protocol, host, path casing, and trailing-slash form so parameters and alternate URL variants consolidate to it.
Multiple canonical declarations create ambiguity and can cause search engines to ignore the signal. Output one canonical in the HTML head, and ensure any HTTP `Link` header names the same target.
Yes, a cross-domain canonical is valid when duplicate or syndicated content should consolidate to the original domain. Use it deliberately because it asks search engines to select another site's URL instead of the page being checked.
Avoid combining `noindex` with a canonical to another URL as a consolidation strategy. `noindex` asks for removal while canonical asks for selection of a preferred duplicate, so choose the directive that matches the intended outcome.