Our Blog Now Speaks Seven Languages – What We Learned About Multilingual Publishing
German, English, Spanish, Portuguese, French, Italian, Dutch: over the past weeks, the hafenstudios blog went multilingual, and new posts now go live in four languages on the same day. It turned out to be less of a translation project and more of a lesson in what multilingual publishing actually means. Here's that lesson, passed on.
We've been preaching for weeks that a language is a market. Eventually the uncomfortable question comes up: why does our own blog only speak German? "No time" is honest, but it's not an argument we'd accept from anyone else. So we did it: the hafenstudios blog now publishes in seven languages, and the five posts going live today are the first to launch on the same day in four languages — German, English, Spanish, Portuguese.
This post is the workshop log for that: what we built, what we underestimated, and what you can take away for your own website.
Lesson one: translating is the smallest part
Translating a blog post itself is quick work these days — AI translation has gotten good, and with editorial review, it's a defensible approach too. What comes after is the real work, and it goes by three names:
Translated addresses
A Spanish reader who finds a Spanish article through Google shouldn't see a German address in the URL bar. That's why every language version gets its own, translated slug: wordpress-langsam-beschleunigen becomes acelerar-wordpress. It's tedious work, but it's part of what decides whether a page reads as native or as an import in its target market — to search engines just as much as to people.
hreflang clusters that check out
Every language version tells search engines in the page head which siblings it has: the German article points to the English, Spanish, and Portuguese versions, and each version points back. Miss one direction and Google tends to ignore the whole cluster. This is the part you get wrong by hand exactly once, and after that you either automate it or maintain it very, very carefully.
Links that stay in the language
The most uncomfortable detail question: what does a link in the Spanish article do when the linked article only exists in German? Our rule is strict: translated posts only link to targets in the same language. If the target doesn't exist, the link goes. A reader forced to switch languages mid-text without warning forgives that exactly once.
Lesson two: language versions have to be normal pages
Technically, we could have taken the easy route: a script that swaps text at runtime, an address with ?lang=es tacked on, done. We actually went down that path at the start — and turned back. A language version that only exists via script doesn't reliably exist for search engines, doesn't share cleanly, and arguably doesn't even really belong to you.
Today, every language version we publish is a full, standalone page with its own address, its own title, its own metadata. That's exactly the principle Wimpel is built on: a translation is a completely normal post, not an attachment in a special table and not text behind a proxy.
Lesson three: not every language gets equal treatment
Seven languages sounds like parity, but it isn't. German is our source language and stays the most extensive. English, Spanish, and Portuguese are the markets where our topics are demonstrably searched for — they now get every new post on publication day. French, Italian, and Dutch grow in stages, most important articles first.
That's probably the most useful thing to carry over to your own project: multilingual publishing isn't an all-or-nothing decision. Two languages done consistently beat seven done half-heartedly. And the order isn't decided by gut feeling — it's decided by where your content is actually being searched for.
What this has to do with Wimpel
Full transparency: our blog is a hand-built static website, not WordPress — we maintain the clusters with our own tooling. But every rule in this post lives as a feature inside Wimpel, our multilingual plugin for WordPress: translations as normal posts with their own permalink, hreflang clusters that only get output once they're complete, a language switcher that never leads to a dead end, and a market assistant that prices out the cost of a new language before launch instead of after.
So if you're reading what we built by hand here and thinking "I want that, minus the manual labor" — that's pretty much the product description of Wimpel.
Your WordPress, multilingual, without hand-maintaining hreflang & co.
Wimpel turns translations into normal posts, maintains hreflang clusters automatically, and prices out the cost of a new language before it's built. 59 euros a year, 14 days to try with no payment details.
Frequently asked questions
Which languages is the hafenstudios blog available in?
Seven: German as the source language, plus English, Spanish, Portuguese, French, Italian, and Dutch. German, English, Spanish, and Portuguese now get new posts on publication day; the remaining languages grow in stages.
Are the translations created by AI?
The raw translation, yes — the sign-off, no. Every language version is reviewed editorially, gets a translated slug, its own metadata, and links that stay in the target language. That exact division of labor — machine translates, editors decide — is also the principle behind Wimpel.
Why do translated slugs matter?
Because the address is part of the content. A Spanish article under a German address reads as an import to readers and search engines alike. The translated slug also carries the target language's keyword, which matters for discoverability in that market.
Does the hafenstudios blog itself run on Wimpel?
No, and we'd rather say so ourselves: our blog is a static website without WordPress. But the principles — translations as standalone pages, complete hreflang clusters, language-faithful links — are the same ones Wimpel automates for WordPress websites.