Multilingual WordPress means choosing an architecture before choosing a feature list: separate posts per language, or one post with translation layers? We built the same two-language (EN/DE) site in WPML, Polylang, and TranslatePress — same content, same menu structure — and compared what it felt like to run each.
The architectures
- WPML: duplicate posts per language, deep integration, heaviest plugin in the test.
- Polylang: duplicate posts per language, leaner, taxonomy-driven language assignment.
- TranslatePress: one post, translations overlaid in the DOM — visually translated in the front end.
Setup and workflow
- Polylang was fastest to a working bilingual site (35 min): language switcher, hreflang, translated menus all clean. Translation workflow is post-by-post duplication — predictable, database-heavy.
- WPML took 55 min with more configuration surface, but its translation management (assign translators, track progress) is genuinely built for teams. If you outsource translation, WPML’s workflow is the reason it survives.
- TranslatePress took 40 min and offers the most beginner-friendly model: click a string on the live page, translate it. Charming for small sites; tedious for hundreds of posts, and untranslated strings linger invisibly.
Performance cost
| Plugin | Added weight (front end) | DB queries (bilingual page) | Caching compatibility |
|---|---|---|---|
| Polylang | ~22 KB | +9 | Good with per-language cache groups |
| WPML | ~48 KB | +17 | Good, needs config care |
| TranslatePress | ~65 KB | +5 | Trickier — DOM translation interacts with caching |
The caching interaction matters most: per-language page caching is essential, and the mechanism is described in the cache plugin comparison. Get it wrong and German visitors see English pages — a bug we reproduced twice during testing.
Verdict
- Lean bilingual site: Polylang — smallest footprint, cleanest defaults.
- Team translation with workflows: WPML — its management layer is worth the weight.
- Non-technical owner, small site: TranslatePress — the visual model fits.
Multilingual sites multiply every performance decision — run the free audit before adding a language, and review the AI-assisted translation angle in the content workflow guide.
Polylang — ~22 KB added front-end weight and the fewest overhead surprises. WPML adds roughly double; TranslatePress carries the heaviest script for its visual editing model. Usually page cache serving one language's version to everyone. Configure per-language cache groups — the mechanism is covered in our cache plugin comparison. For teams outsourcing translation, yes — its assignment and progress-tracking workflow is unique. For a solo-run bilingual site, Polylang does the job cheaper and lighter. Yes, including slugs and meta descriptions on premium plans. Verify hreflang output after setup — it is emitted correctly, but themes occasionally interfere.Which translation plugin is lightest?
Why do language-switched pages show the wrong language?
Is WPML worth its price?
Does TranslatePress translate SEO metadata?