Canonical Checker - Verify rel=canonical
Compare the URL you asked for, the URL you actually landed on and the canonical the page declares, then get a plain verdict: self-referencing, pointing elsewhere, missing, or broken by a trailing slash or protocol mismatch.
Paste the messy version of the URL, tracking parameters and all. That is the case a canonical exists to solve.
This check is made from a ToolForte server.
Unlike the browser-only tools on the rest of the site, this one has to fetch the page server side, because a browser is not permitted to read another site HTML for you. The request identifies itself as ToolForteBot/1.0 and site owners are free to block that user agent, in which case the check fails even though the page loads fine for you. Only the delivered HTML is parsed. A canonical injected later by JavaScript will not show up here, which is also true of many real crawlers on their first pass.
Making sense of a rel=canonical link
This tool answers one question properly instead of many questions loosely: does this page tell search engines to index itself, and if not, what does it point at. It shows the address you asked for, the address you were redirected to, and the canonical the delivered HTML declares, then compares them and names the outcome. Self-referencing, pointing at another page, pointing at another domain, missing entirely, or differing only by a trailing slash or a protocol, which are the two mistakes that hide best.
It is the check you want after a migration, a template change or a CMS upgrade. Site owners run it when a page stopped ranking without any content change. Developers run it when a staging value survived a deploy. SEO specialists run it across a sample of templates, because canonical bugs are almost never one page: they are one template repeated a few thousand times. Anyone who has seen the Search Console message about Google choosing a different canonical is in the right place.
The canonical link was introduced in 2009 to solve duplication that site owners cannot avoid. The same product appears under two categories, a listing exists in a sorted and an unsorted form, a newsletter link adds utm parameters, and a print stylesheet gets its own path. Without a canonical each of those is a separate URL competing for the same ranking. With one they consolidate. Note that a canonical is a strong hint, not a command: search engines can and do override it when the rest of the evidence disagrees.
A handful of rules cover almost every real case. Every indexable page carries a self-referencing canonical. The canonical is absolute, not relative. It uses the same protocol and host that the server actually serves, which is where the http and www variants trip people up. It never points at a URL that redirects. It is not combined with noindex on the same page, because the two directives contradict each other. In an hreflang set every page self-canonicalises and the canonical appears in the set.
When the canonical turns out to be the symptom rather than the cause, follow it up: check the whole tag set with the Meta Tag Checker, inspect the response itself with the HTTP Headers Checker, and build a correct multilingual set with the Hreflang Tag Generator. If you are consolidating variants after this audit, the Robots.txt Tester helps confirm the versions you no longer want are still crawlable enough for the canonical to be seen.
How the Canonical Checker Works
- 01Paste the page address, tracking parameters and all. The messy version is the one a canonical exists to solve.
- 02A ToolForte server requests it as ToolForteBot and records every redirect hop until a page actually answers.
- 03The delivered HTML is parsed for the rel=canonical link and any rel=alternate hreflang links, and relative values are resolved to absolute addresses.
- 04The requested address, the final address and the declared canonical are compared, and you get a named verdict plus any conflict between the canonical and the hreflang set.
Reading the verdict and knowing what to change
Self-referencing is the answer you want on any page that should rank under its own address, and it is what makes tracking parameters harmless. When the verdict says the canonical points elsewhere, the question is whether you meant it. Pointing a filtered listing at the unfiltered one, or a print view at the article, is correct and deliberate. Pointing a product page at its category, or every page at the homepage, is a template mistake that quietly removes those pages from the index. A cross domain canonical is legitimate only for syndicated content where another site is the original publisher, and it is otherwise one of the most damaging bugs on this list. The two near misses deserve more attention than they usually get. A canonical that differs only by protocol is normally an http value left in a template after a move to HTTPS. A canonical that differs only by a trailing slash means the template and the server disagree about the slash form, so the canonical is not self-referencing even though it looks right at a glance. Both send crawlers to an address that redirects back, which wastes crawl budget on large sites and leaves the wrong variant indexed on small ones. Fix them in the template, not page by page.
When to Use the Canonical Checker
Use it after any migration, replatform or template change, because canonicals are template output and they break in bulk. Use it when Search Console reports that Google chose a different canonical than the one you declared, since seeing the three addresses side by side usually explains why in seconds. Use it when a page has lost visibility with no content change, and when you have just added tracking parameters to a campaign and want to be sure they consolidate. Use it on multilingual sites whenever hreflang stops working, because a canonical that disagrees with the language set is the most common reason an entire hreflang cluster gets ignored.
Common Use Cases
- Explaining a Search Console message about Google choosing a different canonical than the one your page declares.
- Checking that campaign URLs with utm parameters consolidate back to the clean address instead of competing with it.
- Catching an http canonical left behind in a template after the site moved to HTTPS.
- Verifying that a multilingual page self-canonicalises and appears in its own hreflang set. Hreflang Tag Generator - International SEO
- Confirming after a replatform that product pages canonicalise to themselves rather than to their category.
Expert Tips
- Test the ugliest version of a URL you can construct, with tracking parameters, a trailing slash and mixed case. A canonical that survives that is doing its job.
- Never point a canonical at a URL that redirects. The redirect and the canonical then disagree about the destination, and search engines have to guess which one you meant.
- Make internal links point at the canonical version. A canonical that every link on the site contradicts is a signal fighting the rest of your architecture.
- Paginated listings should canonicalise to themselves, not to page one. Canonicalising page four to page one tells search engines the items on page four do not exist.
Frequently Asked Questions
- A strong hint. Search engines weigh it against other signals such as internal links, redirects, sitemaps and the content itself, and they will override a canonical they find implausible. That is why a canonical is most effective when nothing else contradicts it: point internal links at the canonical version, list only that version in your sitemap, and do not redirect it anywhere.
- No. The two directives say different things. Noindex says do not index this page at all, while a canonical says index this content under a different address. Google has advised against combining them for years because the signals conflict and the outcome becomes unpredictable. Pick one: noindex for pages that should vanish, canonical for duplicates that should consolidate.
- Most often because it is added by JavaScript after load. Only the HTML delivered by the server is parsed here, and no scripts run, which matches how many crawlers behave on a first pass. The other common cause is a canonical placed outside the head, for example inside the body, where it is ignored by search engines as well as by this tool.
- It should be. Relative canonicals do technically resolve against the current page, but they break the moment the same content is reachable from a second path, which is exactly the situation a canonical exists to handle. Writing the full absolute address, including the protocol and the host you actually serve, removes an entire class of ambiguity.
Is a canonical a command or a suggestion?→
Should I combine a canonical with noindex on the same page?→
Why does my canonical show as missing when I can see it in the page source?→
Does the canonical need to be an absolute URL?→
Related tools
12 suggested- 01Broken Link Checker - Free Single Page ScanScan up to 40 links on a single page and see which are broken, redirected or fine. Free, no signup, results grouped with the failures listed first.
- 02Meta Tag Checker - Free Live Page AuditCheck the title, description, canonical, robots and Open Graph tags on any live page. Free, no signup, with a Google snippet and social card preview.
- 03Robots.txt Tester - Check if a URL is BlockedTest whether a URL is allowed or blocked by robots.txt for Googlebot, Bingbot, GPTBot, or any crawler. Free browser-based tester with templates.
- 04SERP Snippet Preview - Google Result SimulatorPreview your Google search snippet on desktop and mobile with real pixel-width meters and counters. Free browser-based SERP simulator for SEO work.
- 05Hreflang Tag Generator - International SEOGenerate valid hreflang link tags and the XML sitemap variant for multilingual sites, with validation. Free browser-based international SEO tool.
- 06Headline Analyzer - Score Your Titles 0-100Score headlines 0-100 on length, power words, emotion, and format, with a SERP pixel-width preview. Free browser-based analyzer with concrete tips.
- 07Hashtag Generator - Instagram, TikTok & XTurn any caption into relevant hashtags for Instagram, TikTok, and X using curated niche sets. Free browser-based generator with platform limits.
- 08UTM Link Builder - Campaign URL GeneratorBuild trackable campaign URLs with utm_source, medium, and campaign parameters, presets, and history. Free browser-based builder for marketers.
- 09Meta Tag Generator - SEO Tags in SecondsGenerate optimized SEO meta tags for your website. Title, description, Open Graph, robots, and canonical tags. Free with live preview.
- 10Open Graph Preview - Social Share TesterPreview how your page will look when shared on Facebook, Twitter, and LinkedIn. Test Open Graph tags before publishing. Free tool.
- 11robots.txt Generator - SEO Crawl ControlGenerate a robots.txt file to control search engine crawling. Set rules for specific bots and paths. Free online generator.
- 12Schema Markup Generator - JSON-LD FreeGenerate JSON-LD structured data for better search engine results. Organization, Article, FAQ, Product and more schema types.