In short

  • Pick the approach first: one post per language, translating the finished page, or a separate site per language.
  • Give every language its own address, translate the URL slugs, titles and meta descriptions, and add hreflang tags.
  • Use machine translation for a first draft, then have a person review at least your key pages.
  • Do not force visitors into a language by redirect; offer a visible language switcher instead.

A second language can open a new market for a shop, a service business or a blog. But a translated site only brings visitors if search engines can find each language: if the translation lives behind a JavaScript widget, or every language shares one address, nobody searching in that language will see it. This guide walks through the ways to translate a WordPress site, the multilingual SEO you need so each language can rank, and a plan for doing it step by step.

Decide What You Need First

  • How many languages? One extra language is a different project from ten.
  • Who translates? You, a colleague, a translator, or a machine translation reviewed by a person.
  • What changes per language? Only the words, or also products, prices, images and pages that exist in one country only?
  • Is there a shop? WooCommerce adds the cart, checkout, e-mails and order language.
  • How much content? A few dozen pages can be reviewed by hand; thousands need a workflow.

Three Ways to Build a Multilingual WordPress Site

One post per language

Plugins such as Polylang and WPML create a separate post or page for each language and link them as translations. Each language can have its own content, images and settings, and editors work in the usual editor. The price is more posts to keep in sync: when you change a price in one language, you change it in every other.

Translating the finished page

Plugins such as TranslatePress and Clearyvo Translate keep one page and store the translations of its texts separately. When a visitor opens /de/, the page is built as usual and its texts are replaced by the German ones. You translate on the front end, in a visual editor that shows the real page, and theme, widget and page builder texts are covered too. It is the quickest way to translate an existing site; content that should differ by language needs more care.

A separate site per language

With WordPress multisite or separate installations, every language is its own site. This gives the most freedom, for example a different team per country, and the most administration.

A fourth option, a machine translation widget that translates in the visitor’s browser, is quick but does not create pages search engines can index, so it brings no search traffic in the new language.

The Multilingual SEO Checklist

Whatever approach you choose, each of these points decides whether a language can rank:

  1. Its own address for every language. A subdirectory (example.com/de/) is the simplest; subdomains and separate domains work too. Never one address that changes language by cookie.
  2. Translated URL slugs. /de/uber-uns/ instead of /de/about-us/, with a redirect from the old address.
  3. Translated SEO title, meta description and social tags. They are what searchers see in the results.
  4. Translated image alt text. Images can rank in each language too.
  5. hreflang tags that link every language version of a page, plus an x-default for everyone else.
  6. The html lang attribute and a canonical tag per language. Each language version should name itself as canonical, not the original.
  7. A sitemap with the translated addresses, so search engines find every language quickly.
  8. A crawlable language switcher: plain links to each language, not only a script.

Step by Step

  1. Choose the plugin that fits your approach, and test it on a staging copy if you can.
  2. Set the site’s language and the languages to add, and the address format (subdirectories in most cases).
  3. Translate the menus, the theme’s texts and the widgets first: they appear on every page.
  4. Create a first draft of the content with automatic translation, starting with the pages that matter most.
  5. Have a native speaker review the key pages: home, top products or services, contact, checkout.
  6. Translate the slugs, SEO titles and meta descriptions of those pages.
  7. Open a translated page, view its source and check the hreflang tags and the html lang attribute.
  8. Submit the sitemap in Google Search Console and watch each language’s pages, for example by filtering for /de/.

One Option: Clearyvo Translate

Disclosure: Clearyvo Translate is our own plugin. TranslatePress, Polylang and WPML are well-known alternatives with different approaches; our comparison of the four lists the differences.

Clearyvo Translate translates the finished page with a visual editor: click a text on the real page and type the translation, and sentences with links or bold words stay one string. The free version includes the multilingual SEO from the checklist above: language URLs, translated slugs with redirects, translated SEO titles, meta descriptions, social tags and image alt text (with Clearyvo SEO, Yoast SEO, Rank Math, SEOPress, AIOSEO or any theme), hreflang and x-default, localized canonical and html lang, and translated addresses in the sitemaps. It comes with 5,000 free automatic translation words without an API key, or works with your own Google Cloud Translation key without a word limit.

The free version translates into one language. The paid add-on Clearyvo Translate Pro adds all 30 translation languages, a yearly word quota, your own DeepL key and more WooCommerce support (mini cart and checkout fragments, the order language and customer e-mails in it). Clearyvo Translate is coming to the WordPress.org directory; its page has the details. After buying a Pro plugin, see Install your Pro plugin.

Translating a WooCommerce Store

Product pages are only part of a shop. Check that the cart, checkout and My account pages are translated, that product categories and attributes have translated names and slugs, and that customers receive their e-mails in the language they ordered in. Prices in other currencies are a separate question from translation: plan them with your payment and tax setup.

After Launch

Treat each language as a site of its own in your routine: check its pages after content updates, translate new posts before you promote them, and look at its search performance separately. On sites with one post per language, our free Translation Checker lists content that is missing or outdated in a language (for WPML and Polylang).

Frequently Asked Questions

Does machine translation hurt SEO?

Google’s spam policies are about content produced at scale mainly to manipulate rankings, not about translation tools. A machine translation that a person has read and corrected, and that helps visitors in their language, is a normal page. Publish a raw machine translation of thousands of pages without review and the quality problems show. Review at least your key pages.

Should I use subdirectories, subdomains or separate domains?

Subdirectories (example.com/de/) are the simplest choice for most sites: one site, one hosting, and the main domain’s authority shared by every language. Separate country domains make sense when you run separate businesses per country. Subdomains are in between. Whichever you choose, give every language its own address.

Do I need hreflang tags?

If the same page exists in more than one language, yes. hreflang tags tell search engines which address is which language, so the right version shows in each country, and an x-default tag names the page for everyone else. A good translation plugin adds them for you.

Should I translate URL slugs?

Yes, when you can: /de/uber-uns/ reads better to a German visitor than /de/about-us/, and the words in the address are a small relevance signal. Set the translated slug before you share the page, and let the old address redirect to the new one.

Should the site redirect visitors to their language automatically?

Not by force. Google’s crawler usually visits without a language preference, and forced redirects can hide your translations from it and annoy travellers. Suggest the visitor’s language with a banner or a clear language switcher instead, and keep every language reachable by its own link.