Issue #174 · important
Issue 174
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 does it matter?
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.