How to Make a Website Multilingual: The Complete Step-by-Step Guide (2026)

18 de marzo de 2026LingoJs Blog
How to Make a Website Multilingual: The Complete Step-by-Step Guide (2026)

You want your website to be available in multiple languages. It sounds simple — until you dive into the technical details. Subdomain or subdirectory? What exactly is hreflang? Do you need to duplicate every page? And how much will it cost?

This guide answers all these questions, practically and without unnecessary jargon. Whether your site runs on WordPress, Shopify, React, Next.js or any other tool, the principles are the same.


Before you start: the fundamental questions

Before touching anything, answer these three questions:

1. Which languages to target?

Don't do everything at once. Start with 2-3 languages based on your data: where does your current traffic come from? Where is your target market? English is a solid default choice if it is not already your source language. Then choose based on your business.

2. What is your budget?

Costs range from €0 (DIY manual translation) to several thousand euros per month (translation agency + dedicated infrastructure). Define a realistic budget before choosing your tool.

3. What quality level do you expect?

A personal blog can get by with automatic translation. An e-commerce site with product pages needs to be flawless. A legal or medical site requires human review. Calibrate your expectations.


URL architecture: the first technical decision

How you structure the URLs of your translated pages directly impacts your SEO. There are three main options:

yoursite.com/fr/
yoursite.com/de/
yoursite.com/es/

Advantages: easy to set up, one domain to manage, domain authority is shared across all languages.

Disadvantages: less flexibility for hosting versions in different countries.

Subdomains

fr.yoursite.com
de.yoursite.com
es.yoursite.com

Advantages: clear separation between versions, hosting flexibility, ideal for Shopify and some CMS.

Disadvantages: each subdomain is considered a semi-separate site by Google, so domain authority is partially diluted.

Separate domains (country TLDs)

yoursite.fr
yoursite.de
yoursite.es

Advantages: strong geographic signal for Google, maximum local trust.

Disadvantages: expensive, complex to manage, completely separate domain authority. Recommended only for large companies with distinct national markets.

Our recommendation: start with subdirectories. It is the simplest, most cost-effective, and most efficient for SEO in the majority of cases.


Hreflang tags: essential for multilingual SEO

Hreflang tags tell Google which version of your page corresponds to which language and country. Without them, Google may index the wrong version or treat your translations as duplicate content.

Here is what they look like in the <head> of your page:

<link rel="alternate" hreflang="fr" href="https://yoursite.com/fr/" />
<link rel="alternate" hreflang="en" href="https://yoursite.com/en/" />
<link rel="alternate" hreflang="de" href="https://yoursite.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://yoursite.com/" />

The x-default value indicates the default version for visitors whose language is not specifically targeted.

Common mistakes:

  • Forgetting the x-default
  • Adding hreflang on the homepage but not on internal pages
  • Using incorrect language codes (it is de for German, not ge)
  • Not having reciprocal hreflang tags (if A points to B, B must point to A)

The 4 methods to translate a website

Method 1: Manual translation

You create each page in each language, either yourself or with a professional translator.

For whom: sites with little content and a translation budget, or sites requiring flawless translation quality (legal, medical).

Limits: doesn't scale. 50 pages × 4 languages = 200 pages to maintain individually.

Method 2: CMS translation plugin (WPML, Polylang)

A plugin that adds a translation management system to your CMS.

For whom: WordPress sites with a technical team capable of managing the installation and maintenance.

Limits: WordPress-specific, complex installation, each new content piece must be translated separately.

Method 3: Translation proxy (Weglot)

A third-party service that intercepts your content, translates it and serves it from its own servers.

For whom: marketing websites that need a fast solution with turnkey multilingual SEO.

Limits: high cost as the site grows, dependency on a third-party service, potential latency.

Method 4: Client-side translation (LingoJs)

A JavaScript snippet that detects and translates content directly in the visitor's browser.

For whom: any type of site — WordPress, Shopify, React, Next.js, Wix, custom site. Ideal for those who want a fast, affordable solution without modifying source code.

How it works:

  1. You add a single line of code in your <head>
  2. LingoJs scans the DOM and identifies all visible text
  3. The text is translated via contextual AI
  4. The translation is served in ~26ms, invisible to the user
  5. You can manually edit any translation via the dashboard
<script src="https://cdn.lingojs.com/lingo.js" data-api-key="YOUR_KEY" async></script>

This approach works with any platform, any framework, any theme. No dependencies, no modifications to your existing code.


The language selector: UX best practices

The language selector (language switcher) is a crucial UX element. A few rules:

  • Name each language in its own language — "Deutsch" not "German", "Español" not "Spanish"
  • Avoid flags alone — A British flag for English excludes Americans, Australians, etc. Flags are country symbols, not language symbols
  • Place it in the top right — This is the most common web convention, users look for it there
  • Detect language automatically — Serve the right language by default based on browser language, but always allow switching

Dynamic content: the invisible challenge

Many translation solutions only handle static content — classic HTML text. But modern websites are packed with dynamic content:

  • Search results loaded via AJAX
  • JavaScript notifications and error messages
  • Marketing pop-ups (Klaviyo, Privy, OptinMonster)
  • Chatbots and help widgets
  • Dynamically loaded customer reviews
  • Product configurators

LingoJs observes the DOM in real time via a MutationObserver. Every time new content appears on the page — whether a pop-up, a search result or an error message — it is translated automatically, with no additional configuration.


Checklist before launching your multilingual site

Before going live, verify:

  • ✅ Hreflang tags are in place on all pages
  • ✅ The language selector works correctly
  • ✅ Key pages are proofread (homepage, products, contact)
  • ✅ Forms work in all languages
  • ✅ Metadata (title, description) is translated
  • ✅ Images containing text have alternatives
  • ✅ The XML sitemap includes URLs for all languages
  • ✅ Google Search Console is configured for international versions
  • ✅ Automatic browser language redirection works

How long does it take?

MethodInstallation timeMonthly maintenance
Manual translation2-8 weeks5-20 h/month
WPML / Polylang1-3 days2-5 h/month
Weglot30 minutes1-2 h/month
LingoJs5 minutes30 min/month

Maintenance time matters as much as initial installation. A tool that requires little maintenance frees up time for what counts: growing your business in new markets.


Take action

Making a website multilingual in 2026 is no longer a months-long project. With the right tools, it is a matter of minutes.

Try LingoJs free for 30 days. No credit card, no commitment. See your site in a new language in less than 5 minutes.

Make my site multilingual →

Translate your website in 10 minutes. From €19/mo.

Try free for 30 days →
Open new horizons

Upgrade your business with new targets

We help you to reach new markets and customers by providing a seamless translation experience.