View-source needs no tool beyond what is already open: right-click, view page source (or the
Elements panel), and read the <head>. It is exact about the one page you have open --
whether a canonical tag exists, whether its href is absolute, whether it points at the right domain.
It tells you nothing about the page that tag points at, because checking that means fetching a second
URL, and view-source only ever shows you the page you already loaded.
| Page checked | Its canonical tag | view-source shows | This tool shows |
|---|---|---|---|
/old-guide/ | <link rel=canonical href="https://example.com/guide/"> | One absolute, same-domain canonical tag — nothing wrong with it | Same tag, plus: the target it names is itself marked noindex |
Viewed in view-source, /old-guide/'s canonical tag has nothing wrong with it: one tag, absolute
URL, same domain, same protocol. Every check you could run against that markup alone passes. This tool fetches
/guide/ too — the page the canonical actually names — and reads what it says about
itself. In the worked example below, /guide/ carries a noindex meta robots tag. The
canonical on /old-guide/ is the instruction "index /guide/ instead of me"; the target
page is saying "do not index me." Neither page, read alone, shows that contradiction — the practical
effect is usually that neither page ends up indexed at all.
| Question | Where to answer it |
|---|---|
| Does this one page have a canonical tag, and does it look sane on its face? | Either method answers this correctly; view-source is the faster route for a single, familiar page. |
| Does the URL that canonical points at actually resolve, and is it marked indexable? | This tool — it makes the second fetch for you and reads the target's status code and meta robots. view-source has no way to follow a link to a different URL. |
| I just want to confirm a typo-free canonical href on a page I'm actively editing. | view-source — no need to leave the editor for a one-off spot check with no target-page question attached. |
| I migrated a batch of URLs and want to confirm none of the new canonical targets are accidentally noindexed. | This tool — checking each target by hand means opening every one in a second tab and reading its meta robots yourself, for every URL in the batch. |
This tool needs no account: it is a static report viewer, and the fetches happen from the zero-dependency CLI on your own machine, never through this site.
View-source (or a browser's Elements panel) shows you the one page you already have open. It is exact about that page's own markup: whether there is a canonical tag, whether its href is absolute, whether it points at the right domain. It tells you nothing about the page the canonical points at, because that is a different URL you have not fetched -- and a canonical tag is only doing its job if the page it names is actually indexable.
A migrated blog post at /old-guide/ carries one canonical tag, absolute, same domain, same protocol, naming https://example.com/guide/. Viewed in view-source, that tag has nothing wrong with it. Fetching /guide/ as well -- what this tool does automatically -- shows that page carries a noindex meta robots directive. The canonical on /old-guide/ is telling search engines "index /guide/ instead of me," and /guide/ is telling them "do not index me." Neither page, read alone, shows the contradiction.
About the one page you opened, yes -- it will not miss a malformed tag or a typo in the href. What it cannot do is follow a link and check what is on the other end, because that is a second HTTP request to a second URL, and a browser's view-source has no reason to make one. This tool makes that second request itself, reads the target's own meta robots and status code, and reports back whether the canonical actually resolves to something indexable.
No. You still choose which URL to check, and you still decide what to do about a finding -- this does not edit anything. What it removes is the step of manually opening a second tab, fetching the canonical target yourself, and reading its meta robots or status code by eye, for every page whose canonical you want to trust.
Verified against this tool's own worked example (a canonical whose target carries a noindex directive): the finding it reports is "Canonical target is itself marked noindex."
← Back to the Canonical Tag Checker · already running a whole-site crawl? See how this compares to Screaming Frog SEO Spider instead.