If you read one of my previous articles, you might have noticed that I switched from WordPress to Publii to run this blog. But you can't do everything with a basic static websites publishing platform, especially when it comes to multilingual complex websites, involving more advanced features like a directory or a store. For this type of projects, I currently stick to Wordpress which gives me much more flexibility.
WordPress gets slower when you add plugins
But the recurring issue you will usually experience with WordPress, especially if you need to make it multilingual, will be speed.
I've been using WPML for a few years to create multilingual WordPress sites. I purchased their lifetime plan when it was still available (I don't see it anymore on their pricing page). But the issue with WPML is that it's yet another plugin and each time you add a plugin to your Wordpress install, it tends to slow down the whole website, no matter how carefully you're choosing only the best premium plugins.
WPML is no exception. You will find plenty of articles both on their own forum and on third-party review sites complaining about the impact it has on the overall site's performance.
Fortunately there is a way to mitigate the effect WPML will have on the speed of your site. Before I share with you the best option I've found so far, let me tell you which theme I've been using for almost 2 years to create most of my WordPress sites.
After dabbling with a few providers, I came across Elegant Themes and immediately got hooked by their Divi Theme. It's packed with features, pretty fast if properly set up, and supported by a huge community, which is an essential factor when picking a WordPress theme. Never buy a premium theme, even if it looks gorgeous, when it's only supported by an isolated developer. If the developer decides, for any reason, to stop working on his amazing theme, your site might break at any WordPress update. You can't risk it, especially if you're using a visual builder to create your pages. If you have to switch to another theme after a WordPress update, you will have to re-create all of your pages because each theme developer is using his own proprietary shortcodes.
Let's recap: I'm using WPML with Divi. But, by default, when I add WPML to Divi, it slows down the whole site. What can I do to fix this?
How can I speed up my Divi website when using WMPL for translations ?
In one sentence: you have to choose the right caching plugin.
And this is where it gets complicated. Because not all caching plugins are created equal and not all of them will work in the same way for different combinations of theme & plugin(s). I would even say that some options won't work in the same way depending on the hosting company you've chosen for your site.
I've recently moved my staging account (where I host websites before cloning them to my clients' servers) to A2Hosting, after comparing a few options (incl. FlyWheel, Kinsta and other high-end hosting providers). I'm quite happy with it but I've uninstalled their default proprietary optimization plugin (which they call A2 Optimized WordPress) because I wasn't getting, in my opinion, enough performance.
Their plugin is a customized version of the well-known W3 Cache plugin, which you've probably come across when searching for a caching plugin in the WordPress repository. It might work better if you subscribe to their premium plan and/or if you add a CDN connection to the basic caching settings but, in my experience, the default free version of W3 Cache... sucks. In some cases, it will even slow down your site...
With some websites (not running Divi and not multingual), I had a decent success with WP Fastest Cache. It's very easy to implement and definitely improves the performance of your site. But in my recent tests using both Divi and WPML it wasn't a game changer in terms of performance.
I also tried WP Optimize, tweaking all the available options (in the free version), but the performance was as average as the one I experienced with W3 Cache and WP Fastest Cache. Bear in mind that for all my tests, I followed the optimization best practices shared by WPML. It didn't make any meaningful difference!
For all these tests, I compared the results using a plugin called Query Monitor which shows you how long it takes to load a page, both in the front end and on the admin. And I tested the install with Google Pagespeed Insights.
For the exact same website, with WP Fastest Cache and WP Optimize, I got a desktop score of around 82, not the worst (I've seen sites with a 45 score...) but clearly not as optimized as I would expect with the ideal stack.
I was about to call it a day ("What can you do, it's just WPML's fault...") when I decided to try a last caching plugin, which I had never used before: LiteSpeed.
It's as easy to activate as WP Fastest Cache but it offers a much more granular control on all the settings.
On the Advanced tab, you should activate object cache + browser caching, which are both essential to deliver the best performance.
I also activated the asynchronous loading of CSS resoures in the Optimize tab and I've decided to do the same for Google fonts in the Tuning tab. I haven't activated the CSS and JS minify options since it tended to create weird page loading patterns (like the expanded menu loading before the page content...).
With LiteSpeed, I now have a Divi-powered WordPress site running WPML with a 95 performance on Google Pagespeed Insights, which I could apparently still improve by reducing the size of some of my images (even if I already serve them in Webp format)).
I went from 82 to 95 by choosing the right caching plugin for my Divi - WPML combination. I might try to improve the score even more by connecting a CDN to my WordPress install. It could probably push the score above 95.
Now, when the cache has been generated (after the first visit), I get almost instant loading of the pages, on all browsers.
Don't hesitate to ask me your questions via the comments below. Please also share your own successful caching experiments.