This is a maintenance release, which addresses a number of issues that came up during the last couple of weeks.

We had a one-line glitch that required bumping the version from 3.3.4 to 3.3.5. Sorry about the hassle.

Resolved Issues with Object Caching

WPML should have been compatible with Object Caching in version 3.3.3, but some problems remained. All these are ironed out now.

In our study of object caching, we discovered that benefiting from object caching is not trivial. We achieved good results with object caching, in some cases, but we also noticed a slowdown in other cases.

We’re sure that if you work with an expert sysadmin, who is very familiar with memcaching, opcode caching, DB tuning and server optimization, you can benefit from advanced caching. However, our study showed us that if you just ‘enable object caching’ and leave all defaults, site performance may actually go down.

The reason for this is that you are telling the server to do more. There is more data transfer, more to serialize and deserialize and more logic to process. This added complexity can be worth the cost if everything else is tuned and the object cache is processed in a very fast way. Also, if you know that you have a bottleneck in the database, object caching can be a big help.

When you run a simple server with a local database and enough memory for basic database caching, object caching may not be required. Tell us in your comments if this interest you and we’ll write another, very technical, blog post about how to tune everything.

Other Fixes in 3.3.4

  • Resolved wpml-auto-loader.php issues
    This bug slipped into WPML 3.3.3 and caused issues in different PHP configurations. It’s fully resolved now and you should no longer see this sort of warning in the PHP log file.
  • Fixed several issues with AJAX calls
    Several AJAX calls were not looking correctly at language information, or were having issues with language filtering. All these are resolved.
  • Fixed menu synchronization issues when using quotes in menu items
    Unescaped strings could cause the menu sync feature to fail and produce PHP errors. This is resolved now, so you can run menu sync, no matter what post titles include.
  • Resolved sitemaps issues with WPSEO from Yoast
    When you use languages in domains, you should get sitemaps, per language. In all other configurations, you will get only a single sitemap, with all items in all languages. In case you receive several sitemaps, WPML adds them to the Yoast SEO admin screen, so it’s easy to find the sitemap URLs.
  • Fixed issues with different domains per language and WP site installed in a sub directory
  • Fixed a possible issue with URL rewriting, when different slugs share the same string or substring
  • Fixed wrong use of MyISAM engine when creating the icl_cms_nav_cache table
  • Fixed compatibility with the custom object caching code running on wpengine.com hosting

We’re Running WordPress 4.4 and Other Plugins

BTW, in case you were wondering, our own sites are running WordPress 4.4, WPML 3.3.5, WooCommerce 2.4.12, Yoast SEO 3.0.6, Types 1.8.11, Views 1.11.1, CRED, bbPress 2.5.8, W3TC and a number of smaller plugins. It’s running smoothly for us with pretty significant traffic. Our traffic includes both cacheable (85%) and non-cacheable (15%). The non-cacheable traffic are logged in users, in their account pages, downloads and support.

We use CDN to offload media, JS, CSS and static files and Minification to speed up resource loading. Obviously, we use page caching for non-logged-in visitors. Our DB schema uses InnoDB and we try to have a large-enough memory pool to fit most access into memory. Without this, DB quickly becomes an impossible bottleneck, with or without WPML. We’ve switched from Apache to Nginx a few months ago and are very happy with it.

If you have specific questions about server setup, leave comments and we’ll reply.

Download and Update

As always, the best way to get updates for WPML is automatically, via the plugins admin. Register WPML on all your sites and get automated updates. You can also get this update by downloading from your WPML account, under Downloads. Be sure to update all of WPML’s components together.

Coming Next – Taxonomy Meta; New UI for Editor and WooCommerce Multilingual

In parallel with this stability release, WPML developers are making good progress on WPML 3.4. This version will include a revamped UI, much much nicer translation editor and support for translating terms meta. The work that we did on object caching showed us where we can improve the performance of WPML in different areas. Expect major speed improvements in coming releases.


You already know that we love your feedback. Leave your comments here and we’ll reply.

3 Responses to “WPML 3.3.5 Improves Stability, Performance and Integration”

  1. +1 here to a technical post about server tuning and configuration. We have a quite complex server config and knowing more about the optimization of WPML with object caching would be great (WPML is currently the most resource consuming component of our websites).