11/10/2026

One site, two languages: Dutch and English without the hreflang mistakes

Half the companies in Amsterdam sell in two languages and rank in one. The Dutch pages do the work; the English ones are a translation bolted on, sharing a URL or a title with the original, invisible to the people they were written for. The fix is not more content. It is structure.

We run this on our own site (English with a Dutch edition under /nl/), on a tattoo studio's site in Patras that is Greek first with an English mirror, and on FFCheck.eu, a product live in 33 countries with flight-compensation claims in every local language. Same rules each time.

Rule 1: every language gets its own URL

/contact and /nl/contact. Not one URL that swaps text based on a cookie, not ?lang=nl. Google indexes URLs; if two languages share one, one of them does not exist. A subdirectory (/nl/) is the simplest choice for a company with one brand and one domain; a country domain (.nl, .de) only pays off when you have the marketing to back each one.

Rule 2: hreflang in pairs, with a default

Every page declares its siblings: the English page points to the Dutch one, the Dutch page points back to the English one, and both name an x-default for people who match neither. One-way links are ignored. We generate these from the same routing table that builds the language switch, so a page cannot exist in one language without declaring the other. Google's documentation is short and correct; most plugins get the return links wrong.

Rule 3: the language switch keeps the page

Clicking "NL" on the services page opens the Dutch services page, not the Dutch homepage. Sounds obvious. Check your own site.

Rule 4: never redirect by IP

A visitor from Belgium reading English gets the English site. Googlebot crawls from the United States; redirect it by IP and it never sees your Dutch pages. Detect the browser language if you want to suggest a switch, then let the person decide, and remember the choice.

Rule 5: translate the metadata, not just the page

Title, description, image alt text, structured data, the sitemap entries. On the studio site in Patras the Greek page and its English mirror have different titles written for different searches, because the Greek customer types "tattoo Πάτρα" and the visiting Erasmus student types "tattoo studio Patras". Same page, two audiences, two sets of metadata.

Rule 6: search intent is not the same in both languages

"Website laten maken" and "web design agency" are not translations of each other; they are different people at different budgets. Before writing a page in the second language, look at what its speakers actually search for and what the results look like. Sometimes the right move is a page that does not exist in the other language at all. The Greek site has aftercare guides the English side barely needs; the English side has a "first tattoo" guide for tourists.

Rule 7: proofread like a native, not like a translator

Translated Dutch has a smell — anglicisms, the wrong formality, calques like "wij zijn hier voor u" in a site that says je everywhere else. It costs trust in the first paragraph. We ran a full linguist pass on a Dutch client site this year and rewrote hundreds of strings that were grammatically fine and still obviously translated; the same pass belongs in every bilingual project. The order of operations matters: write the primary language properly first, then translate meaning, not sentences.

What this looks like when it is done

Two sets of pages, each with its own URLs, titles, descriptions and sitemap entries, cross-linked with hreflang, served from one codebase where a fact changed once changes in both languages. It is a few days of engineering on a custom build and a permanent source of bugs on a plugin stack. Either way it is the cheapest ranking you will ever earn: the second language is usually less competitive than the first.

Expanding from Dutch to English, or the other way round, and want to know what your current setup is throwing away? Send us the domain; the hreflang audit takes us an hour.

← All posts

One site, two languages: NL/EN without hreflang mistakes — GOAT Pixels