- Home
- GEO Factors
- Technical
- Canonical URLs
Canonical URLs
Validates your canonical tag to ensure AI engines know which version of a page is authoritative. Prevents duplicate content confusion.
Why It Matters for AI Visibility
How We Score It
How to Improve
- 1
Add a self-referencing canonical tag to every page
Every page should include `<link rel="canonical" href="https://yourdomain.com/current-page">` in the head. The canonical URL should exactly match the page's preferred URL. This is the single highest-impact fix -- going from no canonical (score 0) to a matching canonical (score 10) in one line of HTML.
- 2
Ensure the canonical uses HTTPS, not HTTP
If your site uses HTTPS but your canonical tag references `http://`, AI engines receive conflicting protocol signals. Always use the HTTPS version in your canonical tag. Check your CMS settings -- some generate HTTP canonicals by default even on HTTPS sites.
- 3
Match the canonical to your preferred www/non-www format
If your site uses `example.com` (no www), your canonical should also use `example.com`. A canonical pointing to `www.example.com` when the page loads at `example.com` creates a mismatch. Pick one format and enforce it everywhere with redirects and consistent canonical tags.
- 4
Audit pages with same-domain canonical pointing elsewhere
A canonical pointing to a different path on the same domain scores a 5. This is sometimes intentional -- parameter variations canonicalizing to a clean URL -- but it can also indicate misconfiguration. Review these pages to confirm the canonical target is correct and that you intended the analyzed page to be non-canonical.
Before & After
<head> <title>10 Tips for Better API Design</title> <!-- No canonical tag. Score: 0 --> </head>
<head> <title>10 Tips for Better API Design</title> <link rel="canonical" href="https://example.com/blog/api-design-tips"> <!-- Score: 10 (canonical matches page URL) --> </head>
Code Examples
Self-referencing canonical (best practice)
<link rel="canonical" href="https://example.com/blog/api-design-tips">Cross-domain canonical for syndicated content
<!-- Only use when content is republished from another site -->
<link rel="canonical" href="https://original-publisher.com/article">Next.js dynamic canonical generation
export function generateMetadata({ params }) {
return {
alternates: {
canonical: `https://example.com/${params.slug}`,
},
};
}Frequently Asked Questions
Why does a same-domain canonical to a different path score 5?
It is not necessarily wrong. You might intentionally canonicalize a URL variant (like a filtered product page) to the primary version. But it means the page you analyzed is not the preferred version, so the score reflects that ambiguity. Verify it is intentional, or analyze the canonical target URL instead.
Should every page have a canonical tag?
Yes. Every page should have a self-referencing canonical tag at minimum. This prevents AI engines from guessing which URL version is authoritative. Even if your site has no duplicate content issues, a canonical tag is a definitive signal that costs nothing to implement.
Does the canonical tag need to be an exact URL match?
The analyzer normalizes trailing slashes and case, so `https://example.com/page/` and `https://example.com/Page` are treated as equivalent. But protocol (HTTP vs HTTPS) and domain (www vs non-www) must match. Always use your preferred, production-ready URL format in canonical tags.
Check Your GEO Score
Run a free analysis on your website and see how you score across all 52 factors.
Analyze My SiteXML Sitemap
NextMeta Tags Quality