Quick answer: paste a URL and see whether it declares a canonical, whether that canonical is itself, and whether anything else on the page contradicts it.
Canonical checker — is your canonical tag right?
What a canonical is for
A canonical names the URL you want indexed when the same content is reachable at more than one address. It is a hint, not an instruction, and search engines override it when the rest of the evidence disagrees.
That last point is the one worth internalising. If Search Console tells you Google chose a different canonical than you declared, the tag is not broken — it lost an argument. Something else on the site pointed harder in another direction: internal links, a sitemap entry, a redirect, or simply more inbound links to the other URL.
The contradictions that cost you
noindex plus canonical. The page asks to be excluded and simultaneously nominates itself as the indexable version of something. These want opposite outcomes, and the resolution is not predictable.
Redirect plus canonical pointing elsewhere. A redirect already answers the question of which URL wins. A canonical on the destination pointing somewhere third is a second, conflicting answer.
A canonical carrying a tracking parameter. This turns every campaign link into its own indexable page, which is the exact problem canonicals exist to prevent.
Canonical or redirect
Redirect when the old URL should stop existing for people. Canonicalise when both must stay reachable but only one should be indexed — filtered views, parameter variants, print pages.
Using a canonical where a redirect belongs leaves two live pages competing for the same query, and the one that wins is not reliably the one you would have picked.
On Shopify
Canonicals are set automatically and are usually right: a product reachable through several collection paths canonicalises to its main product URL. The failure to look for is a theme or app adding a second canonical tag to the same page. See canonical URL for the full definition, and the redirect checker if the URL is reached through a chain.
Frequently asked questions
Should every page have a self-referencing canonical?
It is the safe default. A self-referencing canonical costs nothing and removes ambiguity when a URL is reachable with tracking parameters, a trailing slash or a different case. Google can pick a canonical without one, and the pick is not always yours.
Is a canonical a command?
No, it is a strong hint. Google can and does choose a different canonical when the evidence disagrees with yours — which is what the Search Console message about a duplicate with a different chosen canonical means. When that happens the fix is usually to stop contradicting yourself elsewhere.
What contradicts a canonical?
Three things most often: a redirect pointing one way while the canonical points another, a noindex on the page the canonical points to, and internal links that consistently use a different URL than the one you declared. Engines resolve contradictions by ignoring the weaker signal, and the canonical is usually the weaker one.
Canonical or redirect?
Redirect when the old URL should stop existing for people. Canonical when both URLs must remain reachable but only one should be indexed — filtered collection views, tracking-parameter variants, printable versions. Using a canonical where a redirect belongs leaves two live pages competing.
Does Shopify set canonicals automatically?
Yes, and generally correctly: a product reachable through several collection paths canonicalises to its main product URL. The failure case is a theme or app that adds a second canonical tag, leaving two on one page, at which point the engine picks one and it may not be yours.
Do parameters break the canonical?
They should not, if the canonical is present and clean. A URL with a utm parameter that canonicalises to the parameter-free version is exactly the intended use. It breaks when the canonical itself carries the parameter, which makes every tracked link its own indexable page.
All free tools
SEO Title Generator & Checker
Generate SEO titles from your keyword and check any title's character count, pixel width, and keyword position.
Meta Description Generator & SERP Preview
Generate high-converting meta descriptions and preview how your page looks in Google.
Keyword Density Checker
Paste any text and see keyword density, top 1–2–3-word phrases, and stuffing warnings.
Robots.txt Generator (AI-Crawler Aware)
Generate a correct robots.txt in seconds.
LSI & Related Keyword Generator
Generate related keywords, question keywords, and commercial long-tails from any seed term.
Image Alt Text Generator & Checker
Build descriptive, SEO-friendly alt text for product images and check existing alt text for length, redundancy, and stuffing.
Googlebot Simulator — See What Google Sees
Fetch any URL with Googlebot's user agent: status code, redirects, title, meta robots, canonical, X-Robots-Tag, H1s, and an indexability verdict.
Schema markup generator
Generate valid JSON-LD schema free: Product, FAQPage, BreadcrumbList, LocalBusiness and Article.
Hreflang tag generator
Build a valid hreflang cluster for every language version of a page, with x-default, and a built-in check that every URL points back at every other one..
UTM builder
Build consistent UTM-tagged campaign URLs free.
URL slug generator
Turn any title into a clean, lowercase, hyphenated URL slug.
Readability checker
Paste text and get Flesch Reading Ease, Flesch-Kincaid grade level, sentence length distribution and the specific sentences that are dragging the score down..
SERP preview tool
Preview how a title, URL and meta description will render in Google on desktop and mobile, measured in pixels rather than characters so truncation is accurate..
SEO ROI calculator
Estimate what a ranking improvement is worth: search volume, position-based CTR, conversion rate and order value, plus a payback period on your SEO spend..
Open Graph generator
Generate Open Graph and Twitter card meta tags with a live preview of how the link will look when shared on Facebook, LinkedIn, X, WhatsApp and Slack..
SEO report generator
Generate an on-page SEO report for any URL: title and meta lengths, headings, canonical, schema types, image alt coverage, links and indexability, scored..
Redirect checker
Follow any URL hop by hop: every status code, every intermediate URL, and the page that finally answers.
Robots.txt tester
Fetch any site robots.txt and test a path against Googlebot, Bingbot, GPTBot, ClaudeBot and PerplexityBot.
Sitemap checker
Fetch any XML sitemap or index and check it: URL count against the 50,000 limit, lastmod coverage and honesty, size and reachability..
HTTP header checker
Fetch any URL as Googlebot and read the full response headers, with the SEO-relevant ones called out: X-Robots-Tag, Cache-Control, Content-Type, Vary and HSTS..
AI visibility checker
Check what AI answer engines may do with a site: GPTBot, ClaudeBot, PerplexityBot and Google-Extended rules, llms.txt, and whether pages are quotable..
hreflang checker
Read the hreflang cluster on any page: every declared alternate, whether the page includes itself, whether x-default is present, and whether the codes are valid..
Heading structure checker
Check the heading structure of any page: how many H1s, whether levels are skipped, and how many sections a reader or an answer engine can actually navigate..
Indexability checker
One verdict from every signal that decides it: status code, robots meta, X-Robots-Tag, canonical target, redirect chain and whether the HTML has content at all..
Related guides
Run this across your whole catalog
RankEngine applies and verifies these fixes on every product in your Shopify store — automatically.
Install RankEngine free