How to Build a WordPress Multilingual Site (Arabic and English Done Properly)

A practical guide to building a WordPress multilingual site: choosing a plugin, URL structure, hreflang, translating theme strings, RTL for Arabic, and SEO pitfalls.

A WordPress multilingual site serves the same content in several languages, each on its own URL, connected with hreflang tags so search engines show the right version. You can build it with a plugin such as WPML, Polylang or TranslatePress, or with WordPress Multisite. Arabic versions also need full right-to-left layout support.

Most of the sites I build for the Gulf and Egypt are Arabic and English. Here is what I have learned about doing it without regret.

What is the best way to make WordPress multilingual?

The best way is the one that gives each language a separate, crawlable URL, keeps translations easy for your team to manage, and works cleanly with your theme, WooCommerce and SEO plugin. For most business sites that means a mature translation plugin; for very separate markets, Multisite with one site per language.

Step 1: choose the URL structure

Structure Example Notes
Subdirectory example.com/ar/ Simple, shares domain authority, most common
Subdomain ar.example.com Clear separation, more setup
Separate domain example.ae Strong local signal, separate SEO effort
Parameter example.com/?lang=ar Works, but less clean; avoid if possible

I use subdirectories for most projects. Whatever you choose, do not serve different languages on the same URL based on cookies or browser language. Search engines typically crawl without cookies and may only see one language.

Step 2: choose the plugin

WPML

A long-established premium plugin. Each translation is a separate post linked to the original. Strong WooCommerce support through its multilingual add-on, and string translation for themes and plugins.

Polylang

Free core with a Pro version. Also stores translations as separate posts. Lighter in feel; WooCommerce support needs an extra paid add-on.

TranslatePress

Translates on the front end with a visual editor, which non-technical editors like. Translations are stored in its own tables.

Multisite

One WordPress site per language in a network. Clean separation and independent content, but you need to handle language links and hreflang yourself or with a connector plugin.

Questions to ask before choosing:

  • Does it support my theme and page builder?
  • Does it handle WooCommerce products, variations, emails and checkout strings?
  • Does it integrate with my SEO plugin for translated titles, descriptions and sitemaps?
  • How will my team actually translate: in the editor, side by side, or through a service?

Step 3: set up hreflang

Hreflang tells search engines that pages are equivalents in different languages. Example for a page in English and Arabic:

<link rel="alternate" hreflang="en" href="https://example.com/services/" />
<link rel="alternate" hreflang="ar" href="https://example.com/ar/services/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/services/" />

Rules that matter:

  • Every version lists all versions, including itself.
  • Links must be reciprocal; if A points to B, B points to A.
  • Use valid language codes (ISO 639-1), optionally with region (ar-EG, ar-SA).
  • Only link real translations, not a page in a different topic.

Good multilingual plugins generate these automatically. Check the page source anyway.

Step 4: translate everything, not just posts

The usual leftovers in English on an “Arabic” site:

  • Theme strings: buttons, headings in templates, footer text.
  • Menus and widgets.
  • Form labels, validation messages and confirmation emails.
  • WooCommerce emails, checkout fields, and “Add to cart.”
  • Image alt text and SEO meta.
  • 404 and search pages.

For theme strings to be translatable, the theme must wrap them in translation functions such as __() and esc_html__() with a text domain, and ship .pot files. That is one more reason to build a clean, editable child theme.

Step 5: Arabic and RTL

WordPress switches to RTL when the language is Arabic, adding dir="rtl". Your theme must then lay out correctly: mirrored navigation, logical CSS properties, and an Arabic font that is legible at body sizes. I go into detail in the Arabic ecommerce website checklist.

Step 6: language switcher UX

  • Show language names in their own language: “العربية” and “English,” not flags. Flags represent countries, not languages.
  • Switch to the equivalent page, not the home page.
  • Keep it in the same place on every page.
  • Do not auto-redirect visitors based on IP; suggest instead, and remember their choice.

Step 7: SEO for each language

  • Separate titles and meta descriptions written for each language, not translated word for word.
  • Keyword research per language; people search differently in Arabic and English.
  • Separate sitemaps or a sitemap with hreflang.
  • Internal links within the same language.

Performance considerations

Multilingual plugins add queries. Use page caching that varies by URL (subdirectories make this simple), and run the Core Web Vitals checks on each language. Arabic web fonts are often larger than Latin ones, so load only the weights you need.

Launch checklist

  • Each language has its own URL structure.
  • Hreflang present, reciprocal and valid.
  • Theme, plugin, form and email strings translated.
  • RTL layout checked on real phones.
  • Language switcher links to equivalent pages.
  • SEO meta and sitemaps per language.
  • Caching works per language.

Common mistakes

  • Machine-translating the whole site and publishing without review.
  • Mixing languages on one page because some strings were not translatable.
  • Forgetting the Arabic version of transactional emails.
  • Redirecting all Arabic-speaking visitors by IP and blocking access to English.

If you are planning an Arabic and English site or store, contact me and I will help you choose the setup. For the broader platform choice, read Laravel vs WordPress.

Frequently asked questions

Which is the best WordPress multilingual plugin?

WPML, Polylang and TranslatePress are the most widely used. WPML and Polylang store each translation as its own post; TranslatePress translates on the front end visually. The best choice depends on your theme, WooCommerce and workflow.

Can I build a multilingual WordPress site without a plugin?

Yes, with WordPress Multisite, one site per language, and hreflang added by code or an SEO plugin. It keeps languages cleanly separated but takes more setup.

What is hreflang?

Hreflang is an HTML attribute or sitemap annotation that tells search engines which language or regional version of a page to show to which users. Each version should list all alternates, including itself.

Should I auto-translate content with AI?

AI translation is a useful first draft, but important pages should be reviewed by a fluent speaker. Unreviewed machine translation can read poorly and damage trust.

Muhamed Ahmed

Ecommerce & Web Solutions Developer

I'm Muhamed Ahmed, an ecommerce and web solutions developer with 15 years of experience building fast, secure online stores and websites on WooCommerce, WordPress and custom Laravel platforms. I write about website speed, SEO, automation and conversion.

All articles Work with me

Related articles