Skip to content
Issue docs

Canonical tag not pointing at the page itself

Importantself_referencing_canonicalIssue 73

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

  1. Audit your pages: Crawl your website to identify pages missing canonical tags or with canonicals pointing to different URLs.

  2. Add self-referencing canonicals: Add a canonical tag to every indexable page that points to that page's own preferred URL.

  3. Use absolute URLs: Make sure canonical URLs are absolute (starting with https://) rather than relative.

  4. Be consistent: Ensure the canonical URL matches the page's preferred format (protocol, trailing slash, casing, etc.).

  5. Update templates: Configure your CMS or framework to automatically generate self-referencing canonicals for every page.

  6. Avoid pointing to other pages: Unless the page is truly a duplicate, the canonical should point to itself, not to a different page.

  7. 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:

  1. Fetches the page: PixyScan requests the URL and follows redirects to get the final URL.

  2. Extracts the canonical: The system parses the HTML and extracts the canonical URL from the <link rel="canonical"> tag.

  3. 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
  4. Compares URLs: The system checks whether the canonical URL matches the final URL after normalization.

  5. 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

Further reading