Skip Navigation

This post is a real treat. Joen Asmussen is a usability testing expert. Normally, he writes reviews for companies such as LEGO. To help out with WPML, he donated a review for our plugin as well.

This review goes through all of WPML’s options (current to version 0.98), tears them apart and gives constructive criticism about how they can be improved.

It’s an excellent lesson in design and usability. Anyone who’s doing any sort of design work will get something from reading it. The review talks about WPML, but it can be applied to anything that you can design and build.

The review itself goes into great depth and detail. It’s difficult to read all at once. I decided to keep it as a single post, although it can easily make up a nice mini-series. This way, you can choose your own pace and keep it bookmarked for later review.

In some places I added my comments to the review. My comments always appear in italic and begin with ‘Comment‘.

WPML usability review (written for WPML version 0.98)

WPML (WordPress Multi Language) is a plugin that add much soughtafter translation features to WordPress. With the plugin installed and set up, you’ll be able to provide users with several language versions of all your pages and posts.

WPML Language setup
WPML Language setup

The plugin does this almost perfectly. Unlike previous attempts at building multi language capabililties into WordPress, WPML is:

  • stable
  • compatible with most webservers and most other plugins
  • simple to setup

WPML is not perfect, however. There are a few tweaks still to be made and some usability issues to overcome. In this article I’ll go through a number of them, and give suggestions to improvements. First of all, here’s a brief description of the workflow of adding multilanguage capabilities to your WordPress website.


The first thing you’ll notice in your WordPress backend, upon activation of the WPML plugin, is a new main menu called, aptly, WPML.


Many plugins add options pages to WordPress, but most of them add their pages as children of the Settings menu. Normally, adding your own main section is considered bad karma by the WordPress interface design guidelines, as it divides configuration across several sections simply confusing end users. I would argue, however, that in the case of WPML, the features added are so massive that it deserves its own section.

Adding languages is a simple matter of selecting from lists, and you can now proceed to translate your posts and pages. This takes place, logically, in both the page and post overview sections, as well as on “add new page” or “add new post” sections.

Edit posts screen with multiple languages
Edit posts screen with multiple languages

Notice the extra menu that lists your added languages.

Add new post
Add new post

Notice the “Language options” box right at the bottom.

When you’ve set up WPML and added a few posts in each language, your backend work is effectively done. The rest of your work is in your WordPress templates, adding new template tags to show language selectors, tweaked menus, and whatever else you’d want. This brings me to where WPML needs a little bit of work to fullfill its potential.

1. Remove the need for theme tags

language switcher with flags

The main purpose of translating your website is to give your readers content in their own language, or at least, their choice of language. So without a language selector, your multilanguage features are, at best, auto-detected. As such, you’ll definitely want to add the language selector, should you use WPML.

So why isn’t the language switcher added automatically upon plugin activation?

Language switcher options
Language switcher options

When other plugins “start working” as soon as they’re activated, there’s a good chance you won’t even notice that something is missing in WPML until you start digging. While there’s good sense in allowing developers full control of the plugin innards, there’s no reason WPML shouldn’t be able to do both.

Suggestions for improving the language selection setup

  1. WPML should automatically add all its features to your Wordpres theme, using plugin hooks. That means language selectors and special WPML page menus should be active as soon as the plugin is activated.
  2. There should be a “Template Options” section in WPML, which would allow you to tweak these features, or turn them on or off, individually.
  3. If a theme developer so chose, he or she should be free to add the various template functions themselves in the current fashion, simply overriding any plugin hooks.

The default behavior, with these tweaks added, would be a “activate and you’re done” version of WPML, which is likely to be sufficient for the bulk of its userbase.

2. Page and Post options

Add new page
Add new page

While WPML offers up translation features, it also comes bundled with a few Content Management System (CMS) features. As shown above, an extra box called “CMS Navigation” appears beneath your translation box.

