Case study · WordPress · 2025

Carpathian Daily: One WordPress, Three Languages, 3-Minute Publish

Ukrainian, English, Hungarian — one Polylang Pro install replaced three WordPress sites and a Google Docs translation chain.

Client
Carpathian Daily
Duration
2.5 months
Team
4 people
Budget
$5-25k
Challenge

What was broken

Carpathian Daily had three WordPress sites: one Ukrainian, one English, one Hungarian. Every article was written first in Ukrainian, copy-pasted into a Google Doc, translated by two freelance translators, then pasted back into the English and Hungarian sites with whatever formatting survived the trip through Docs.

Average time from Ukrainian draft to all three languages live: 40 minutes per article. At 12-15 articles a week, that ate one full editor-day every week on copy-paste alone.

Search Console showed 314 hreflang errors and 600+ “alternate page with proper canonical tag” warnings. Half the Hungarian articles were ranking below their Ukrainian counterparts on Hungarian queries because the translations went live 2-6 hours later and Google had crawled the Ukrainian version first. LCP on mobile: 4.8 seconds. Hungarian-edition bounce: 78%.

The previous developer had recommended keeping three sites because “WordPress isn’t really multilingual”. That advice was 10 years old.

Solution

What we built

One WordPress install. Polylang Pro for language management. Custom theme on Sage 10 with Tailwind. Hosting moved from a $7 cPanel shared plan to Cloudways DigitalOcean ($26/mo) with Bunny CDN ($5/mo on top).

The interesting work was the editorial layer. We built a small custom plugin called Linkbridge that does three things:

  • When a Ukrainian article hits status pending review, Linkbridge auto-creates linked drafts in English and Hungarian, pre-fills the translation via DeepL API, and pushes a Slack notification to the translators with deep-link to the side-by-side editor.
  • A side-by-side editor pane (Gutenberg block) shows the Ukrainian original next to the editable translation, with a one-click “copy formatting” button for blockquotes, embeds, and photo captions.
  • An editorial dashboard widget shows every Ukrainian article and its translation status with timestamps, so the editor-in-chief sees the trilingual pipeline at a glance.

hreflang is auto-generated from Polylang’s term relationships and injected into <head> on every page. NewsArticle schema is emitted per language with the correct inLanguage property. RankMath handles meta titles and descriptions per translation rather than falling back to the Ukrainian original.

Build time: 10 weeks. Migration of 4,200 existing articles ran in batches over a weekend on a staging environment, with manual spot-checks on the top 200 articles by traffic.

Results

What changed

Time from Ukrainian draft to all three languages live: 40 minutes to 3 minutes. The DeepL pre-fill plus side-by-side editor turned the translators’ work from “start blank, paste, format” into “edit a draft”. Translation cost per article dropped from $14 to $6.

Organic sessions per month, six months pre/post: 11,200 to 23,400 (+109%). The Hungarian edition alone went from 1,800 to 6,100. Hreflang errors in Search Console: 314 to 0 within two weeks of launch.

Mobile LCP: 4.8s to 1.4s. Hungarian-edition bounce: 78% to 51%. Editorial team stopped having Friday “catch-up the translations” sessions because the queue cleared itself by Thursday afternoon.

Numbers that matter

Publish time (3 languages)
-92%
40 min/article → 3 min/article
Organic sessions/month
+109%
11,200 → 23,400
Hreflang errors (Search Console)
-100%
Mobile LCP
-71%
4.8s → 1.4s
Hungarian edition bounce
-35%
78% → 51%
Translation cost / article
-57%
$14 → $6

Tech stack

Built from scratch

  • Linkbridge plugin
    Auto-creates linked translation drafts on the moment a Ukrainian article hits pending review. Pre-fills DeepL machine translation as a starting point and notifies the assigned translator in Slack with a deep-link to the side-by-side editor.
  • Side-by-side editor block
    Gutenberg block that shows the source-language article and editable translation in two columns, with one-click formatting copy for blockquotes, embeds, and photo captions. Translators stopped losing italics and blockquote attributions.
  • Editorial pipeline dashboard
    Custom WP dashboard widget listing every Ukrainian article and its English + Hungarian status with timestamps. The editor-in-chief checks one screen instead of three sites and a spreadsheet.
  • Hreflang auto-mapper
    Reads Polylang term relationships and emits a correct hreflang map in <head> on every page, plus a canonical that always points to the same-language original. Cleared 314 Search Console warnings in two weeks.

Third-party integrations

  • DeepL API — Machine-translation pre-fill for English and Hungarian drafts. Translators edit, not start blank.
  • Cloudways (DigitalOcean droplet) — Managed hosting replacing cPanel shared. Vertical 2GB RAM with auto-scaling enabled for breaking-news traffic spikes.
  • Bunny CDN — Edge image delivery and JS/CSS caching. Europe POPs in Frankfurt, Warsaw, Bucharest dropped TTFB by ~180ms.
  • RankMath Pro — Per-language meta titles, descriptions, and schema (NewsArticle, BreadcrumbList). Hreflang module disabled — we use our own auto-mapper.

We had three sites and a chaotic Google Doc. The thing the team built feels boring in the best way — articles in Ukrainian show up in English and Hungarian almost while I’m pouring coffee. The Friday catch-up sessions stopped. Our Hungarian readers stopped emailing complaints about missing stories.

Yulia M. , Editor-in-chief, Carpathian Daily

Similar cases

Need a multilingual newsroom on WordPress?

Send us a brief — we'll respond within 24 hours.

Contact Form Demo