The tag that decides which URL gets the credit — checked properly.
Free · no signup · reviewed
Free, no signup. We fetch the page live and read what a search engine would see.
A canonical tag tells search engines which URL is the real one when several show the same content. Get it right and duplicates consolidate onto one strong page. Get it wrong and you can hand every ranking in a section to your homepage, or to a staging domain nobody remembered was still referenced.
This reads the canonical on the page you give it and compares it with the URL that actually served the page, which is where the mistakes show up: a whole site canonicalised to /, an http canonical on an https page, a relative canonical that resolves somewhere unexpected once a tracking parameter is added.
Canonical problems are quiet. Nothing breaks, no error appears, and rankings drift to the wrong URL over weeks — which is why this is worth checking on a template rather than waiting for someone to notice the traffic.
Duplicate content is not a penalty; it is a dilution. Two URLs showing the same thing split the links, the crawl attention and the ranking signals between them, and a search engine picks one — often the one with the ugly parameter in it. The canonical tag is how you make that choice instead of leaving it to be made for you.
Every indexable page carries one absolute, self-referencing canonical on the same protocol and host — unless it is a genuine duplicate, in which case it points at the original, and that original returns 200 and is itself indexable.
Each of these has a full entry in our issue library: what it is, what it costs a business, and step-by-step fixes for WordPress, Shopify, Webflow and custom builds.
No canonical tag, so duplicates can compete.
The page points at a different URL as the original.
Several pages share one identical title.
A checker that hands you a list and walks away has done half the job. Here is what each kind of finding means and what it is worth doing about it.
It costs nothing and settles the question before parameters, uppercase variants and trailing slashes create duplicates for you. If the tool says the canonical matches the URL that served the page, this page is doing the right thing.
It tells Google this page does not deserve its own place in the index. It usually comes from a misconfigured plugin or a template variable that resolved to nothing, and it affects every page built from that template.
A canonical naming a staging domain, a www variant you no longer use, or an http version is pointing your ranking signals at a URL you do not serve. Fix the template; nothing else on that page matters until you do.
A print view, a filtered listing, a syndicated copy: these should canonicalise to the original. What makes it wrong is when it happens across a whole template, because that is a decision nobody made deliberately.
Page 2 of a category is not a duplicate of page 1, and telling Google it is hides everything past the first screen. Paginated pages should be self-canonical, with the pagination links crawlable.
If the duplicate should not be reachable, redirect it. A canonical is a hint that can be ignored, and a URL that still serves content will still be visited, still be linked to and still occasionally be indexed.
The target has to be a live, indexable URL. Pointing at a redirect means the signal has to make two hops and may not make either of them.
One says "don't index me", the other says "credit that page instead". Google treats the combination as contradictory and resolves it however it likes. Pick one.
The setting is in a different place on every platform, and that is usually what stands between knowing and fixing.
Yoast, Rank Math and SEOPress all write self-referencing canonicals by default and let you override per page. Duplicate canonical tags almost always mean the theme is writing one as well — that is the one to remove.
Shopify canonicalises /collections/x/products/y to /products/y for you, which handles the biggest source of store duplication. What it does not decide is which variant you link to internally or list in your sitemap, and those should match the canonical.
Page settings hold a canonical field. The one to watch is the webflow.io staging subdomain: if indexing is left on there, you have a complete duplicate of the site with its own canonicals pointing at itself.
Canonicals are handled automatically and are self-referencing. The duplication risk is elsewhere — tag and category archives listing the same posts, which need noindex rather than a canonical.
Set metadataBase in the root layout, then alternates.canonical per route in generateMetadata. Without metadataBase you get relative canonicals, and preview deployments end up canonicalising to themselves and competing with production.
More on your platform: SEO audits by platform.
Every tag in the head of your page, read back to you the way a crawler sees it.
Find your sitemap, prove it parses, and see what it is actually telling Google.
Score one page against the checks that actually move rankings.
Or see all ten free tools.