SEO & Web

Canonical URL Test

rel=canonical

Test a page's canonical URL

We'll fetch the page, follow any redirects, and read both the <link rel="canonical"> tag and the Link: HTTP header — then compare what they declare against the URL that was served.

Try:
wikipedia.org
github.com/features
bbc.com/news

Tool features

Complete rel=canonical analysis with prioritised fixes
6 checks

Reads both declarations

Parses the <link rel="canonical"> tag and the Link: HTTP header, so a canonical set at the CDN is found as readily as one in the template.

Finds every duplicate

Reports all canonical declarations, not just the first — two tags with different values is the failure that hides behind a first-match-only check.

Compares against the URL

Resolves the declared value and tests whether it is self-referencing, so "present" is never mistaken for "correct".

Follows the redirect chain

Reads the page a crawler actually lands on, and reports when the requested URL was not the one carrying the canonical.

Flags the quiet mistakes

Relative URLs, http:// canonicals on HTTPS pages, tags outside <head>, and cross-domain targets that were never meant to ship.

Checks for contradictions

Cross-references the canonical against robots meta and X-Robots-Tag, so a self-referencing canonical alongside noindex is surfaced.

What a canonical URL does & why it matters

How rel=canonical consolidates duplicate URLs

A canonical URL is how a page tells search engines which address is the real one. The same content is usually reachable at several URLs — with and without a trailing slash, with tracking parameters, under www and without it — and rel="canonical" is the declaration that consolidates them into one indexed URL instead of several competing duplicates.

This tool requests the page the way a crawler would, follows any redirects, and reads both places a canonical can be declared: the <link rel="canonical"> tag in <head> and the Link: HTTP header. It then resolves what it found and compares it against the URL that was actually served.

Present is not the same as correct. A canonical that is relative, points at http:// from an HTTPS page, sits outside <head>, or names a staging hostname will pass a naive check and still cost you the page. This is a page-level markup check — for whether your four entry points converge, use the WWW redirection test.

Self-referencing
The canonical names the same URL as the page it appears on — the normal case for an indexable page.
Cross-domain canonical
Points at another domain, asking search engines to index that page instead. Correct only for syndicated content.
Link: header
An HTTP-header alternative to the tag, used for PDFs and other non-HTML documents, or set at a CDN.
Canonical conflict
Two declarations with different values. Crawlers may ignore both and pick their own URL.

How to use this tool

Check a page's canonical URL in four steps
1
Enter a page URL
Type the full URL of a page, e.g. example.com/products/widget. A bare domain checks the home page.
2
Run the check
Click Check Canonical to fetch the page, follow any redirects, and read the canonical tag and Link header.
3
Compare the URLs
Check the declared canonical against the URL that was served — they should match on an indexable page.
4
Fix and re-test
Work through the findings, then re-run the check to confirm the corrected declaration is what the server now sends.

Related tools

Keep debugging with tools from the same suite
5 tools
Open Graph Checker
Check Open Graph meta tags and preview how your page looks when shared on Facebook, Twitter, and Google — get a completeness score
Robots.txt Tester
Test any URL against a site’s robots.txt — which crawlers may fetch it, which line decides it, and every syntax error that quietly disables a rule
WWW vs Non-WWW Redirection Test
Test domain canonicalization between www and non-www, detect redirect chains and loops, and identify the preferred version
HTTP to HTTPS Redirection Test
Check whether a website properly redirects HTTP traffic to HTTPS, detect redirect loops and view the redirect chain
Website Redirect Checker
Check website redirects and status codes for any URL. Detect multi-level redirects and view final destination

Frequently asked questions

Common questions about canonical URLs
8 Q&A

It is the address a page declares as the one search engines should index. When the same content is reachable at several URLs — with a trailing slash, with tracking parameters, on www and non-www — the canonical consolidates them so ranking signals land on one URL instead of being split across duplicates.

Every page you want indexed, yes. A self-referencing canonical costs nothing and removes the ambiguity that arises the moment a URL becomes reachable with a parameter appended. Pages that genuinely are duplicates should point at the original instead.

No. A redirect is an instruction browsers and crawlers must follow; a canonical is a hint search engines may disregard if other signals contradict it. If a URL should never be served, redirect it. Use a canonical when both URLs must stay reachable but only one should rank.

It resolves against whatever URL the page was reached at, so the target changes depending on the request. Reached through a proxy, a staging hostname or an alternate domain, a relative canonical names that address instead of your real one. An absolute URL always says the same thing.

Yes, and it is correct for syndicated content — it tells search engines to credit the original. It is also one of the most damaging accidents in this area, because a staging or CDN hostname left in a template quietly asks search engines to drop the whole site.

Search engines may ignore both and choose a URL themselves, which is worse than declaring nothing. It usually happens when a CMS emits one canonical and a plugin or theme emits another. This tool reports every declaration it finds rather than only the first.

No. Only a canonical inside is honoured. A tag injected into the body by JavaScript is ignored, which makes it a difficult failure to spot in a browser where the DOM shows the tag present.

You can, but they contradict: the canonical asks for the URL to be indexed and noindex asks for it not to be. Search engines resolve the conflict on their own terms. Pick one — remove the noindex if the page should rank, or drop the canonical if it should not.