Canonical Tag Checker

Paste a list of URLs and the checker reads what each page names as its canonical, in the markup and in the HTTP Link header. It then resolves every canonical that points at another page, so a clash, a chain, and a target that no longer exists are each named rather than left to you to trace.

Paste full URLs, including the scheme. A single page tells you little, because a self-referencing canonical is both the common case and the correct one, so paste a whole section or a sitemap's worth of URLs and read the clash block first.

The clash is the finding

Checking one page's canonical tells you very little, because a self-referencing canonical is both the common case and the correct one. The finding worth having comes from checking a set: when two genuinely different pages name the same canonical, one of them has volunteered to disappear.

The usual cause is a template. A canonical built from a category rather than from the page, or hardcoded during a redesign and never parameterized, will point every page in a section at the same URL. The section stops being indexed, traffic decays over weeks rather than dropping in a day, and nothing in Search Console names the cause directly.

Two things that look like a clash are not one, and the checker keeps both out of the block. One page pasted twice, as /products and /products/, resolves to a single page and is counted once. A tracking parameter naming its own clean URL is the pattern canonicals exist for, so it is reported as a variant rather than as a fault.

Paste a section's URLs above and the clash table answers it immediately. If you need the URLs, the sitemap validator will list them from any sitemap, and the meta tag checker covers the rest of the on-page tags in the same pass.

What each verdict means

Every row carries one verdict and a sentence saying what to do about it. The nine verdicts are these.

Self
The page names its own URL. This is what most pages should say, and nothing needs doing.
Variant
The URL differs from its canonical only by a query string or the www prefix, so the canonical is consolidating a duplicate onto one address. A filtered or paginated page with content of its own should name itself instead.
Missing
No canonical in the markup and none in the Link header. Google chooses a URL for the page, usually the right one, and stating it removes the guess.
Conflicting
The page declares two or more canonicals that name different URLs. Google ignores the lot and picks a URL itself, so leave exactly one in place.
Pre-redirect
The canonical names the URL you pasted rather than the one it redirected to. Point it at the destination.
Points away
The canonical names a different page, so this page is asking not to be indexed. Confirm that is deliberate.
Chain
The canonical names a page whose own canonical names a third URL. A chain is often ignored altogether, so point the first page at the last URL directly.
Redirecting target
The canonical names a URL that redirects. Point it at the destination so the two signals agree.
Dead target
The canonical names a URL that does not answer. The page has nominated a version of itself that Google cannot index.

Frequently Asked Questions

What should a canonical tag point to?

In almost every case, the page itself. A self-referencing canonical states plainly which URL you want indexed, which settles the question when the same content is reachable through parameters, trailing-slash variants, or both http and https. A canonical pointing elsewhere is a request not to index this page, so it should only appear where that is genuinely what you want.

Is a canonical tag a directive or a hint?

A hint. Google considers your canonical alongside other signals, including internal links, the sitemap, and redirects, and it may choose a different URL than the one you named. That is why a canonical contradicted by your own internal linking often gets ignored: the signals disagree, and the tag is only one of them.

What is a canonical clash?

Two or more genuinely different pages naming the same canonical URL. Only one of them will be indexed, and the others are asking to be dropped. Sometimes that is intended, as with paginated or filtered variants. Often it is a template bug where a hardcoded canonical was copied across pages, and it silently removes a whole section of a site from search.

A tracking parameter naming its own clean URL is not a clash, and neither is one page pasted twice under two addresses. This checker resolves every URL first and compares the pages behind them, so those two cases stay out of the clash block.

Can a canonical tag live in the HTTP header?

Yes. A response may declare its canonical in a Link header, and it carries the same weight there as it does in the markup. A PDF, an image, or a page served through a CDN rule has nowhere else to put one. This checker reads both places and says which one a canonical came from, so a page with a header canonical is not reported as missing it.

What happens if a page has two canonical tags?

Google ignores both and chooses a URL on its own. Two tags usually arrive from two sources, a theme and a plugin for example, or a template and a CMS field, and neither owner knows the other exists. The checker reports every canonical a page declares rather than only the first, so the conflict is visible on the row.

Can a canonical point to a redirecting URL?

It should not. A canonical pointing at a URL that redirects sends a confused signal: this page says the real version is elsewhere, and elsewhere says it has moved again. Point the canonical at the final destination. The checker follows every canonical that names another page, so a redirecting target, a target that 404s, and a target with a canonical of its own are each reported by name.

Do I need a canonical on every page?

Not strictly, but it costs nothing and removes ambiguity. Sites that omit them rely on Google guessing correctly, which it usually does until a parameter, a print view, or a syndication partner gives it a reason not to.

Get Google and ChatGPT traffic on autopilot.

Start today and generate your first article within 15 minutes.

Content Plan