New: ShopBar Theme — faster, lighter, refreshed

See what's new
WordPress

WordPress Multilingual Plugin to Create a Multilingual Website

Naitik Semwal

Spiracle Themes

8 min read

A multilingual WordPress site is two decisions wearing one hat: how the translated content will be stored and addressed, and who is going to write it. The plugin choice follows from those two answers, and picking a plugin first is how people end up rebuilding the site in a year.

Four multilingual URL structures compared: subdirectory, subdomain, separate domain, parameter
Four URL structures, and which one to default to Tap the image to open the full-size version.

Decision 1: what actually gets translated

Three different jobs get called “multilingual”, and they have different costs:

Scope What it covers Ongoing cost
Interface only Menus, buttons, form labels, theme strings One-off, small
Content Pages, posts, products, categories Every new page, forever
Both Interface and content, with a language switcher Ongoing editorial work

Most business sites need the third row and budget for the first. The trap is assuming machine translation removes the editorial cost: it converts the writing cost into a review cost, and reviewers are usually the people who already have no time.

Decision 2: how the URLs are structured

Structure Example Trade-off
Subdirectory site.com/fr/ Best default: one domain, all authority in one place
Subdomain fr.site.com Clean separation, authority split across hosts
Separate domain site.fr Strongest local signal, most expensive to maintain
Parameter site.com/?lang=fr Avoid: harder to crawl, harder to share, weaker signals

Subdirectories are the usual recommendation because every page contributes to one domain. Whatever you choose, each language needs its own indexable URL, a self-referencing canonical, and hreflang tags pointing at the alternatives. Without hreflang, Google may treat the French and English pages as duplicates and pick one to show, usually the wrong one.

The plugins, as they stand

Plugin Installs Rating Model Best for
Polylang 900K+ 94 (3,004) Free core, paid Pro Content translated by humans, full control of URLs
TranslatePress 400K+ 94 (1,667) Free core, paid add-ons Translating visually in the page, machine plus manual
Weglot 50K+ 96 (1,940) SaaS subscription Fast launch, translation handled as a service
WPML not in the directory n/a Paid licence WooCommerce and complex content models

WPML is not listed in the WordPress.org directory, so there is no install count or rating to compare here; it is sold and supported commercially. The other three are all actively maintained and tested against current WordPress. The distinctions that matter in practice:

  • Polylang stores each translation as a real post in its own language, which keeps the database clean and the URLs predictable. The editing workflow is “duplicate, then translate”.
  • TranslatePress translates in the front end, which is the fastest way to see what a page looks like in another language, and it works with most page builders without per-builder support.
  • Weglot is a subscription that proxies translated pages, so the initial effort is minutes rather than days, and the ongoing cost is a monthly fee that scales with words.

What multilingual actually costs to run

Every new page multiplies. A ten-page site in three languages is thirty pages to keep current, and the one that gets forgotten is always the pricing page. The practical mitigations:

  1. Translate the pages that earn: home, services, pricing, contact, and the top three posts by traffic.
  2. Leave the blog in one language until there is demand, and add hreflang only for pages that exist in both.
  3. Put a visible language switcher in the header, not in the footer.
  4. Set one language as default and keep the default URLs unprefixed, so existing links keep working.

Technical checks before launch

  • Each language version returns its own URL, with a self-referencing canonical.
  • hreflang tags list every language version, including the default, and reference each other reciprocally.
  • The sitemap includes all languages, or you submit one sitemap per language.
  • Untranslated pages either fall back to the default language or are excluded from that language’s sitemap, not left as empty shells.
  • Slugs are translated where it helps a reader, and left alone where changing them would break links.
  • The language switcher does not trap crawlers in a redirect loop, which happens when the plugin guesses language from the browser.

Machine translation, honestly

Automatic translation is good enough to make a page understandable and not yet good enough to make it persuasive. For product pages and legal text, publish only what a human has read. For support articles, machine translation with a feedback link is often a reasonable trade, because a slightly awkward answer is better than no answer.

The SEO consequence of skipping review is not a penalty; it is irrelevance. Pages that read as translated often rank for nothing, because the phrases people search are not the phrases a translation engine produces.

Translating a store without breaking checkout

