The tag, next to the URL you asked for
A canonical on its own means nothing. A canonical beside the URL that returned it means everything.
-
01
The canonical each page declares
Read out of the HTML exactly as written, absolute or relative, with no normalising and no cleaning up on the way to the table.
-
02
Requested URL and canonical side by side
Both columns in the same row, so a mismatch across twenty-five pages is a sort rather than an investigation.
-
03
The robots directive in the same row
A canonical and a noindex are separate signals that get confused for each other constantly. Seeing both together is usually enough to end the argument.
-
04
Status codes and the rest of the head
A canonical on a page that returns a 404 or redirects elsewhere is a different problem, and the status column tells you which problem you have.
Five ways a canonical goes wrong
All five are common, all five are quiet, and all five are visible in one column.
-
No canonical at all
Not fatal, but it leaves the decision to a search engine on any page reachable at more than one address, which most pages are.
-
A whole section canonicalised to the homepage
A plugin default that quietly removes every page below it from the index. It is the single most expensive item on this list.
-
A canonical pointing at staging or preview
It happens at launch, it survives for months, and it points a public page at a domain nobody outside the team can reach.
-
Trailing slash and protocol mismatches
A page and the same page with a trailing slash are two URLs. A canonical naming the other one is small, common and real.
-
A canonical and a noindex on the same page
Two contradictory instructions. Google resolves the contradiction however it prefers, which is another way of saying you no longer decide.
What it will not tell you
Stated here rather than discovered later.
-
01
It reads the tag, it does not judge it
Whether the canonical you declare is the right one is a question about your site's structure, and the answer is not on the page.
-
02
Canonicals sent as an HTTP header are not read
A canonical delivered as a Link header rather than in the HTML is invisible here. That method is rare outside PDFs and APIs, but it is not nothing.
-
03
Static HTML only
A canonical written by JavaScript after load is not in the HTML the server sent. Whether search engines pick those up reliably is a separate and older argument.
-
04
Twenty-five URLs per run
It runs in a browser tab. Canonical problems are usually site-wide, so use this to confirm a pattern, then fix it at the template.
Reasonable questions
Should every page have a self-referencing canonical?
It is the safe default and most platforms add one automatically. It costs nothing and it removes the ambiguity on any page reachable at more than one address.
Is a canonical an instruction or a hint?
A hint. Google treats it as one signal among several and will overrule a canonical it disagrees with. That is exactly why pairing one with a noindex is a bad idea: you are guessing which signal wins.
What is the difference between a canonical and a redirect?
A redirect sends the visitor somewhere else. A canonical leaves the page where it is and tells search engines which version to index. Use a redirect when the page should not exist; use a canonical when it should exist but should not be indexed separately.
Why does my canonical not appear in the table?
Either it is set by JavaScript after the page loads, or it is sent as an HTTP Link header rather than written into the HTML.
Canonicals are one column of the checker
The same run returns titles, meta descriptions, headings, word counts, links, images and structured data as well. It is one tool with seven tables and seven CSV exports, not seven separate tools you have to run one after another.
Other checks the same tool runs: Bulk SEO checker, Meta tag checker, Heading checker, Alt text checker, Word count checker, Open Graph checker, Schema checker