- Home
- GEO Factors
- Technical
- Canonical Conflicts
Canonical Conflicts
Detects conflicting or redundant canonical tags that send mixed signals to AI engines about which page version is authoritative.
Why It Matters for AI Visibility
How We Score It
How to Improve
- 1
Fix protocol mismatches between page and canonical
If your page loads on HTTPS but your canonical tag points to HTTP, that is a high-severity conflict costing 3 points. Update the canonical to use `https://`. This is the most common conflict on sites that migrated to HTTPS but did not update their canonical tags.
- 2
Remove duplicate canonical tags
Having more than one `<link rel="canonical">` tag on a page is a high-severity conflict. Search your HTML output for multiple canonical tags -- this often happens when a CMS adds one and a plugin adds another. Keep only one self-referencing canonical tag per page.
- 3
Consolidate www and non-www URLs
If your page is at `https://example.com/page` but your canonical points to `https://www.example.com/page`, that is a medium-severity mismatch. Pick one format (www or non-www) and enforce it site-wide with 301 redirects. Update your canonical tags to match the chosen format.
- 4
Remove query parameters from canonical URLs
Canonical URLs should be clean, without query strings. If your canonical is `https://example.com/page?utm_source=twitter`, the query parameter triggers a medium-severity conflict. Set canonical tags to the clean URL path without tracking or filter parameters.
- 5
Ensure your canonical URL appears in your sitemap
The analyzer cross-references your canonical URL against your sitemap.xml. If the canonical URL is missing from the sitemap, that is a medium-severity conflict. Add all canonical URLs to your sitemap and remove non-canonical variants to send consistent signals.
Before & After
<!-- HTTPS page with HTTP canonical (protocol mismatch) --> <link rel="canonical" href="http://www.example.com/products/widget"> <!-- Second canonical tag added by plugin (multiple canonicals) --> <link rel="canonical" href="https://example.com/products/widget/">
<!-- Single, self-referencing HTTPS canonical --> <link rel="canonical" href="https://example.com/products/widget">
Code Examples
Correct self-referencing canonical tag
<link rel="canonical" href="https://example.com/products/widget">Nginx redirect for www to non-www consolidation
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}Apache redirect for trailing slash consistency
# Remove trailing slashes (choose one standard)
RewriteEngine On
RewriteRule ^(.+)/$ /$1 [R=301,L]Frequently Asked Questions
How is this different from the basic Canonical URLs factor?
The basic Canonical URLs factor checks whether a canonical tag exists and matches the page URL. This factor goes deeper -- it detects conflicts between the canonical and other signals like sitemap entries, internal links, and protocol/www consistency. It also identifies URL variant clusters that create duplicate content risk.
What is a duplicate cluster and why does it matter?
A duplicate cluster is a set of URLs that point to the same content -- with and without www, with and without trailing slashes, with query parameters. Larger clusters mean AI engines must guess which URL is authoritative, reducing their confidence in citing any single version.
My e-commerce site has product pages with query parameters. Is that a problem?
Only if those query-parameterized URLs create duplicate content. Ensure all variant URLs canonicalize to a single clean URL without parameters. The analyzer flags query parameters in canonical URLs as a medium-severity issue, so keep canonicals clean and let the actual pages handle parameters separately.
Check Your GEO Score
Run a free analysis on your website and see how you score across all 52 factors.
Analyze My SiteCrawl Trust