WooCommerce is where multilingual setups usually fail, because the checkout is a sequence of templates, emails and tax rules rather than a set of pages. Four things to get right:

  • Products are content, not interface. Each product needs its own translation with its own description, price display and stock text. Machine translation of a product name is usually worse than leaving the English name.
  • Emails and invoices are per language. An order confirmation in English for a French customer is the most common complaint after launch, and it is configured in the email settings, not in the translation plugin.
  • Tax and shipping rules rarely need translation, but the labels do. Check the checkout labels for every language, because they live in different template files and are missed more often than page copy.
  • Payment gateways have their own strings. A gateway that only ships English strings will show English at the last step, which is the worst place to break the illusion.

Keeping the translations current

The maintenance cost is the part nobody budgets. A practical routine that keeps a multilingual site from drifting:

  1. Publish in the default language first, then translate, so the source of truth is always the original.
  2. Add the translated URL to the same editorial checklist as the featured image and the meta description.
  3. Review the top five pages by traffic in each language once a quarter, because prices and offers change faster than the rest of the content.
  4. Watch for orphan translations: pages that exist in one language and were deleted in the other, which produce soft 404s in the sitemap.

The sites that work are the ones where the translation is a step in the publishing process, not a project that happened once in 2023.

Hreflang mistakes that quietly cost traffic

Hreflang is the tag that tells Google two pages are translations of each other rather than duplicates. It is small, easy to get wrong, and mostly invisible until rankings flatten. The four failures that recur:

Mistake What happens Check
Missing self-reference The tag set is ignored entirely Every page lists itself plus the alternates
One-way links Only some pairs are treated as alternates Each page points back to every other
Wrong region codes fr-FR shown to all French speakers Use a language-only code when the region is irrelevant
Tags on non-canonical URLs Signals point at pages Google will not index Hreflang only on the canonical version

The self-reference is the one people skip, and the most common result is a site where the English pages rank and the translations are treated as near-duplicates. It takes ten minutes to verify in the page source with a search for hreflang, and it is worth doing before launch rather than after a quarter of flat traffic.

Machine or human, per page type

The decision is not ideological, it is per page. A workable split for most businesses:

  • Home, services, pricing: human translation, reviewed by someone who sells in that language. These pages carry the commercial argument and every awkward sentence costs money.
  • Blog articles: machine first, human edit of the intro and conclusion, which is where most readers decide whether to continue.
  • Legal and policy pages: human, and reviewed locally. A translated privacy policy is a legal document, not a marketing one.
  • Product descriptions: human for the top twenty products, machine for the long tail, with a feedback link on every page.

The cost of getting this wrong is not a penalty, it is silence: pages that read like translations rank for nothing because they do not contain the phrases people actually search.

Related reading: a second language multiplies the pages you have to keep fast and readable, which is why mobile performance and bounce rate matter more, not less, once the site is multilingual.

FAQ

Do I need a plugin at all?

For two or three static pages, you could run separate installs. Once content changes regularly, a plugin keeps URLs, menus, hreflang and the switcher consistent, which is worth the complexity.

Will a multilingual site be slower?

Not meaningfully, if the plugin stores translations as normal content. Proxy-based services add a network hop, and page-builder-heavy sites see more impact than the multilingual layer itself.

Can I translate WooCommerce products with a free plugin?

Polylang and TranslatePress both have free tiers that handle products, with limitations around some extensions and checkout strings. Complex stores usually end up on a paid tier for exactly that reason.

Does hreflang guarantee the right page shows?

No. It is a hint, not a directive. It helps Google understand that the pages are alternates rather than duplicates, and it is worth implementing correctly, but ranking still depends on each page’s content and links.

What happens to my existing URLs when I add a second language?

Keep the default language unprefixed and they stay as they are. If you switch to prefixed URLs after launch, every existing link needs a redirect, so decide before you publish rather than after.

Choose the URL structure first, decide who writes the translations second, and let those two answers pick the plugin. The technical part is a week of work; the editorial part is the actual project.

Written by

Naitik Semwal

Content Specialist at Spiracle Themes

Naitik Semwal is an active blogger, web content writer, and poet. Since 2012, he has been working in the software industry as a writer. Besides writing, he loves helping people with SEO and SMO strategies.

Leave a Reply

Your email address will not be published. Required fields are marked *