There’s nothing wrong with adding those features. If you’ve installed WPML in the first place, chances are you’re using WordPress as a CMS — I doubt many people translate their blogs to several languages. The problem is that there are two boxes. The more boxes, the more confusion.

Behind the scenes, the reality is that “CMS Navigation” is a separate plugin, that is bundled with WPML. No matter, the features are good and there’s good sense in having them be part of WPML. So why aren’t they really part of WPML?

Comment: “CMS Navigation” started as an independent plugin, but it’s now fully integrated into WPML. We found out that in order to properly support the navigational elements, in a multilingual environment, these functions must interact. The suggestion about making it a single box is still very valid.

Suggestions for improvements:

  1. Add the features from “CMS Navigation” into WPML, and combine the two boxes.

3. Tweak The Wording

While multi language features constitute a quite advanced feature, WPML has already demonstrated that it can be simplified enough to be accessible in WordPress. But there’s a ways to go to make all the features easily understood.

For instance, what does “Mini home” mean? What does a “language specific home page” mean?

CMS navigation options
CMS navigation options

Both “Mini home” and “Section” features are related to navigation grouping.

language switcher full details
Options for language switcher

“Link to home of language for missing translations” simply means that if you’re reading a post in one language, switches to another language to read it in that, and it’s not yet translated, you’ll be taken to the home page instead of shown a 404 page.

CMS navigation setup
CMS navigation setup

“Sidebar pages menu” is simply the text you can write before and after the widget heading, if you’re using the Site Navigation widget that comes bundled with WPML.

As is evident in these screenshots, a number of WPML options can comfortably be tweaked to your liking. Very nice. Unfortunately, understanding what each feature does, can be quite tricky, mostly due to the wording.


1. Rename “Exclude from the top navigation” to “Hide this page from page menus”. Not all page menus are at the top, and not all of them are distinctly “navigation”.

2. Consider rethinking the “Mini home” feature. As a feature for very large websites, the idea is that you can create entire microsites with very complex structures.

For instance, you could make a a company party invitation that doesn’t show up in the main navigation of the corporate website. This subpage, could then include a number of subpages that should not show up in any menus, perhaps because you editorially would want to add the links yourself. You could, for instance, have a “Map” subpage, which you link to inside your body text; “peruse our map to find out where the party is”.

While this is a useful feature when you need it, it is also a very complex feature. Should this even be bundled with WPML?

If so, consider renaming “Mini home (don’t list child pages for this page)” to simply “Hide child pages for this page”. People may not immediately understand why they would want to
do this, but when they need the feature, it’ll be right there waiting for them.

Comment: To generalize, I think that we all should avoid inventing names for our features. If there’s already a standard name for something then we should use it. For instance, the little text that goes at the top of every browser window is called a ‘Title’ – we don’t need to explain what that is. However, when we invent names, like ‘mini home page’, we just confuse our users. Instead of inventing names, we should just say what it does. Thanks for raising an excellent point!

3. The “Section” feature is equally useful and confusing. What it does is, it allows you to group a chunk of pages visually, without a hierarchy. This is useful if you have a plethora of pages and no subpages and want to visually separate groups of these pages in to neat chunks.

For instance, let’s imagine you have these six pages:

  • Work samples
  • Case stories
  • Pricing
  • Contact Information
  • Company Vision
  • Employees

Using the section feature, you could group them with text headings:

Our Work

  • Work Samples
  • Case Stories
  • Pricing


  • Contact Information
  • Company Vision
  • Employees

See? Useful! So how do you go about making this simple to do in WordPress, with only a plugin? Yes, it’s difficult. Currently, using the “Section” box, you do this:

  1. Enter a heading in the “Section” textbox, under which the first page you’re editing should be grouped.Edit another page, now choose a section in the textbox which has now become a dropdown menu, or, add a new heading. Suggestion: For starters, simply describe what’s going on.
  2. Rename “Section” to “Group this page under the following headline:”, and consider adding an italicised description below the textbox that says “This will group your page menu into neat chunks”.

