Canonical URL and variant audit
Most canonical bugs I’ve chased? Not the tag. It was what the tag pointed at. So this looks wider. Does your URL declare a canonical that makes sense, does that target actually answer with a clean 200, is it quietly carrying a noindex or some second canonical you forgot about, how does the URL you typed redirect, and do the usual http/https/www/trailing-slash variants all land on the same page. Paste a public URL. One pass, you see the lot.
A canonical is a hint. Not a command. Google gets the final say, always. Read it next to the response status, the redirects, your robots signals and what the sitemap actually lists before you trust a word of it.
What a canonical checker should settle first
A canonical answers one question. When several URLs reach the same content, which one counts? Sounds simple. It isn’t, because that question keeps ambushing you: after an HTTPS migration, the day someone touches WordPress permalinks, the first time a campaign link bolts on a ?utm tag. Category templates. Paginated archives. Honestly, anywhere a theme or plugin quietly shoves metadata into the <head> while you’re looking elsewhere.
Reading the tag text won’t save you, though. I want to see the page declares something, sure. But is the URL it names even alive, is it hiding behind a noindex, does it turn around and canonicalise somewhere else entirely, do the http/www/slash variants all funnel to one place. That gap (a tag exists versus the setup being trustworthy) is where I’ve lost most of my afternoons.
Self-canonical and cross-canonical are different decisions
Anything I actually want ranking (a real article, a tool page) gets a self-canonical by default. The preferred URL points at itself and there’s nothing left to second-guess. Cross-canonical has its place too. A throwaway campaign page folding into the evergreen article it copied, say. Cross-canonical isn’t the problem, though. Forgetting you set one is the problem. Aiming it at a URL that 301s or carries a noindex. Or, and this is the one I’ve personally done, copy-pasting a template and quietly bleeding ranking signals into some page you never meant to feed. Took me ages to spot.
- Checked URL the exact page you handed me. Character for character, no cleanup.
- Declared canonical the preferred URL it writes into its own metadata.
- Target status whether that preferred URL actually answers, or coughs up a 3xx or a 4xx.
- Target robots your heads-up that the destination is busy telling crawlers to get lost.
- Target canonical where you catch canonical chains. Or two pages quietly disagreeing about who’s boss.
Redirects and variants matter around canonical tags
People forget this part. A canonical tag is not a stand-in for clean routing. If your http, https, www, non-www and trailing-slash versions are still bouncing through redirects nobody’s looked at since 2019, the tag is just papering over a mess you should be fixing instead. I want the preferred URL obvious from every angle. Your internal links use it. The sitemap lists it. Every redirect lands on it. And, sure, the canonical names it too. Maybe I’m fussy, but when they all line up the guesswork mostly evaporates.
A practical canonical workflow
- Start with the exact URL something flagged. Search Console, analytics, an internal link, whatever dragged you here.
- Read the declared canonical and trace the response path before you call it fine. Don’t just assume.
- Follow the canonical target. Does it answer? Is it noindexed? Has it got a canonical of its own?
- After any migration or permalink edit, walk the host/protocol/slash variants. That’s where the gremlins like to hide.
- Then line up your internal links and sitemap with the URL you actually want indexed. Plumbing first, tag last.
Common questions
Is a canonical tag a redirect?
Nope. And mixing them up causes real headaches. A redirect physically moves the request, so the browser actually ends up somewhere else. A canonical just whispers a suggestion to search engines about which URL deserves the credit when the same content lives at a few addresses. Your visitor doesn’t budge. Only the indexing math shifts under the hood.
Can a canonical point to a different page?
Sure, if the pages are genuine duplicates or near-twins and you did it on purpose. Perfectly legitimate. What you shouldn’t do is aim a canonical at some unrelated, beefier page hoping the link juice rubs off. Google’s gotten pretty good at ignoring that move. Best case, you’ve just told it to forget the page you actually wanted ranked. Which, you know, defeats the point.
Does a canonical guarantee indexing?
No. And treating it like one will burn you eventually. Think of it as a single vote in a much bigger election. Can the page even be crawled? Is the content worth keeping around? Do internal links point at it, what do your robots rules say, is it sitting in the sitemap. Then the search engine makes its own call. A clean canonical helps your odds. It doesn’t force anybody’s hand.
What does a canonical tag do?
It picks a winner. When the same (or nearly the same) content sits at multiple URLs, the canonical tells search engines “this is the one that counts.” All those ranking signals scattered across the duplicates get pooled onto that single address, instead of split umpteen ways and watered down.
Should a page canonicalise to itself?
For the URL you genuinely want indexed? Yeah, every single time, in my book. A self-referencing canonical leaves zero room for doubt. So when that same page gets reached with a ?utm tag bolted on, or down some alternate path, search engines already know which clean version to keep. It costs you nothing and saves the odd nasty surprise.
What happens if my canonical points to the wrong URL?
This is the one that really bites. Search engines tend to take you at your word, so name the wrong URL and they might quietly drop the good page in favour of it. Now perfectly fine content has slipped out of the index and you’ve got no obvious reason why. So before you trust a canonical, confirm it lands on a live, indexable, 200-status page. That’s exactly what this tool checks for you.













