Canonical tag not pointing at the page itself
What is this issue?
This issue checks whether every indexable page on your website includes a self-referencing canonical tag that points to its own preferred URL.
A self-referencing canonical tag tells search engines "this page is the preferred version of itself." For this check to pass:
- Every indexable page must have a canonical tag
- The canonical URL should point to the same page (self-reference), not to a different page
- The canonical URL should match the preferred URL format for that page
Example: If your page's preferred URL is https://example.com/blog/post, the canonical tag should be <link rel="canonical" href="https://example.com/blog/post">.
Why it matters
Self-referencing canonicals are important for:
- Indexability: They explicitly tell search engines which URL should be indexed for each page
- Duplicate content: They prevent search engines from choosing a different canonical when similar or duplicate pages exist
- Rankings: They consolidate ranking signals to the preferred URL, even when other URL variants exist
When pages don't have self-referencing canonicals, search engines may:
- Choose a different URL as canonical (e.g., with tracking parameters, different casing, or trailing slash variants)
- Split ranking signals across multiple URL variants
- Have difficulty determining the preferred version of a page
Resolving this issue improves your SEO health score by ensuring each page clearly declares its preferred URL.
How to fix it
Audit your pages: Crawl your website to identify pages missing canonical tags or with canonicals pointing to different URLs.
Add self-referencing canonicals: Add a canonical tag to every indexable page that points to that page's own preferred URL.
Use absolute URLs: Make sure canonical URLs are absolute (starting with
https://) rather than relative.Be consistent: Ensure the canonical URL matches the page's preferred format (protocol, trailing slash, casing, etc.).
Update templates: Configure your CMS or framework to automatically generate self-referencing canonicals for every page.
Avoid pointing to other pages: Unless the page is truly a duplicate, the canonical should point to itself, not to a different page.
Test your changes: Recrawl your site to verify all indexable pages now have proper self-referencing canonical tags.
Examples
Example 1: Correct self-referencing canonical
Scenario: A page with a proper self-referencing canonical tag.
Passes because:
- Page has a canonical tag
- Canonical points to the same URL as the page itself
- URL format is consistent
<!-- URL: https://example.com/blog/post -->
<link rel="canonical" href="https://example.com/blog/post" />Example 2: Missing canonical tag
Scenario: A page without any canonical tag.
Fails because:
- No canonical tag is present
- Search engines must guess the preferred URL
- Other URL variants may be chosen as canonical
<!-- URL: https://example.com/blog/post -->
<!-- No canonical tag present -->Corrected version:
<link rel="canonical" href="https://example.com/blog/post" />Example 3: Canonical pointing to different page
Scenario: A page with canonical pointing to a different URL.
Fails because:
- Canonical points to a different page
- This suggests the page is a duplicate of another
- Not appropriate unless the page is truly a duplicate
<!-- URL: https://example.com/blog/post?utm_source=twitter -->
<link rel="canonical" href="https://example.com/blog/post" />Note: This is actually correct for tracking parameters. The issue would be if a unique page pointed to a different unique page.
How PixyScan detects this
PixyScan identifies missing or incorrect self-referencing canonicals through these steps:
Fetches the page: PixyScan requests the URL and follows redirects to get the final URL.
Extracts the canonical: The system parses the HTML and extracts the canonical URL from the
<link rel="canonical">tag.Normalizes URLs: PixyScan normalizes both the final URL and canonical URL by:
- Standardizing protocol and host casing
- Handling trailing slashes consistently
- Resolving relative URLs to absolute URLs
Compares URLs: The system checks whether the canonical URL matches the final URL after normalization.
Flags issues: PixyScan triggers warnings when:
- A page doesn't have a canonical tag
- The canonical points to a different URL (not self-referencing)
- There's a URL normalization mismatch between the page and its canonical
The detection uses only HTTP response data and raw HTML—no JavaScript execution is used.
What we store
Storage Level
Page Level
Database Table / Prisma Model
PageSeoBasicsData
Stored Fields
| Field | Type | Description |
|---|---|---|
| canonicalUrl | String? | The canonical URL of the page |
Detection Dependencies
- HTML Document
- HTTP Response Headers