Go-Live Clearance

On-page SEO · Canonical URL

Canonical Tag Checker

Without a <link rel="canonical"> tag, Google may index multiple URL variants of the same page — www vs non-www, with/without trailing slash, HTTP vs HTTPS — and split your ranking signals across them. Paste your URL and we verify canonical exists and points to the right place, then stamp CLEARED / HOLD / DENIED.

How to check canonical tags and common canonical issues

These silently dilute SEO value. You won't see an error — just slower ranking and fragmented authority.

  • Missing canonical tag entirely

    Search engines guess which URL variant to index. www and non-www versions both get indexed, splitting link equity and causing duplicate content issues.

  • Canonical points to a preview/staging domain

    rel=canonical still pointing at *.vercel.app or a staging URL. Google indexes the wrong domain and your production URL never accumulates authority.

  • Canonical is a relative URL

    Some platforms render relative canonical URLs (/page instead of https://...). Crawlers may resolve them incorrectly, especially across subdomains.

  • Conflicting canonical and og:url

    When rel=canonical and og:url point to different URLs, social platforms and search engines disagree on the canonical version.

  • Canonical points through a redirect

    A declared canonical should resolve directly to the preferred 200 URL. Redirecting canonicals add ambiguity and make audits harder to interpret.

  • Alternative page with a proper canonical tag

    Search Console may exclude a duplicate URL when it correctly points to another canonical page. Confirm the selected destination is the preferred 200 URL before treating the exclusion as an error.

Copy-paste canonical fixes

Always use absolute HTTPS production URLs in canonical tags.

Next.js App Router — metadata API

export const metadata = {
  alternates: {
    canonical: 'https://yourdomain.com/',
  },
}

Plain HTML

<head>
  <link rel="canonical" href="https://yourdomain.com/" />
</head>
<!-- Must be absolute, HTTPS, production domain -->

Per-page canonical (Next.js)

// app/blog/post-1/page.tsx
export const metadata = {
  alternates: {
    canonical: 'https://yourdomain.com/blog/post-1',
  },
}

Still check by hand

  • Canonical must be an absolute URL (https://yourdomain.com/...)
  • Ensure it never points at preview or staging hosts
  • Use one canonical per page — don't chain redirects through canonicals
  • Verify with URL Inspection in Search Console after deploy
  • Compare the declared canonical with Google's selected canonical in Search Console
  • Treat 'alternative page with proper canonical tag' as expected when the destination is intentional

Related