🔴 Broken — will cause problems

The canonical tag on this page uses a relative URL: href="/canonicals/incorrect-relative-url/". It is missing the scheme and domain. Check view-source on this page to see the live broken tag.

What this demonstrates

The canonical tag on this page uses a relative URL path — /canonicals/incorrect-relative-url/ — instead of the required absolute URL. The canonical specification requires a full absolute URL including scheme (https://), domain, and path.

Why it matters

A relative canonical may be interpreted inconsistently across crawlers. Some will resolve it correctly by inferring the base domain from the request context. Others won't. The behaviour can also vary depending on whether the page is served over HTTP or HTTPS, through a CDN, or via a proxy — any of which might affect how the relative URL is resolved.

It's a risk that's trivially easy to avoid. There's no good reason to use a relative canonical — always use the full absolute URL.

The code

The incorrect tag on this page versus the correct absolute URL version.

<!-- Incorrect: relative URL — missing scheme and domain --> <link rel="canonical" href="/canonicals/incorrect-relative-url/"> <!-- Correct: absolute URL with full scheme and domain --> <link rel="canonical" href="https://sallymills.com/canonicals/incorrect-relative-url/">

What Google does

  1. Googlebot fetches this page and reads the canonical tag.
  2. The canonical href is a relative path: /canonicals/incorrect-relative-url/.
  3. Google may resolve the relative URL correctly by prepending the domain it crawled the page from — but this is not guaranteed.
  4. In edge cases — CDN serving, proxies, protocol mismatches — the relative URL may resolve to an unintended destination or be ignored entirely.
  5. The canonical hint is treated as unreliable. Google may fall back to its own canonical selection.

How to detect it

  • view-source Ctrl+U (Windows) / Cmd+U (Mac) → search for canonical → the href value will start with / rather than https://. That's the tell.
  • curl Open Command Prompt (Windows) or Terminal (Mac) and run: curl -L https://sallymills.com/canonicals/incorrect-relative-url/ | grep canonical — The canonical tag in the raw HTML will show the relative path without scheme or domain. (Windows: replace | grep canonical with | findstr canonical.)
  • Google Search Console May appear under Coverage as "Alternate page with proper canonical tag" if Google resolved the relative URL — or under "Crawled — currently not indexed" if it couldn't.
  • Screaming Frog Canonicals tab → filter by "Relative Canonical" — this page will appear in that filter. The "Canonical URL" column will also show the resolved absolute URL Screaming Frog inferred from the relative path.

How to fix it

Always use absolute URLs in canonical tags — including the scheme (https://), the full domain, and the path. Never use a relative path or a protocol-relative URL (//example.com/page/).

<!-- Correct: always absolute --> <link rel="canonical" href="https://sallymills.com/canonicals/incorrect-relative-url/">