Canonical tags are one of the most misunderstood SEO signals — and one of the most impactful to get right. A single broken canonical can split your traffic between duplicate URLs for months. Here is how to check every page in minutes.
Updated August 2026 · 5 minute read
A canonical URL (<link rel="canonical" href="...">) tells search engines which version of a page is the definitive one. Without it, Google has to guess — and it often guesses wrong, especially on sites with URL parameters, multiple paths to the same content, or syndicated articles. The result is diluted ranking signals and lower organic performance.
All backlinks, shares and engagement on duplicate URLs should flow to one canonical page. Without a canonical, each duplicate competes rather than contributes.
Google penalises nothing for duplicate content — but it does split the index across duplicates, so none ranks as strongly as a single consolidated page would.
Canonical tags let you choose whether /blog/post or /blog/post?ref=share or /2024/blog/post appears in results. Without one, Google picks for you.
| # | Issue | What to check | Fix |
|---|---|---|---|
| 1 | Missing canonical tag | Does the page have <link rel="canonical"> at all? | Add a self-referencing canonical to the <head> of every indexable page. |
| 2 | Non-self-referencing canonical | Does the canonical point to this page or to a different page? | If this is the canonical version, it should reference itself. |
| 3 | Relative canonical URL | Is the href an absolute URL or relative path? | Always use absolute URLs — https://example.com/page, not /page. |
| 4 | Canonical chain loop | A canonicals to B, B canonicals to A. | Break the loop. Trace the chain to a single final destination. |
| 5 | Canonical + noindex together | Does the page have both a canonical tag and noindex? | Remove one: Google treats the pair as noindex and ignores the canonical. |
| 6 | Cross-domain canonical to wrong domain | Does the canonical point to a domain you don't control? | Unless you are deliberately syndicating, keep canonicals on your own domain. |
| 7 | HTTP→HTTPS mismatch | Canonical points to http:// on an HTTPS site. | Update to the HTTPS version. Mixing protocols confuses the signal. |
| 8 | Trailing slash mismatch | Canonical includes /page/ but the page URL is /page (or vice versa). | Be consistent. Pick one convention and stick to it site-wide. |
Inspecting the canonical tag on each page by hand is feasible for five pages — not for fifty or five hundred. The free, open-source page-profile CLI checks canonical presence, self-reference status, absolute URL format and more against any URL:
npx page-profile https://example.com # single page report
npx page-profile --urls-from-file urls.txt # batch check all pages (Pro)
npx page-profile --compare prod.html staging.html # diff canonicals (Pro)
Canonical presence, absolute vs relative, self-referencing — each gets a pass/warn/fail so you triage instead of reading raw HTML.
Feed it your sitemap URLs or a text file and check every page in one pass. Pro feature with HTML report output.
Your client URLs never leave your machine. No account, no upload, no data stored on a server.
When you run page-profile against a URL, it extracts the canonical tag from the page <head> and checks:
<link rel="canonical"> tag?Each check scores pass, warn or fail so you know what to fix and in what order. The free version handles single pages; Pro adds batch scanning across your entire sitemap and produces a shareable HTML report.
A canonical URL is a tag in the
of a page that tells search engines which version of a page is the authoritative one. When you have duplicate or near-duplicate pages (same content at different URLs), the canonical tag prevents search engines from splitting ranking signals between them.They consolidate ranking signals — links, content, and authority — to one preferred URL. Without them, Google may pick the "wrong" URL as canonical, split PageRank across duplicates, or index dozens of near-identical pages instead of one. A single misconfigured canonical is rarely fatal, but systematic errors across a site silently cap your organic performance.
A canonical URL that points to the page itself. Every indexable page should have a self-referencing canonical. Even if nothing is duplicated, it is the strongest signal that this page is the version you want ranked. Many CMS platforms (WordPress, Shopify, Webflow) set these automatically, but static generators, legacy sites and hand-coded pages often omit them.
Use canonical when you have multiple URLs showing the same content and you want one of them to rank. Use noindex when you want a page out of search results entirely. They solve different problems: canonical consolidates, noindex excludes. Combining them (canonical + noindex) is treated by Google as a noindex — the canonical is ignored.
The simplest way is to inspect the
of each page: look for<link rel="canonical" href="...">. For more than a handful of pages, use a CLI tool like page-profile which checks canonical presence, validity and conflicts across a list of URLs automatically.Yes, Google supports cross-domain canonicals — often used when syndicating content or when the same article appears on two domains you own. Most other search engines ignore cross-domain canonicals, so use this only when absolutely necessary.
A canonical conflict (A canonicals to B, B canonicals to A) is one of the worst SEO mistakes. Search engines see a loop and may pick neither, leaving all duplicate versions in the index without consolidated ranking. Always ensure canonical chains are acyclic and point to the definitive URL.
Yes. page-profile reports whether a canonical tag is present, whether it is self-referencing, and flags potential issues. The free version checks one URL at a time; Pro adds batch mode for scanning your whole sitemap.
Related: Hreflang Guide