Comment: I find this difficult to use too, and I’m pretty familiar with how WPML works. In fact, I would be surprised if there are more than 10 people have managed to use this feature without giving up. I think that any rewording we do will not be enough to make it usable enough. Instead, we’re going to add a new page management facility to WPML which would allow controlling all page management from single screen. This would include the standard WordPress page order (which isn’t the most friendly thing in the world), page parents, our sections, and our “mini-homes”. This entire thing will be done using a drag and drop interface and will look at all the pages together rather than one by one. Look out for this feature in WPML 1.1.

4. Rename “Skip language” to “Show ‘Not Found’ error page”, and rename “Link to home of language for missing translations” to “Redirect to the home page”.

5. Remove “Sidebar pages menu” from the WPML Navigation page altogether, and add it instead as a widget option. This is a widget option, and if the other widgets can have options, so can this.

Comment: the sidebar menu can be inserted as a widget, but these options also control other things. We’ll add a link to this management screen from the widget setup.

5. Trim The WPML Default Behaviour, Look And Feel

Using a vanilla WPML installation and the page menu template tag necessary to utilize the CMS features, you get the whole package. You get a bundled WPML page menu look, pull-down menus and everything.

While this is nice, it’s certainly not for everyone. And if we imagine that a future version of WPML automatically adds the page menu template tag, it’s certainly an elaborate set of defaults.

Top navigation
Top navigation

If you want the CMS features, the drop down menu is not optional.

Drop-down menus are inherently un-userfriendly. There are a number of reasons for this, mainly that it hides content and that mousing over dropdown menus requires finesse.

Additionally, because the drop-down feature is enabled by default, that means WPML’s template tag outputs every page and every subpage at once.


1. The bundled CSS and drop-down menu should be optional, and disabled by default.

2. The default behavior should be to output subpages only when the main page has been
visited first.

3. Optionally, you should be able to output all subpages. This is also useful for some designs:

Top menu with all child pages shown
Top menu with all child pages shown

4. Whether you want to use an unstyled menu that shows all pages, subpages of the active page only, or the fully styled dropdown menu, this should be an option in the WPML Navigation options page:

Additional navigation options
Additional navigation options

6. More Options

If we imagine a future WPML where template functions are automatically activated along with the main plugin, there’s no reason it shouldn’t look exactly like a vanilla WPML-free WordPress installation does – except with a number of new and advanced features available.

Should the user then wish to enable some of the hard-core WPML features, dropdown menus, navigation grouping, category navigation and so on, these should all be comfortably available in the WPML Navigation options page.

Even more navigation options
Even more navigation options


WPML is the best multi-language plugin for WordPress yet. On top of that it adds a plethora of useful features that makes WordPress into a full-fledged CMS.

To reach full maturity, there are only a few hedges to cross. Some involve tweaking titles and
descriptions, others are structural.

The changes that would make the most difference to WPML, would be if — upon activation of the plugin — all relevant WPML features would be enabled in the frontend via plugin hooks with no need to change any templates at all. If, in addition to this, these features could be enabled, disabled and tweaked via an options page, WPML would become instantly accessible to the vast majority of the WordPress crowd.

About the author

Joen is a a webdesigner located in Copenhagen, Denmark. He’s educated in print design and has more than 8 years of industry experience in web-, interface- and usability-design. Among other clients, Joen has worked as a usability advisor for LEGO on the Mindstorms software.

Today, Joen‘s one-man enterprise provides pretty, web-standards compliant and highly user friendly websites. In addition to this, he provides clients with usability reviews of their current websites, detailing usability issues and suggesting improvements. Because the advice is based on an archive of experience, it’s both cheaper and more accessible than actual usability testing.

Joen blogs about webdesign, usability and movies on his personal website, Work samples are available in the “work” section.