SEO2 min read
A Croatian and English website without SEO mistakes
How to set up a bilingual website so Google shows the right version to the right people — URLs, hreflang, canonicals and the sitemap.

A Croatian company that also sells abroad almost always needs a site in at least two languages. Translating the text is the easy part. The harder part is telling Google that these are two versions of the same page, not two pages competing with each other.
Every language at its own address
The language has to be visible in the URL. On this site Croatian has the "clean" addresses (anim.hr/kontakt) and English its own prefix (anim.hr/en/contact). Crucially, the content does not change with the browser — a visitor from Germany who opens a Croatian address gets the Croatian page and switches language with one click.
Why not redirect automatically by browser language? Because Google's crawler mostly arrives with English settings. Redirect it and it may never see the Croatian version.
Hreflang: "this is the same page in another language"
Each page lists its language versions in its head:
<link rel="alternate" hreflang="hr-HR" href="https://anim.hr/kontakt">
<link rel="alternate" hreflang="en" href="https://anim.hr/en/contact">
<link rel="alternate" hreflang="x-default" href="https://anim.hr/kontakt">
The three rules broken most often:
- The tags must be reciprocal. If the Croatian page points to the English one, the English page must point back.
- Every page lists itself too.
x-defaultsays where to send someone whose language you don't have — for us, the Croatian version.
The canonical points to the page itself
The English page's canonical points to the English page, not the Croatian one. A translation is not a duplicate; a duplicate is the same page at two addresses (with and without www, or with and without a trailing slash).
A sitemap with pairs
In sitemap.xml every address lists its language siblings as well. Google gets the same information in two places, so a mistake in one doesn't undo everything.
Translate the addresses and descriptions too
An English page with a Croatian search title (<title>) and description looks unfinished and gets fewer clicks. We translate the title, the description, image alt text and, where it makes sense, the address itself (/kontakt → /en/contact).
How to check
In Google Search Console, under Pages, you can see which versions are indexed and which Google has marked as duplicates. If the English page shows as "Duplicate without user-selected canonical", the hreflang or the canonical is almost certainly wrong.
A bilingual site isn't double the work for Google — as long as you tell it clearly which version is for whom.

