Skip to content

Test your website now

Free, no card. We read only public pages.

Run free audit →

SEO · Medium severity

Canonical Pointing to Another Domain: Check the Intended URL

Review a canonical pointing to another domain. Check duplicate-content intent, repair production URL settings, and align links, sitemaps and canonical signals.

Published · Updated

What the check tests

Check
seo.canonical.same-site - Canonical points to this site
Passes when
rel=canonical should reference the same registrable domain unless syndication is intended.
Scope
graded on every page crawled
Severity
Medium
Fix effort
small - under an hour
Impact when fixed
medium

In one paragraph

A canonical pointing to another domain signals that a different URL should represent duplicate or very similar content. That can be intentional, but a wrong production base URL can unintentionally point every page away from your site. Inspect the destination and content relationship before changing it. Canonical is a strong preference signal, not a guaranteed instruction to index or rank another URL.

Why it matters

Search engines select a representative URL when content is available at several addresses. A rel="canonical" annotation helps state your preferred representative and can support consolidation of relevant signals. Google still evaluates other evidence and can select a different canonical.

Common accidental causes include a copied template, staging hostname left in production configuration, or an old domain preserved after migration. The fix often belongs in one shared URL-generation setting rather than hundreds of manual page edits.

A different host is not automatically a different business, and same ownership is not proof that two pages should be consolidated. A legitimate cross-host architecture can be deliberate. Translations and genuinely distinct pages generally need their own appropriate canonical treatment rather than being collapsed just to make a check pass.

How WebAuditOS evaluates this finding

The supplied rule resolves HTML canonical href values and compares their hostname with the scanned site's hostname, ignoring a leading www. Same host passes; another host or an unparseable canonical fails at medium severity. No canonical is not graded here.

It reads served HTML on eligible HTML responses, not canonical HTTP Link headers. Scheme and port are not part of this host comparison, while sibling subdomains count as different. A same-host HTTP canonical can therefore pass this rule despite conflicting with the intended HTTPS URL. The result does not validate destination status, equivalence, or Google's selected canonical.

How to fix it

  1. Inspect the actual annotation in the final page source and any canonical response header or runtime output. Record the full resolved destination, not just the hostname highlighted by the finding.
  2. Determine the preferred location for this content. Check whether the target is a real equivalent, an obsolete domain, a preview environment, or a deliberate representative. Document intentional cross-host consolidation before making bulk changes.
  3. For a normal standalone production page, generate the clean preferred absolute URL in the head. For example:
<link rel="canonical" href="https://example.com/pricing">

Replace the example with the real page URL. Do not paste the same homepage canonical into every route.

  1. Fix the shared source of the host: CMS site settings, framework metadata base, environment variables, or template configuration. Do not build public canonical URLs from unvalidated arbitrary request hosts.
  2. Align other signals. Internal links and sitemap entries should normally use preferred URLs, and deprecated duplicate URLs can redirect when appropriate. Keep language alternates and canonical choices coherent rather than canonicalising every translation to one language.
  3. Avoid contradictory canonical sources. Google supports HTML and HTTP-header annotations, but maintaining both can introduce disagreements. Prefer a clear consistent implementation rather than adding duplicate methods merely to satisfy a scanner that sees one.
  4. Test deep pages, pagination, parameterised variants, and preview environments. Ensure valid production pages do not all point to one destination or an inaccessible target.
  5. Deploy, recrawl representative URLs, and inspect available Search Console canonical information. Selection and indexing can take time and remain Google's decision. Rescan while retaining any intentional exception with its reason.

What the fix can break

Changing a legitimate representative can alter consolidation and the URLs shown in search. Evaluate current signals and intent rather than automatically replacing every cross-host canonical with self-reference.

A wrong template can propagate rapidly. Sample multiple route types before publishing a global setting, and preserve rollback information.

Do not use a canonical to hide distinct pages solely because their titles are similar. Nor should a robots.txt block be used to force canonical selection: blocked content can leave search engines without the evidence you intended them to read.

Questions

Is every cross-domain canonical wrong?

No. It can be intentional for equivalent content, but requires a justified representative and consistent signals. The scanner cannot infer that intent.

Does Google have to follow the annotation?

No. It is a strong signal among others, not an absolute instruction or an indexing guarantee.

Why does an owned subdomain fail?

The supplied comparison treats it as another host. Ownership alone does not determine canonical equivalence.

Review missing canonicals, noindex, and the indexing checklist.

In the report

Test this on your own site

Every scan runs seo.canonical.same-site on every page it crawls, on every plan. The finding carries this id, so a line in a report can be matched to the explanation above - and the free scan needs no account.