Skip to content
GPLWP Guides

How to improve navigation on a multilingual WordPress site

Multilingual Time About 30–60 minutes 6 steps Updated 21 Sep 2026

MULTILINGUAL
The short answer

Translate the pages that your menus link to, then create or synchronise a menu for each language and add a clearly labelled language switcher. Check skip links, keyboard access, missing translations and cached menus before publishing. A plugin is useful when you need language-aware menus and accessibility controls.

The route
  1. 01Map the navigation structure
  2. 02Translate the linked content first
  3. 03Create the language menus
  4. 04Add a clear language switcher
  5. 05Check keyboard and skip navigation
  6. 06Test translations and caches

What you need

  • A multilingual WordPress site using WPML or another translation plugin
  • Administrator access to WordPress
  • A list of the languages and pages your site should support
  • A keyboard or accessibility tool for testing

Map the navigation structure

List the main links visitors need in each language: home, key services, shop or products, contact, account links and any language-specific pages. Keep the order and hierarchy consistent unless a language genuinely needs a different structure.

Check that every destination has a translation before adding it to a menu. A language switcher cannot send visitors to the right equivalent page when that translation does not exist.

Translate the linked content first

Translate the pages, posts, categories and products that your navigation points to. With WPML, content-linked menu items are translated by translating the content they link to, rather than by translating the menu label alone.

Review each translated URL on the front end. Do not assume that a translated label means the destination is translated; an item can still point to the default-language page.

Create the language menus

For a classic menu, open Appearance and Menus, then create or edit the menu assigned to the primary menu location. With WPML, menus that contain pages, posts or categories can be synchronised from their translated content.

Custom links need more care: create a menu for the target language, add the translated custom URL and save it. For a Site Editor site, translate the template part containing the Navigation block and then translate the navigation menu itself.

The common Friday failure is a translated menu containing English custom URLs. Those links do not automatically become language-aware, so open every custom link in each language.

Add a clear language switcher

Place one visible switcher in the header or primary navigation, and optionally repeat it in the footer. Use native language names such as Deutsch and Français; flags alone are not a reliable label for a language.

In WPML, switcher placement and display options are under WPML → Settings → Language Switchers. You can control the order, flags, dropdown behaviour and language-name format there.

Test the switcher from an inner page, not just the home page. It should open the equivalent translated page where one exists, not always send visitors to the translated home page.

Check keyboard and skip navigation

Tab through the header, menu, switcher and page content without using a mouse. The focus indicator should remain visible, dropdown items should be reachable, and visitors should be able to move past a long header to the main content.

Many accessible themes already provide a skip-to-content link. If yours does not, ask your developer to add one that appears on keyboard focus and targets the main content region. WordPress accessibility guidance describes skip links as a way to bypass repeated header and navigation content.

Give the skip link and navigation labels the correct language on each translated page. A visible English accessibility label on a French page is confusing for screen-reader users.

Test translations and caches

Open the same page in every language and check the menu label, active menu state, dropdown contents, language switcher and destination URL. Also test a page whose translation is incomplete, because plugins may hide that language or fall back to another page.

Clear page, object and menu caches after changing menu assignments. A cache that does not vary by language can show one language's menu on another language's pages, or make the switcher point to the wrong page.

For a small site, these WordPress and WPML settings are usually enough. For a large site with custom menus, accessibility requirements or recurring language-specific menu problems, the fast route is the WPML CMS Navigation Addon. It adds language-aware menus and skip links for WPML sites, so choose it when multilingual accessibility and navigation control matter.

The fast route

Let WPML CMS Navigation Addon do it

Adds language-aware menus and skip links for WPML sites; choose it when multilingual accessibility and navigation control matter.

Get WPML CMS Navigation Addon

Sources

  1. wpml.org /documentation/translating-your-contents/menus/?utm_source=o…
  2. wpml.org /documentation/getting-started-guide/language-switcher-optio…
  3. make.wordpress.org /accessibility/handbook/best-practices/skip-links/?utm_sourc…
  4. wordpress.org /support/topic/menu-cache-conflict-cache-issue-wpml-and-poly…

Questions

Do I need a separate menu for every language?
Not always. If your menu links to translated pages, WPML can synchronise the corresponding menu items. You normally need separate language menus when the menu contains custom links, language-specific destinations or a different structure. Site Editor menus are translated through the template part and Navigation block rather than only through Appearance → Menus.
Why does a translated menu still open the default-language page?
The menu item usually points to an untranslated page or to a custom URL that was copied from the default language. Translate the destination first, then replace or edit custom links with the translated URL. Test the link from an inner page as well as the home page, because a switcher can appear correct while individual menu URLs are wrong.
Where should the language switcher go?
Put the language switcher in a predictable, visible location, usually the header or primary navigation, and optionally repeat it in the footer. Display the language name rather than relying on flags alone. On WPML sites, use WPML → Settings → Language Switchers to choose its position, order, labels and dropdown style.
Does a multilingual site need skip links?
A multilingual site should provide the same keyboard and screen-reader navigation in every language. Check whether your theme already includes a skip-to-content link; if not, have one added so keyboard users can bypass repeated navigation and reach the main content. The link text and accessible labels should be translated with the page.
Why does the menu change correctly in the admin but not on the website?
Caching is a frequent cause. Clear page, object and menu caches, then check that the cache varies by language and current URL. Also confirm that each translated menu is assigned to the correct theme location and that your theme or page builder is not replacing the translated header with a single-language template.