Canonical tags and hreflang on your business website: how to rank each language without duplicate content

Canonical tags and hreflang on your business website: how to rank each language without duplicate content
Published on 21/09/2026

If your business website is available in multiple languages, Google needs to know which version of each page is the "official" one and how they relate to each other. Without that signal, the same URL can be indexed twice, you can lose rankings in one market, or English pages can appear to users searching in Spanish.

Canonical and hreflang tags solve this. They are not technical decoration: they are the foundation for a multilingual website that performs in search. Here is what each tag does, how to implement them, and which mistakes to avoid.

What the canonical tag is and why it matters

The rel="canonical" tag tells search engines which URL is preferred when several similar versions of the same page exist — for example, a URL with campaign parameters, a print version, or a copy on another subdomain.

Without a canonical, Google chooses for you — and it does not always choose well. The result: diluted authority, pages competing against each other, and confusion in Google Search Console reports.

On a business website, the canonical should usually point to the clean, definitive URL of each page: no utm_ parameters, no duplicate trailing slashes, and no HTTP and HTTPS versions live at the same time.

What hreflang is and when you need it

hreflang tells Google which language or regional version corresponds to each URL. It is essential if you have:

  • The same page in Spanish, English and Catalan (common for B2B sites in Spain).
  • Regional variants: Spain vs. Mexico, UK vs. US.
  • Translated content, not just duplicated with a currency change.

Without hreflang, search engines may index the wrong version for each market or treat translations as duplicate content.

Developer implementing canonical and hreflang tags in the HTML code of a multilingual corporate website

Key differences: canonical vs. hreflang

Both tags live in the <head>, but they serve different purposes:

  • Canonical: "This is the main URL for this content." It resolves duplicates within the same language or context.
  • Hreflang: "This URL is the [language/country] version; the other versions are here." It connects translations to each other.

They can coexist on the same page. The usual pattern: each language version has its own canonical (pointing to itself) and an hreflang block linking all variants, including an x-default for users without a clear language preference.

How to implement canonical correctly

  1. One canonical per page. Never duplicate the tag with different values.
  2. Absolute URLs. Use https://yourdomain.com/path, not relative paths.
  3. Consistency with your sitemap. URLs in your XML sitemap should match your canonicals.
  4. Avoid chains. Page A should not canonicalise to B if B canonicalises to C.
  5. Review after migrations. After a domain or structure change, update canonicals and 301 redirects together.

How to configure hreflang in practice

There are three valid methods; pick one and stay consistent:

  • HTML tags in the <head>: <link rel="alternate" hreflang="en" href="..." /> for each language.
  • HTTP headers: Useful for PDFs or non-HTML resources.
  • XML sitemap: <xhtml:link rel="alternate" hreflang="..." /> blocks inside each URL entry.

Rules Google requires:

  • Each version must link to all others (bidirectional).
  • Use correct ISO codes: es, en, ca, or es-ES, en-GB where applicable.
  • Include hreflang="x-default" for the default language or a language selector page.

Marketing team reviewing the multilingual structure of a business website with language map and URLs on screen

Common mistakes that cost rankings

  • Canonical pointing to another language. The English version should not canonicalise to the Spanish one.
  • Incomplete hreflang. A return link is missing from one of the versions.
  • Mixing language in URL and content. A /en/ URL with Spanish text confuses users and search engines.
  • Not updating after adding languages. Each new translation requires updating the hreflang block on all sibling pages.
  • Ignoring Search Console. The international targeting section shows hreflang conflicts worth fixing quickly.

Checklist before calling your setup done

  • Every indexable URL has a self-referencing canonical (except justified cases).
  • All language versions link to each other with hreflang.
  • x-default exists or you have a clear strategy for visitors without a defined language.
  • Sitemap, canonical and hreflang use the same URLs (same protocol, no junk parameters).
  • You have validated in Search Console that there are no internationalisation errors.

Conclusion: small signals, big impact

Canonical and hreflang do not change your website design or the visible user experience. But without them, an investment in translation and multilingual content may not pay off in search.

If you already publish in several languages, audit ten key URLs today: home, services, contact and your most visited blog posts. Errors usually repeat across templates and can be fixed in one go.

Want your multilingual website to rank in each market without technical conflicts? At aatsoft we structure URLs, tags and sitemaps so Google understands your offer in every language.

Àlex
Àlex
CEO & Full Stack Developer

More from the blog

Contact us

Reach out through your preferred channel and we will get back to you as soon as possible.

Contact us