Skip to content
MrKeyword
Free canonical tag checker

Canonical tag checker: see where your canonical really points

Enter any page URL. MrKeyword fetches it live, reads the rel=canonical tag and the HTTP Link header, then follows the canonical target to check that it answers HTTP 200, can be indexed and points to itself.

Free, no account needed. MrKeyword fetches the page live and shows only what it found.

Built on first-party data from Google and Bing
Search ConsolePageSpeed InsightsBing Webmaster Tools
An explorer discovering useful search ideas with a magnifying glass
A little curiosity goes a long way.
What it checks

What does a canonical tag do?

A canonical tag is a <link rel="canonical" href="…"> element in the page head that names the preferred URL when several addresses show the same or very similar content, such as tracking parameters, sorted product lists or http and https copies. Files that have no HTML head, like PDFs, can send the same signal in an HTTP Link header.

Google treats the canonical as a strong hint, not a rule. It weighs it with redirects, internal links, the sitemap and HTTPS, and it can pick a different URL when the signals disagree. Two canonicals that name different URLs, or a canonical that points at a redirect, an error or a noindex page, make it more likely that Google ignores your choice.

This checker reads both sources on the live page, then requests the canonical target without following redirects, so it can show the target's own status, noindex directives and canonical, and follow up to five pages to find chains and loops. For the full set of indexing signals on one URL, use the indexability checker.

In the result

Clear answers,
with the reason shown.

Both sources

HTML tag and Link header.

Every rel=canonical in the page head and in the HTTP Link header, resolved to a full URL, with conflicts, relative URLs, http targets and query strings flagged.

  • Self-referencing canonical confirmed
  • HTML and header conflicts shown
The target, followed

Where the canonical leads.

Each canonical target is fetched live with its HTTP status, noindex directives and its own canonical, up to five pages deep.

  • Redirects and errors flagged
  • Chains and loops caught
Worked example

A canonical that points at a redirect.

The fictional northwind-plumbing.example adds ?ref=footer to a footer link, and the page's canonical names the clean address without the trailing slash. The site later moved every page to a trailing slash with a 301. This is what the checker shows for https://northwind-plumbing.example/boiler-repair?ref=footer:

https://northwind-plumbing.example/boiler-repair?ref=footer1 to fix
  • NoteThe canonical points to another address: https://northwind-plumbing.example/boiler-repair. Google treats this as a hint that the other URL is the main version.
  • FixThe canonical points to a redirect: https://northwind-plumbing.example/boiler-repair answers HTTP 301 and sends visitors to https://northwind-plumbing.example/boiler-repair/. Point the canonical at the final URL.
Canonicals found on the page
Canonical URLSource
https://northwind-plumbing.example/boiler-repairHTML
Canonical chain, followed live
URLHTTP statusIndexableIts canonical
https://northwind-plumbing.example/boiler-repair?ref=footer200Yeshttps://northwind-plumbing.example/boiler-repair
https://northwind-plumbing.example/boiler-repair→ https://northwind-plumbing.example/boiler-repair/301No (HTTP 301)None

Example result for a fictional website (northwind-plumbing.example). It is produced by the checker's own code from the setup described above; run the checker for your own pages.

Pointing the tracked URL at the clean one is right, but the clean URL now answers 301, so Google has to resolve a redirect before it can use the hint and may choose another URL instead. The fix is to update the canonical tag in the page template to the final address, https://northwind-plumbing.example/boiler-repair/, so every page names a URL that answers HTTP 200 and points to itself. Read canonical tags explained for when to use a self canonical, and check the rest of the indexing signals with the indexability checker.

Reading the result

How do you read the canonical checker result?

The canonicals table
Every canonical URL found on the page, resolved to a full address, and whether it came from the HTML head or the HTTP Link header. More than one different URL is a conflict.
The chain table
The first row is the page you entered. Each next row is a canonical target the checker requested live, without following redirects, with its HTTP status, whether it can be indexed and the canonical it names in turn.
The findings
Each finding is labelled Problem, Fix, Note or Good, and the chip at the top sums them up. A canonical to another URL is a note, not an error: it is often intentional.
Common errors

What are the most common canonical problems?

Canonical points to a redirect

Usually left over from a migration or a trailing-slash change. Update the canonical to the final URL that answers HTTP 200.

Canonical points to a 404 or noindex page

Google will not use a missing or noindex page as the main version. Point the canonical at a live, indexable page, or use a self canonical.

HTML and Link header disagree

A CDN or plugin often adds a Link header that the template does not know about. Remove one source or make both name the same URL.

Canonical chains and loops

Page A names B, and B names C (or A again). Point every duplicate straight at the one final URL.

Relative or http:// canonicals

Use an absolute https:// URL, so the canonical cannot resolve to the wrong host or protocol.

When to check

When should you check canonical tags?

Check a page's canonical whenever URLs change or Search Console reports that Google chose a different canonical.

After a migration or URL change
Old canonicals often keep naming addresses that now redirect.
When Search Console says “Duplicate, Google chose different canonical”
Check that your canonical answers HTTP 200, is indexable and agrees with the Link header.
After installing an SEO plugin or CDN rule
A second source of canonicals can conflict with the one in your template.
For filtered or tracked URLs
Confirm parameter versions point at the clean URL, and that the clean URL points to itself.
Go further

Guides for this check.

More free checkers

Other quick checks.

Questions

About the canonical checker.

What is a self-referencing canonical?

A canonical tag on a page that names that same page's URL. It tells Google which version of the address you prefer, for example without tracking parameters, so links and signals are counted for one URL.

Does Google always follow the canonical tag?

No. Google treats rel=canonical as a hint. It can choose another URL when redirects, internal links, the sitemap or the content point elsewhere. Search Console URL Inspection shows the canonical Google selected.

Can a canonical point to a URL that redirects?

It works badly. Google has to resolve the redirect and may pick a different URL. Point the canonical straight at the final URL that answers HTTP 200.

What happens if the HTML and the Link header disagree?

When a page sends two different canonical URLs, Google may ignore both. Keep one source, or make both name the same URL.

Should a canonical be an absolute URL?

Yes. Google supports relative URLs but recommends absolute ones, such as https://example.com/page, because a relative path can resolve to the wrong host or protocol.