Start here
Before You Fix It: What This Check Means
Canonical tags tell search engines which URL should own ranking/indexing signals when duplicates exist. In plain terms, this checks whether search engines are being pointed at the preferred URL for this page. Scavo reads `link[rel="canonical"]` from the scanned page and applies structural checks.
Why this matters in practice: incorrect signals here can dilute indexing clarity and search traffic quality.
How to use this result: treat this as directional evidence, not final truth. Search indexing outcomes depend on crawler recrawl cadence and ranking systems outside your direct control. First, confirm the issue in live output: verify raw HTML output and crawler-facing validators Then ship one controlled change: Emit one canonical tag per indexable page. Finally, re-scan the same URL to confirm the result improves.
TL;DR: Without canonical tags, Google can't tell which version of your pages to rank, splitting your authority across duplicates.
When multiple URLs serve the same content (with and without trailing slashes, query parameters, HTTP vs HTTPS), search engines either index all versions — wasting crawl budget and diluting rankings — or pick the wrong one as canonical. A single rel=canonical tag consolidates all link equity to the version you choose and prevents indexing bloat.
What Scavo checks (plain English)
Scavo reads link[rel="canonical"] from the scanned page and applies structural checks.
Exact logic:
Fail: no canonical tag found.Warning: more than one canonical URL is declared.Warning: canonical URL is not absolutehttp/https.Warning: canonical URL contains a fragment (#...).Warning: canonical host differs from the scanned page host.Pass: canonical exists and none of the above structural issues are present.
Scavo also records canonical count, canonical URL(s), and host alignment in details.
How Scavo scores this check
Scavo assigns one result state for this check on the tested page:
- Pass: baseline signals for this check were found.
- Warning: partial coverage or risk signals were found and should be reviewed.
- Fail: required signals were missing or risky behavior was confirmed.
- Info: Scavo could not gather enough reliable evidence on this run to score pass/fail confidently.
In your scan report, this appears under What failed / What needs attention / What is working for canonical_tag, followed by Recommended next steps and Technical evidence (for developers) when needed.
- Scan key:
canonical_tag - Category:
SEO
Why fixing this matters
Google uses canonicals as a strong consolidation hint. If canonical signals are missing or inconsistent, duplicate URLs can split signals and crawl effort.
You can still intentionally canonicalize across hosts during migrations, but this should be deliberate and audited.
Common reasons this check fails
- Template forgot to render canonical on some routes.
- A plugin outputs a second canonical tag.
- Relative canonical values like
/pageare emitted. - Fragmented canonicals like
https://example.com/page#sectionare generated. - Staging or old-domain host appears in canonical after deployment.
If you are not technical
- Ask for a template-level canonical fix, not manual per-page patching.
- Request examples from at least three page types (home, detail page, archive).
- Confirm the canonical host matches your production domain policy.
- Re-run the scan and verify status improves.
Technical handoff message
Copy and share this with your developer.
Scavo flagged Canonical URL (canonical_tag). Please ensure each page outputs exactly one absolute http/https canonical URL with no fragment, and verify host alignment for this URL. Share source proof and re-run the scan.If you are technical
- Emit one canonical tag per indexable page.
- Use absolute URLs consistently.
- Remove fragment identifiers from canonical values.
- Keep canonical output centralized in your main layout/template.
- Use cross-host canonicals only for intentional consolidation scenarios.
Example
<link rel="canonical" href="https://www.example.com/pricing" />
How to verify
- View source and confirm one canonical tag only.
- Confirm canonical URL is absolute and final.
- Check host alignment against your canonical domain strategy.
- Inspect in Search Console URL Inspection for canonical interpretation.
- Re-run Scavo and confirm
Pass.
What this scan cannot confirm
- It does not prove canonical target content is truly equivalent.
- It does not validate full sitewide canonical consistency.
- It does not evaluate redirect chains beyond this page-level structural signal.
Owner checklist
- [ ] Set one canonical policy owner (SEO + platform).
- [ ] Document canonical rules for params, pagination, and faceted URLs.
- [ ] Add regression tests for duplicate canonical output.
- [ ] Review canonical host after domain or CDN migrations.
FAQ
Is a missing canonical always fatal for SEO?
Not always, but it increases ambiguity. On sites with URL variants, missing canonicals can materially hurt consolidation.
Are cross-domain canonicals always wrong?
No. They can be valid for syndicated or migrated content, but accidental cross-host canonicals are common and risky.
Why does Scavo warn about #fragment canonicals?
Fragments identify in-page locations, not canonical document identity. Canonical URLs should point to the clean document URL.
Should canonical always match the current URL exactly?
Usually yes for self-canonical pages. Exceptions exist (intentional consolidation), but they should be explicit and documented.
Sources
- Google Search Central: How to specify a canonical URL
- RFC 6596: The Canonical Link Relation
- Google Search Central: SEO starter guide
Need help defining canonical rules for faceted/filter pages? Send support a few live examples and expected canonical targets.