LiteSpeed Cache Review – Complete Setup Guide & Tutorial

There was a time when website speed was not at all a factor. Even ridiculously slow websites – slower than slow loris, could rank well in Google search results. Things have now changed. Today, speed matters, and if your website is slow, no matter how good your content is, you are going to have a tough time ranking on Google search results.

One of the many ways of speeding up your website is to enable cache. Cached versions of your website’s static content can improve website speed. Caching is one of the many ways in which you can improve the page load speed of your website.

There are dozens of caching plugins available for your WordPress site. Everyone tells that they are the best in business. Some of the most popular names include:

The list can go on for some time. Which one should you use? Is there an alternative that can trump all these so-called popular options?

Say HELLO to LiteSpeed cache – a new entrant in the caching industry that is sending ripples so big that there is no way you can ignore it. Developed by LiteSpeed Technologies, LiteSpeed Cache is throwing every other caching plugin off-grid.

What’s so special about this caching plugin? I will tell you the answer in this review. However, before I delve deep into the review, I will like to show you a few things.

You Must See This: #1

Look at these two screenshots (first one is for speed test on Mobile devices & the second one is for speed test on Desktops):

You can see the URL of the website in the screenshot. It is one of the several web properties that I have.

This one, in particular, has everything from scripts to CSS, JS, and it has ads! Yes, it is ad-enabled and runs many small things that can exponentially slow down the website.

Each page of the site has at least 6 ads running. Some have even 8 to 10 banner ads. There is a recommended segment in each of the pages. Here is what I mean:

Then there is a full-width header strip displaying posts:

There is more! There is a sharing option from Mediavine Grow that shows up on the left bottom corner of the website:

There is footer ad!

There are multiple high-quality images (optimized, of course) per page!

With all these, the website still manages to clock a page load speed score of 94 on mobile and 100 on desktop.

You Must See This: #2

Here are the results for a random page from same website:


This inner page (you can see the URL in the screenshots) has everything (unlike the homepage) from ads to images to sharing options, recommended sections, etc.

Still the speed test score hits 93 on mobile and 100 on desktop. How is that possible?

Before and After Story

The same website with the same setup, at one point in time, scored less than 50 on mobile and barely hit 80 on desktop. It had the same plugins, same CDN (Cloudflare), and yet the score was terrible at one point in time.

I ended up hiring a developer to find out what was wrong with the site. He kept blaming the ad network (I use Mediavine and I still use it) responsible for inserting ads into the website. Of course, removing Mediavine completely did increase the website speed, but that was not the real solution.

I had to keep ads and yet get a good (at least, acceptable score). Ads are the only revenue source for the site. So, removing ads was not a possibility.

The developer did the following:

  • Moved my site from Apache web server to Nginx.
  • Upgraded the php version to 7.4.
  • Added WP Rocket (Premium) and removed W3TC cache plugin.
  • Implemented Cloudflare for CDN and DDoS protection.
  • Moved the site from a shared host to cloud hosting (DigitalOcean).
  • Recommended removing Mediavine and going to Google ADX.

With all these changes, the score improved by barely 5 points on mobile and 10 points on desktop. That was not satisfactory at all!

Moreover, implementing ADX is out of my league. Also, Mediavine CPMs are way better than direct Google Ads. I was never willing to do that.

Finally, it hit me! I switched from Nginx to OpenLiteSpeed web server that automatically installed LiteSpeed Cache as the caching plugin. Also, I switched from Cloudflare free to Cloudflare premium that costs me $20 a month.

You Should Know These:

  • OpenLiteSpeed web server is the community edition of the enterprise edition of LiteSpeed web server. It is free whereas the LiteSpeed server is a premium one.
  • LiteSpeed web server is designed by LiteSpeed technologies.
  • LiteSpeed Cache is developed by LiteSpeed technologies and it is free.
  • LiteSpeed Cache works much better with OpenLiteSpeed web server or LiteSpeed web server.

The moment I made the switch (albeit, against the wish of the developer who had immense experience with Nginx, but no experience with LiteSpeed), I saw a notable change in my site speed. The mobile score improved and managed to hit 80+ while the desktop speed clocked at around 95.

That was with the out-of-the-box settings of LiteSpeed Cache. I didn’t change anything! I was yet to configure the cache plugin and implement a CDN.

So yes, LiteSpeed Cache in combination with OpenLiteSpeed web server or LiteSpeed web server did wonders. Previously I had tried many things including Apache web server + various caching plugins and Nginx + various caching plugins.

Nothing worked!

LiteSpeed technologies gave me what I desired!

A few more optimizations here and there, proper configuring of the cache plugin, and implementing a CDN.

Now, before I walk you through the LiteSpeed Cache plugin setup, let’s go through the pros and cons of LiteSpeed Cache quickly.

LiteSpeed Cache Pros and Cons

LiteSpeed Cache has its strengths and weaknesses. Here is what I believe:

The Pros

  • It is completely free. You can use it with the free community edition of OpenLiteSpeed server.
  • It gives you some free quota of CDN service.
  • It enabled low quality image placeholders to quick web page loading.
  • It has integrated database optimization options.
  • It gives granular control over cache and optimization settings.
  • It can create WebP version of images and even offers both lossless and lossy image compression. Lossy compression is the default.
  • It allows localization of certain JavaScript from third-party services so that they can load from the local server. This improves page speed. For instance, it can localize analytics.js from Google analytics.
  • It can be configured to load Google fonts asynchronously or remove Google fonts completely.
  • It works with LiteSpeed or OpenLiteSpeed server.
  • It is true a server-side caching plugin and hence, it is faster than the plugins that work on PHP level.
  • It converts database tables to InnoDB and even allows viewing autoload entries that can seriously impact page load time.
  • It offers quick one-click optimization of database.
  • Combined with LiteSpeed or OpenLiteSpeed server, it massively decreases server usage, thereby improving performance.
  • There are many advanced CSS and JS optimization options if you want to fiddle around with things.

The Cons

  • Granular control comes with too many options, which can be confusing and intimidating.
  • It has some issues with WooCommerce, especially if you are using the Easy Digital Downloads plugin. LS Cache will not recognize the transaction pages.
  • It can work with Apache and Nginx, but the cache function will not work. Every other function will work. This makes no sense. Cache is the primary function.

Working with LiteSpeed Cache – Quick Settings

Honestly, you don’t really need to go ahead and change the default configuration of LS Cache. The out-of-the-box options work perfectly fine. However, if you want, you can configure the plugin by yourself.

Here is a quick list of the settings that I use (in case you don’t have the time or tenacity to go through the detailed explanation):

Step 1: Install LS Cache and activate the plugin. It doesn’t matter which web server you are using. You can be on Apache or Nginx, and not necessarily LiteSpeed or OpenLiteSpeed.

Step 2: General >> General >> Request Domain Key: If you are on LiteSpeed or OpenLiteSpeed server, you can skip this and move on without requesting a domain key. You need to do this if you are on Apache or Nginx and you want to integrate services. Requesting a key is free. Again, even if you are on LiteSpeed or OpenLiteSpeed server, you can use this. By integrating, you can enjoy some free quota of image optimization. It will help.

Step 3: Cache >> Cache >> Enable Cache: You need to turn this ON. In case you are on any other web server apart from LS or OLS, you need to sign up for

Step 4: Cache >> Cache Logged-n Users: Turn it OFF. You don’t want to see cache pages as an admin.

Step 5: Cache >> Drop Query String: This should already be populated. In case you see the field to be blank, put in the following entries (without comma), but one in each line: fbclid, gclid, utm*, _ga.

Step 6: Cache >> Browser >> Browser Cache: Turn it ON.

Step 7: Cache >> WooCommerce >> Privately Cache Cart: OFF.

Step 8: CDN >> CDN Settings >> CDN: Turn this ON only if you want to use CDN. I turn it OFF because I use Cloudflare.

Step 9: CDN >> CDN Settings >> Cloudflare API: Use this only if you are using Cloudflare. You need to enter the email ID, global Cloudflare API key, and the domain name.

Step 10: Page Optimization >> CSS Settings >> Generate Critical CSS: OFF. Turn it on only if you are using CDN and if you have turned on Load CSS Asynchronously.

Step 11: Page Optimization >> CSS Settings >> Inline CSS Async Lib: OFF

Step 12: Page Optimization >> Optimization Settings >> Remove WordPress Emoji: ON. You don’t have to worry about WordPress emoji because modern browsers already support them, and it is highly unlikely that people will use outdated browsers.

That’s all! You can now save all settings and enjoy speed.

Remember, these are only the quick settings that I have used. If you want to know the detailed settings, you can now continue reading the rest of the article.

LiteSpeed Cache Detailed Explanation

Installing LiteSpeed Cache Plugin

The LiteSpeed Cache plugin is a free plugin that you can get from WordPress repository. You can get the best caching results if you are on a LiteSpeed or OpenLiteSpeed server. If you are using any other web server, the caching mechanism will not work.

The only way you can take advantage of LiteSpeed Cache plugin’s caching mechanism while on being a non-LiteSpeed Server is to use the service.

So, before you start installing the LiteSpeed cache, make sure that you are with a hosting company that is offering LiteSpeed or OpenLiteSpeed web server. If not, you can consider migrating to another host that offers it.

If you are contemplating a move to a managed WordPress hosting solution, you can always look at WPX Hosting. For cloud hosting, you can always look at DigitalOcean, Google Cloud Hosting, AWS (you will not get LiteSpeed with AWS Lightsail), etc.

If you don’t intend to move to a different host, consider getting subscription.

LiteSpeed Caching Plugin Configuration

General >> General Settings

There are three options here. They are:

Automatically Upgrade

You can leave this OFF, but that doesn’t really make sense. You will eventually be updating the plugin. In fact, automatic updates never managed to break my site as it happed with WP Rocket. With WP Rocket, I had to roll back to the previous version of the plugin until the plugin was fixed.

As of today, I run three WP sites (all on OpenLiteSpeed web server and all using LS Cache). Never did any automatic upgrade or update manage to break my site. Yes, there were tiny hiccups, but they were easy to fix. With automatic upgrades, certain CSS and JS optimization features were reverted back to the default settings. I had to revert them back.

Domain Key

In case you want to use, you need to get a domain key. It is not necessary if you totally want to ditch the function. However, I do use it even with Cloudflare. is a CDN service that comes with various interesting features like critical CSS generation, image placeholer, conversion to webp format, etc.

The most important thing to understand here is that if you are using a any other server apart from LiteSpeed or OpenLiteSpeed server, using the service becomes a necessity if you want to use the caching mechanism.


I hate notifications. So, I always keep it OFF. It is up to you what you want!

Cache >> Cache

There are many options here, and it may look intimidating. Don’t worry! I will walk you through the setting that I use (and works perfectly for my site). Let’s begin…

Enable Cache

Of course, ON! That’s the reason why you are using LiteSpeed Cache plugin in the first place. Turning this off doesn’t make any sense.

Cache Logged-in Users

If you are an admin, enabling this option is not suggested. Also, if there are many users who log in, make sure that you are leaving this OFF. Enabling this option will mean that too many cached pages will be generated and most of it will not be used.

Cache Commenters

Turning it ON or leaving it OFF doesn’t really make much of a difference. However, I prefer leaving it ON.


For most of the site, this particular option doesn’t make any sense. You can leave it ON, but if you see your site breaking, turn it OFF.

Cache Login Pages

If you are not using a third-party service that Cloudflare that allows you to limit the login rate and proactively prevents login attempts from malicious actors, I will suggest that you leave this ON. However, if your login page is breaking (elements like captcha, design, function, etc.), you should turn OFF the option. If you are changing your wp-login URL, NEVER turn this ON.

While I do have Cloudflare protection available, I am still obliged to tell you that LiteSpeed server does have native protection available for admin URLs. Yes, LiteSpeed server can deter and prevent brute force attacks.

Cache favicon.ico

Yes! Leave it ON!

Cache PHP Resources

Yes! Leave it ON! It is particularly helpful if you are using themes and plugins that are poorly coded.

Cache Mobile

If your website has a responsive design, leave it OFF. If you have AMP enabled, or if you have mobile-specific design or content, you can turn it ON.

List of Mobile User Agents

You will need this if you have Cache Mobile turned ON. There is a default list already present. If you are turning ON mobile caching and you think that there’s something in the list of mobile user agents absent, you can add them (one user agent per line).

Private Cached URLs

You will be needing this if you have a website where different users see different content. For instance, if you have an ecommerce site where different users have different user profiles, and they need to see their respective user profiles. If your users don’t log in most of the times, you will still not need this feature. Since my sites do not have this form of functionality, I leave it blank. I never touch it.

Force Cache URLs

If you put in values here, irrespective of whether you have set no-caching settings, these pages will be cached. Leave it blank if you are running a simple blog.

Force Public Cache URLs

If you want specific pages to be cached, you can list them here. This is particularly helpful if you want exclude specific pages from string-based exclusion rules. For a simple blog, just leave this field blank.

Drop Query Strings

You should be careful about it. Leave the default values. There are query strings for which the content changes (for example language, currency, etc.). In such cases, those pages need to be cached separate. Again, there are query strings for which the content never changes. For example, affiliate cookies, Google tracker, Facebook tracker, etc. The default options provided include fbclid, gclid, utm*, _ga. These options are already pre-populated. So, you don’t have to worry about them at all.

Cache >> TTL

Just don’t change any damn thing here. Everything is as it should be. Everything is preconfigured. You can change things, but I will not recommend doing that.

The options that you will get here are:

  • Default Private Cache TTL
  • Default Public Cache TTL
  • Default Front Page TTL
  • Default Feed TTL
  • Default REST TTL
  • Default HTTP Status Code Page TTL

Leave them as is! PLEASE.

Cache >> Purge

Again, the options you find here are already configured. You don’t need to poke around. It is better that you leave them as is. I will still give you a quick explanation.

Purge All On Upgrade

This option is ON by default. Leave it so! Whenever, a new version of LiteSpeed Cache is available and it is updated, all old cache files will be purged and new cache files will be created. This is the safest option, because it will ensure that there is no conflict.

Auto Purge Rules For Publish/Update

Whenever you publish a new post or update an old post, you must ensure that it shows up on the website. This means that old caches must be removed. The default settings are perfect. So, leave it!

Serve Stale

This is a brilliant option. It is ON by default, and it should be left so. When you update old posts or publish new ones, there are two things that LiteSpeed Cache can do. It will serve an old copy of the post (from cache) to the visitors while it updates the cache file in the background. Alternatively, it can simply remove the old cache and make the visitor wait and serve a fresh cache file that will be dynamically generated during the waiting time.

Of course, making your visitor wait is not a good idea, and dynamically generating cache files for serving the visitors causes server load. That too, is not a good thing.

Scheduled Purge URLs

If you want specific URLs to be purged as specific times, you need to list them here. One URL per line!

Schedule Purge Time

Here, you need to define the exact time when the Scheduled Purge URLs will be purged. Remember that if you are not enabling the Auto Purge Rules, you can use this. If you already have Auto Purge Rules set, these settings are meaningless. Also, if your website has content generated from external sources that do not fall under the gambit of Auto Purge Rules, you can use this option.

Purge All Hooks

The field is already pre-populated. It simply means that whenever certain actions (provided in the list) are performed, a site-wide purge will take place. The default list is just perfect. However, if you want, you can add a few more things, specifically hooks from plugins that can impact your site design. In case you are not comfortable adding hooks (even I am not comfortable doing that), purge all cache manually whenever you are making a sitewide design change.

Cache >> Excludes

I never use these. If you want, you can. Here are the settings that you will get:

Do Not Cache URLs

If you want to exclude specific URLs from being cached, you can use this. You need to list all the URLs that you don’t want to cache. For example, I don’t want /wp-admin to be cached, and so, I put it on the list.

Do Not Cache Query Strings

If your website has query strings that can frequently change the content of your website, you should exclude those query strings from being cached. This is particularly helpful for multi-lingual sites, for ecommerce sites with different currency support, etc.

Do Not Cache Categories

By default, all categories are cached. If you want certain categories to exclude from caching, you can add them here.

Do Not Cache Tags

I don’t use tags at all. They are pretty much irrelevant today. While, they can help with search, the main problem is that they lead to thin content issue. You shouldn’t be using tags either. If you are using tags, and you want certain tags not to be cached, you can put them in here.

Do Not Cache Cookies

Cookies are designed to clear up after some time. Some cookies stay longer and some stay for a shorter timeframe. I will suggest that you don’t fiddle with cookies. They have a purpose and they should be left on their own.

Do Not Cache User Agents

User agents help to identify applications, operating systems, vendors, etc. Please do not cache them. That’s never a good idea.

Do Not Cache Roles

I usually exclude administrator and editor roles. If you want to exclude other roles you can. The available roles will be listed here.

Cache >> ESI

This is an advanced function that allows you to enjoy cache for even dynamic pages that should not be cached. This function will cache static parts of a dynamic page (yes, every dynamic page has certain static parts), and deliver them faster. This function is available with Cloudflare but only in the Enterprise plan, which costs a lot.

Luckily, LiteSpeed Cache has this feature available. I use it in conjunction with Cloudflare’s other functions, and trust me, it works great.

In case you didn’t know ESI or Edge Side Includes is usually not configurable from the server and definitely the usual caching plugins that are insanely popular in the WordPress ecosystem are not capable of doing this. LiteSpeed Cache can do it!

ESI is extremely advanced and you need to know what you are doing. Using this you can convert any content or function or widget to ESI, which will then allow you to determine how you want to cache it. For instance, you can decide it to be publicly or privately cached. You can even allow it to have its own TTL. You may even decide to leave them completely dynamic.

The ESI function on LiteSpeed Cache works perfectly fine, but there may be instances where you can encounter issues for functions that depend on their own JS functions and specific triggers. So, be careful. Experiment with the features, but don’t forget to note the default settings. If something goes wrong, revert to the default.

Here are the options you get under ESI (however, you need to have LiteSpeed Enterprise server or to use these function and that’s why I activated even though I am on OpenLiteSpeed server):

Enable ESI

I just leave it OFF because I don’t use it much.

Cache Admin Bar

It is not going to make a lot of difference if you cache the admin bar. You won’t see any big difference, but turning this on looks not only safe, but also logical.

Cache Comment Form

You can turn this ON. Comment form is quite dynamic, and it can lead to server load. So, cache it.

ESI Nonce

This is meant for specific plugins so that they work seamlessly with private cache. Leave it. Whatever is there, let it be there. No need to touch anything.

Vary Group

Be warned! Don’t play around with this if you are not aware of what it does.

Cache >> Object

Unless your web hosting company allows object cache, or unless you have Redis or Memcache enabled. So, if you don’t know whether Redis or Memcache is installed on your server or not, you better don’t mess around with this one.

Since I have Memcache installed, here is what I use for the settings:

Object Cache

Turned ON! Remember, I have Memcache installed. If you are not sure whether it is available on your server or not, you can simply ask your host. If Redis is enabled, that is also fine. You can turn it ON.


Though the preferred method if Redis, if it is not available Memcached will do!


It gets auto-populated if it LiteSpeed Cache finds Redis or Memcached.


The default value should be perfectly fine unless you have a custom port where you installed Redis or Memcache.

Default Object Lifetime

The default value is set at 360 seconds. This should be fine. If your dynamic content doesn’t get refreshed frequently, you can increase this.


If you are using a SASL-secured fork of Memcache, you will need it. Usually, you will not need this thing.


You will usually not need it.

Redis Database ID

If you don’t have Redis installed, don’t even bother. If you have Redis installed, you should still leave it alone unless you have a different Redis database ID to provide so that there can be performance improvements on Redis databases that are clogged up!

Global Groups

Whatever is already there is good enough. If you need, you can add more. However, be careful. You should know what you are doing.

Do Not Cache Groups

Same as before – do not mess with this. If you see something already there, leave it as is. If you need to add more groups, you can do that, but you should be knowing what you are doing.

Persistent Connection

Always leave it ON. This is the safest option.

Cache WP-Admin

OFF! If you want to speed up backend, you better switch host or upgrade the server. If you turn it ON, you may occasionally retrieve stale data from object cache.

Store Transients

Keep it ON if you are turning OFF the Cache WP-Admin option.

The last three options here can be enabled or disabled depending on what you need. You can turn all of them OFF, or you can turn all of the ON. If your backend isn’t slow, there is no point using object cache in the first place.

Cache >> Browser

Browser Cache

Leave it ON. Browser cache is important to speed up website for users. Turning this ON will allow users’ browsers to cache static files and save them locally.

Browser Cache TTL

The default value is good enough. It is set to 1 year (52 weeks 1 day 6 hours). You can reduce it, but it should not be anything less than 30 days (2592000 seconds).

Cache >> Advanced

This segment is for advanced users. So, make sure that you know what you are doing.

Login Cookie

If you have multiple sites on the same domain (subdomain sites), you will need this option. Here, one site needs to have a unique login cookie identifier so that LiteSpeed Cache doesn’t get confused and doesn’t mix up which visitors are logging into or logged into which site.

Improve HTTP/HTTPS Compatibility

Leave this OFF! First thing first, you shouldn’t have mixed content on your site anyway. This can mess up with the SSL status. If you are using mixed content you can use this option and set it to ON. I will assume that you are not using mixed content on your site. That’s a very bad idea.

Instant Click

This feature will preload links whenever someone hovers over a link on your site. It can increase the server load quickly if a user keeps hovering on several links before clicking on one. If you have a weak server, you should turn OFF instant click.

CDN >> CDN Settings CDN

Whether you turn it on or not is totally dependent on you. I will suggest that you sign up for the free tier program of I leave it ON because it helps with Low Quality Image Placeholders, image compression, and various other optimization. You can completely turn it OFF if you want.

Use CDN Mapping

If you are using any other CDN apart from and/or Cloudflare, you need to turn this one and configure the options. When you configure, you have to put in the CDN URL and configure which file types you want to include in the CDN. You can use multiple CDNs. For example, you may use one CDN for images, another one for videos, and yet another one for your static files. If you are using multiple CDNs for the same files, LiteSpeed Cache will randomly select.

HTML Attributes to Replace

Keep whatever is there and don’t touch them.

Original URLs

Unless you have a multilingual site or a multi-site setup that use multiple domains or subdomains, you don’t have to do anything here.

Include Directories

The default directories should be good enough. However, you are always free to add more directories if you want.

Exclude Path

If there are directories sitting inside the directories in the Included Directories, you can exclude them from here.

Cloudflare API

If you are using Cloudflare, you should use this. You have to provide your Cloudflare email, Global API and the domain. Nothing else to do!

Don’t worry about any conflict between CDN and Cloudflare. Both can work simultaneously. It works for me!

CDN >> Manage

There is nothing to do here. Just leave everything as is. If you want to purge only Cloudflare cache, you can do it from here with ease.

Image Optimization >> Image Optimization Summary

LiteSpeed has image compression capabilities, and it is wonderful, to say the least. It is super easy to use and you can quickly decide whether you want to retain backups on your server or delete them. Let’s check out the options…

Gather Image Data

You can always click on this button to request free optimization for your images. You can request a maximum of 200 images for optimization at once.

Pull Images

Once the images are optimized and ready, you can pull and download them to your site. All the backup images will be put in a folder. The backup folder should be in your wp-content/uploads (I guess).

Clean Up Unfinished Data

Certain compressions can fail. You can click on the button and remove those failed compression and then request more optimization.

Calculate Backups Disk Space

LiteSpeed Cache will save the original images in a backup folder. This folder can grow in size over time and eat up your valuable disk space on the server. If you notice that the backup folder is too big, you better download it on your local computer and delete the contents of the folder and save some valuable disk space.

Remove Original Image Backups

Don’t click on this link unless you download the contents of the backup folder from your server.

Use Original Files / Use Optimized Files

You can switch quickly between original images and optimized images to see how the website load time is impacted. If you don’t want to do this in bulk, you can do it for individual images from the media library. How cool is that?

Rescan Thumbnails

What if you made changes to the previous images. You need to make LiteSpeed Cache aware of those changes. Just click on it and LSC will do the rest!

Delete All Optimization Data

If you are not satisfied with the optimization carried out by LiteSpeed, you can always delete all optimized data.

Image Optimization >> Image Optimization Settings

Auto Request Cron

You don’t have to manually request image optimization. You can just turn this option ON, and your site will automatically request image optimization.

Auto Pull Cron

Once the optimization is done, you don’t have to manually pull the optimized images to your site. You can turn this ON and all optimized images will be download by itself.

Optimize Original Images

Yes, turn it ON. Original images will be optimized and original versions will be saved as a backup.

Remove Original Backups

Set this OFF. I will recommend that you download the original images before deleting them.

Optimize Losslessly

OFF! If you set this OFF, the images will be optimized with lossy compression. If you have a photography site where visuals really matter, you should turn this ON. Lossy compression removes unnecessary data from the images and makes the file size smaller. Lossy compression works great for most of the sites.

Preserve EXIF/XMP Data

All images have some important data like copyright information, keywords, comments, GPS, etc.). If you are using copyrighted images with express written permission, you should preserve this data. If you are using stock images, you can safely remove the data. Removing the data reduces the file size further and helps in faster website loading. So, turn this option OFF.

Create WebP Version

Turn it ON. Google is pushing for WebP version even though not all browsers support it (yet). However, it will become a standard format later. So, you better create WebP version from now.

Image WebP Replacement

Turn it ON. This will replace the images with optimized WebP versions and significantly improve page load speed on supported browsers.

WebP Attributes To Replace

Don’t touch it. Whatever is there is perfect.

WebP for Extra srcset

If your site has images that are not managed by WordPress media library, you can enable this option to enable WebP for those images as well.

WordPress Image Quality Control

This value defines the amount of compression you need. 82 is the default option, but you can experiment. Usually, the default value works just fine.

Page Optimization >> CSS Settings

You have most likely come across the options you will find here if you have already used other optimization features. If will warn you – the settings here can break your site. So, experiment, and if you find something weird – something not right about the site, you better revert to the original.

In my case, enabling certain options here didn’t break my site. Also, my server is powerful enough to handle such things through this plugin. I still have Cloudflare that handles these things at the DNS level, and therefore, doesn’t put a pressure on my server.

If you don’t have Cloudflare or other CDN that can handle these things at DNS level, you can use it. If you have Cloudflare or another CDN in place, let them handle this thing. You don’t have to enable these options from the plugin.

If you still insist doing this through the plugin, here is what I use:

CSS Minify

Yes, ON! This reduces the size of the CSS files and improves the page load time (though not very significant). If you are using a CDN, turn it OFF and let the CDN handle it at DNS level.

CSS Combine

Be very careful! This can break your site. So, turn it ON and see what happens. If it is not breaking your site, keep it.

CSS Combine External and Inline

Turning this option ON will need CSS Combine to be ON. If you turn ON this option, it will combine external CSS files with inline CSS. This can help to maintain CSS priority and reduce errors caused by CSS Combine.


This will pre-send CSS files to browsers. Doesn’t really make much difference, but I leave it OFF.

Load CSS Asynchronously

Leave this OFF! If you turn it on, you will see what is called FOUC issue. FOUC means flash of unstyled content. If you turn this ON, you will see a flash of the content that will appear weirdly. To be more specific, you will notice menus showing in a vertical state and all content appears after that. This will be momentary and fixes quickly, but it looks really ugly. Of course, it helps to improve page speed, but user experience (UX) takes a hit.

Generate Critical CSS

It is a strict NO! Turn this OFF! You don’t need to general critical CSS. Critical CSS is only the part of the CSS that is required for loading Above-the-Fold (ATF) content first, instead of loading the entire CSS at once. This might come in handy if you have bloated page builders (which I never recommend).

Page builders already have tons of CSS (60 KB or more) – complex ones. Why do you want to make it more complex by dividing the CSS into parts? If you don’t have page builders, your CSS files will barely make up a few KB. You don’t need critical CSS for that. Also, generating critical doesn’t work well with browser cache for repeated visits. Don’t forget that browsers will cache static resources. So, critical CSS may help with the first visit. But what about subsequent visits?

If you generate critical CSS and inline it with HTML, users will have to be redownloading the critical CSS every single time they visit your site. So, the browser saving the static CSS resources won’t help. This will eventually slow down your site!

Furthermore, if your site has many pages, generating critical CSS for every page will put a lot of server load. Do you really want that?

You better turn this OFF. You don’t need it, really!

Generate Critical CSS In Background

You can leave it ON, which is the default setting. Don’t bother at all because it is dependent on the previous setting. If the previous setting is turned OFF, this thing will not work anyway.

Separate CCSS Cache Post Types

If you are generating critical CSS (CCSS), then every post that has its own design and CSS must be listed here. Example? WooCommerce. There are different pages like product page, category page, pricing table page, etc.

Separate CCSS Cache URLs

If you have URLs (pages) where different CSS is used compared to other pages, you need to use this. You can list all those pages here.

Inline CSS Async Lib

OFF! By nature, CSS is render-blocking. If it is not render-blocking, you will get FOUC issue. So, trying to eliminate render blocking is not a good idea.

Font Display Optimization

Swap is suggested as the default option. If you are experiencing FOUT (Flash of Unstyled Text), change it to Default or Block!

Page Optimization >> JS Settings

As before, you will probably be better off allowing Cloudflare or other CDN to perform this task. Here are my recommended settings…

JS Minify

OFF! Use a CDN to get this done at the DNS level. If you are not using a CDN, you can turn it ON.

JS Combine

Play safe and turn it OFF! It can break your site, but you are always welcome to give it a try. I, for instance, leave it ON, because it doesn’t break my site. The theme and plugins I use are not heavily dependent on JS, and hence, it is quite safe for me.

JS Combine External & Inline

If you are turning JS Combine ON then you can go ahead and turn this option ON to maintain the priority with which JS are executed, thereby reducing the possibility of errors when you turn ON JS Combine in the previous option. I keep this ON, and it doesn’t impact my site much.

JS HTTP/2 Push

Turning it ON isn’t going to make much of a difference. You better play safe and turn it OFF.

Load JS Deferred

I will never recommend doing that! Certain JavaScript are critical for above-the-fold. You should not be deferring them. However, depending on your site configuration (themes, plugins, etc. you can always turn it ON, if it is not causing any problem). My site, for instance, doesn’t get impacted when I turn ON this option.

Load Inline JS

I will suggest that you use Default. Using After DOM Ready can possibly alter your site design or its functions or both. You can use After DOM Ready if you see error after enabling JS optimizations like minify, combine, etc.

Page Optimization >> Optimization Settings


Use a shorter value if you are making many developmental changes. Use a greater value if you are not changing your site design any more.

HTML Minify

Turn it OFF! Let the CDN or Cloudflare handle this thing. If you want to use it, turn it ON, but don’t forget that it will cause server load. Let it happen at the DNS level.

DNS Prefetch

There may be assets on your website loading from external domains. You can use this to preload the DNS for all external domains. In case you are not aware of what to put in that field, open your website in Chrome incognito mode, right-click on it and click on Inspect and then on Sources. You will see the list of all external domains. Type those domains in the DNS prefetch filed and hit the save button.

DNS Prefetch Control

Turning this option ON will automatically prefetch all URLs that are called from JS and CSS. This is pretty much the same thing that you did in the previous option. You can leave it OFF if you manually added URLs in the previous setting.

Remove Query Strings

If you are done making changes to your website, and there are no changes to be made, you can safely turn ON this option. However, if you are aggressively making changes to your site, keep this OFF otherwise it will give you stale CSS and JS issues. Be safe and leave it OFF.

Load Google Fonts Asynchronously

Turning this ON will ensure that Google fonts are downloaded fast and they don’t hinder the speed of your site. However, most of the sites that you visit will already have Google fonts, and most likely your browser has already cached them (provided you are using modern browsers). Turning this option ON might not make a massive change in site speed. So, test it! If you see improvements after turning it ON, leave it that way.

Remove Google Fonts

If you don’t want Google fonts to load on all pages at once, you need to turn ON this option. According to LiteSpeed documentation, this option is for those people who are locally loading fonts and want to avoid calling external Google fonts.

Now, for those who are skilled enough to load fonts locally will never find it difficult to deque the Google fonts. If you are such an expert, you are not going to need this option at all. In fact, your expertise can allow you to ditch caching plugins altogether. You can control caching by yourself.

Remove WordPress Emoji

ON! There will be no issues. It will remove a small JS that calls emojis. In fact, most of the modern browsers today support emojis natively. Removing this JS will not impact at all.

Remove Noscript Tag

A noscript tag is made for older browsers that do not support JS for security reasons. Noscript tags can take some space and slowdown the website. I highly doubt that anybody uses such old browsers and hence, you can safely remove the noscript tag. Of course, if you want to ensure full compatibility with older browsers, keep this option OFF.

Page Optimization >> Media Settings

Lazy Load Images

Yes, turn in ON! You should use lazy loading of images to speed up your website. With this option ON, images will load when someone scrolls through the webpage. Turning this on will reduce initial HTTP requests, thereby improving page speed.

Basic Image Placeholder

You can define a basic image placeholder that will show up until the actual image finishes loading. There is already a default image placeholder available. You don’t have to do anything if you want to use the existing one. In fact, I will suggest that you leave it and let LiteSpeed cache use the default one.

Responsive Placeholder

ON! This will ensure that the space is reserved for images and your content is not jumping around. Keeping is OFF will lead to cumulative layout shift on mobile devices, and that’s something that Google doesn’t love. Well, you can turn it OFF if you want to make money with mis-clicked ads!

Responsive Placeholder SVG

There is nothing to do here. The field is already populated. Leave it that way. The placeholder will show a responsive SVG, that’s it!

Responsive Placeholder Color

The grey color looks fine. You can change it to something else if you want.

LQIP Cloud Generator

Instead of showing a plain color for the placeholder, you can use a low-quality image placeholder if you want. This is a very advanced technology that will show a very low-quality version of the image, which will be quickly replaced by the high-quality image. It is a great option because it will not only remove the distraction of lazy loading, but will also make your site appear to load quickly.

LQIP Quality

The higher the quality the larger the file size, and hence, higher the page size. This results in lower page speed. The recommended value is 4, but you can set it to 1 (which is what I do).

LQIP Dimensions

The dimension of your image is less than the dimensions you define here, LiteSpeed Cache will not generate LQIP for that image. The recommended values are 150 x 150. However, you can set it to as low as 10 x 10.

Generate LQIP In Background

Turn this ON to improve your page speed. The LQIP will then be generated in the background using cron-based queue. You don’t have to manually do anything. However, if you see a long list of images in queue, you can run the queue manually instead of waiting for the cron to do it for you.

Lazy Load iframes

If you have videos or other embeds on your website, you better turn this ON. It will help to speed up your website by not loading the iframes until they enter the viewport.

Inline Lazy Load Images Library

Turning this ON will remove one additional HTTP request and improve your page speed. Also, it works great if your site is really lean. If you have a heavy site, you better turn this OFF. So, the choice is yours. I leave it ON.

Page Optimization >> Media Excludes

Lazy Load Image Excludes

List the images here that you want to exclude from lazy loading. This is probably a good idea for the images that load above-the-fold.

Lazy Load Image Class Name Excludes

Instead of listing the images above, you can exclude the images by listing their CSS class.

Lazy Load Image Parent Class Name Excludes

If certain images do not have a CSS class, you can just exclude their parent class to exclude the images from lazy loading.

Lazy Load Iframe Class Name Excludes

You can use the assigned CSS class to exclude certain videos from lazy loading. Do this for videos that are above-the-fold. You can also use this for images that take longer to load and you don’t want any delays when they start loading.

Lazy Load Iframe Parent Class Name Excludes

If the iframes do not have CSS class assigned, just put in their parent class to exclude the videos.

Lazy Load URI Excludes

Here you can list the pages where you don’t want lazy loading of images. Landing pages will be a great example.

LQIP Excludes

If there are certain images for which you don’t want to generate low quality image placeholders, you can put their full URL or partial strings here. This comes in handy if you already have highly optimized images that load super quick.

Page Optimization >> Localization

Gravatar Cache

If your site has tons of comments, you should turn it ON. If your site doesn’t have many comments and most of the posts don’t have comments at all, leave it OFF.

Gravatar Cache Cron

If you are caching Gravatar, leave this ON. If Gravatar Cache is OFF, leave this option OFF.

Gravatar Cache TTL

The default is set to 1 week. However, it is okay if you set the TTL to be longer. Most people don’t care about changing the Gravatar frequently.

Localize Resources

There are certain resources on your website that load from external URL. For instance, Google Analytics. You can localize them to improve page load speed. There is already a large list of domains that you can localize. You can add them all or if you know which resources are loading externally, you can selectively add domains.

With localization ON, the URLs will be copied and replaced with local URLs. You also need to know that this option will work only for HTTPS URLs.

Page Optimization >> Tuning

CSS Excludes

If there are certain CSS files or inline CSS codes that you don’t want LiteSpeed Cache to minify, you can list them here.

JS Excludes

Similar to the previous option, if there are certain JS files that you don’t want minified and combined, you can list them here. Two files – jquery.js and jquery.min.js are already added. They shouldn’t be combined and minified. So, leave them there. You can add other files if you want.

Critical CSS Rules

If you are not generating critical CSS in the first place, you can safely ignore this and leave the area blank. However, if you are generating critical CSS and you have asynchronous loading of CSS enabled, you should define the rules for above-the-fold content to ensure that there are no issues with site design. You shouldn’t be touching this unless you know what you are doing. The option is for advanced users.

JS Deferred Excludes

All the JS files you list here will not be deferred. It is particularly good if you need certain JS files for loading critical content on your site.

URI Excludes

If you want certain pages not to be optimized, you can list them all here.

Role Excludes

The roles you select in this segment will not see the effects of any optimization you carry out on your website.

The number of roles available will depend on your site setup.

Database >> Manage

This is where you find one-click database optimization features. Here are the options you will get:

Clean All

Clicking on this will perform all other optimization options listed on the page. If you don’t want to perform selective optimization, this is button you need to click.

Post Revisions

It is quite natural to perform post revisions while creating a post. You can choose to delete those revisions after you publish the post.

Auto Drafts

WordPress automatically save your posts when you are editing them. These drafts that WordPress saves are kept in the database. Once you are done publishing the posts, you can delete the drafts.

Trashed Posts

If you have trashed some posts (some people trash older and irrelevant posts), you can find them in the trash folder so that you can restore them later (if you want). In case you are confident that you don’t want those posts any more, you can delete the information from the database.

Spam Comments

Comments are all saved – approved, pending, trashed, and spam. You can restore comments from trash and spam folder. However, if you are sure you don’t want them, you can delete them from the comments section or just do a clean removal from this segment. Everything from the database will be removed.

Trashed Comments

Do I need to explain again?

Trackbacks & Pingbacks

You can safely remove them.

Expired Transients

Yes, remove them! It is safe! If you don’t remove them, database size can keep growing and eventually hinder its performance.

All Transients

Again, it is safe to delete these transients. However, certain transients might not be removed depending on your Object Cache settings. For instance, if you turn off wp-admin cache, you need to save transients, and even if you try to remove them from database optimization, you can’t.

Optimize Tables

Yes, go ahead and do that. It’s totally safe.

Clean CSS/JS Optimizer

It will remove all minified and/or combined CSS/JS data. It is safe to clean it from time to time.

Database Table Engine Converter

LiteSpeed Cache uses InnoDB table format, which is far better than MyISAM table format for MySQL database. You can convert all MyISAN table formats to InnoDB format. Do that! It is totally safe.

Database Summary

This is where you can find Autoload data size. Ideally it should be less than 1 MB. If you see total autoload size to exceed 1 MB, you need to clear some autoload data from phpMyAdmin. Most of these autoload entries will be from plugins and themes that you use at some point in time.

Database >> Database Optimization Settings

Revision Max Numbers

This is where you can define the number of revisions to leave behind when you are optimizing the database. I usually leave it at zero because I publish posts after properly revising everything. I don’t need to revert. If you need to revert to a previous version, you can decide on the number of revisions you want to keep. However, do remember that if your database is large, saving too many revisions is never a good idea.

Revision Max Age

You can set a time limit after which the revisions will be auto-deleted. For some people it is just fine! For others, it may be a scary scenario because there may be something wrong with the post and don’t recognize it for a long time. That’s where revisions can come in handy. Auto-deleting revisions after a certain time will perhaps rob you of the opportunity to restore the revisions to fix the mistakes. So, set it carefully.

Crawler >> Summary

If you own the server, these settings might make some sense. Most of the hosts will not even enable crawler option because it will hog resources. So, unless you own the server or you are on a dedicated server, or a very high-end VPS, bothering about these settings will not make any sense.

Still if you want, here is what I will recommend:

Reset Position

If you recently purged the entire cache, you can reset it to start over.

Manual Run

Instead of waiting for the next cron job, you will restart the crawler by hitting this option.

Crawler >> Map

Clean Crawler Map

A crawler map is the sitemap for the crawler. If you want to generate a new map, clean it.

Refresh Crawler Map

You should use this after you have made changes to your site or if you have cleaned the crawler map. Refreshing will allow you to see which pages have been crawled and which have not been crawled. If you want, you can also add pages to blacklist to prevent them from being auto-crawled.

Crawler >> Blacklist

If you have added blacklist and then feel that you need to clear the list, you can do it from here and let the crawler crawl through the pages.

Crawler >> General Settings


Enable this only if you have a dedicated server or a VPS (may be cloud VPS) where only your site or sites is/are present. On shared hosting where other sites are present, enabling this will cause a lot of problem and you can receive a really pissed-off email from the web host, asking you to reduce server resources or upgrade to a VPS. Enabling this will lead to auto cache build.


Fiddle with the default value only if your website has over 30,000 pages.

Run Duration

Again, the default is just fine! If you want, you can increase it for a priority site.

Interval Between Runs

The default is perfect. However, if your server remains idle quite often or if you have a priority site, you can decrease this number.

Crawl Interval

This interval will define how frequently the entire sitemap is crawled. The default is set to 3.5 days. If you want, you can set it to one day (86400 seconds) if you have a small site with less than 3000 pages or if the server belongs to you.


The default value is 3, which is just fine. If you have thousands of pages, setting it to a higher level is not meaningful. Don’t forget that when you set higher crawls, the CPU usage increases. So, if your server has several websites, never set it to higher than the default value.


The default value is 30, which is just perfect. If a page takes more than 30 seconds to load, the crawl will timeout, that is, the crawl will stop. You can set it to a higher value, but that doesn’t make any sense. I mean, really? Why should a page even take 30 seconds to crawl?

Server Load Limit

If you have your own server, you can increase the load limit. Even if the server is yours, you shouldn’t exceed the load limit of 2-3. However, in most cases, the default value of 1 is just fine for most of the sites.

Crawler >> Simulation Settings

If you want to precrawl pages for users who are logged in, you will need to work with simulation settings. The non-logged-in public users are already covered by the regular crawl.

Role Simulation

If you want LiteSpeed cache to precache for specific logged-in users, you need put the user IDs in this field. One ID per line is allowed.

Cookie Simulation

This is the option if you want to precrawl specific cookies.

Crawler >> Sitemap Settings

Custom Sitemap

If you want the crawler to use Google XML sitemap instead of its own sitemap, you can enter the full URL of the sitemap.

Drop Domain from Sitemap

If you don’t have multiple domain in the sitemap (such as multi-lingual or multisite), you better leave this ON so that the database storage can be saved.

Sitemap Timeout

If LiteSpeed Cache fails to parse the sitemap, it will timeout in the defined timeframe. Simply put, parsing will stop. The default value is just fine.

Toolbox >> Purge

This is where you can purge caches generated by LiteSpeed Cache plugin. There is nothing to explain here. You can selectively purge whatever you want. If you have a very large site, Opcode cache, CSS/JS, and pages are the ones that are most important. Also, if you want to purge everything manually, make sure that you are changing the auto-purge rules you can find in the cache section.

Toolbox >> Import/Export

This is the segment where you can export the settings of LiteSpeed Cache and use it on some other site. Alternatively, you can also import settings from some other site. If you are unsure about the settings you made, and you want to revert to the default settings of LiteSpeed Cache, you can do that as well.

Just remember that importing and exporting will go ahead and give you the exact configuration you had set for a different site. If you need site-specific settings, you must not use these tools.

Toolbox >> Edit .htaccess

Okay, this is for advanced users. Unless you know what you are doing, messing around with this section can break your site. So, be careful and don’t complain that I didn’t warn you. This is a nice feature of LS Cache because it bypasses the need for using FTP to access the .htaccess file.

.htaccess Path Settings

Let LiteSpeed Cache autodetect the path. If you have tucked your .htaccess file in some non-standard directory, or if you are using a completely different name for the file, you may have to specify the path manually.

Current .htaccess Content

This is where you can see what’s in the .htaccess file of your website. You can make changes here. However, be careful. Make changes when you know what you are doing!

Toolbox >> Heartbeat

If you don’t have any idea about WordPress Heartbeat, you better not mess around with this thing. Don’t even think of experimenting with this on a production site! WordPress Heartbeat is the Ajax call. It uses a specific file called admin-ajax.php that is found in wp-admin folder.

You should never try to optimize it unless you know for sure that this file is using up a lot of CPU. To find out whether this file is the culprit or not, you should look in speed test waterfalls. You can find the information there.

It is entirely possible that this file is causing the problem. In a scenario like that you need to optimize it. But you should be very well aware of how to carry out such optimizations. You do anything stupid, and you will, almost instantly destroy your site!

Some people may think that disabling the file entirely can resolve the issue, but don’t do that unless some crooked plugin with some bloated code calls that particular file. Better, try to get rid of the plugin.

If removing the plugin is not a possibility and you are left with no other choice but to optimize the file, just increase the interval where the file is used and disable it on those pages where the file is not used.

The most common case where you need to fiddle around with heartbeat are:

  • Updating the cart count in a WooCommerce store when people add or remove products.
  • Auto-saving posts in the WordPress editor.

Well, these aren’t the only cases, but they are definitely the commonest ones!

Should you choose to change or optimize things for some reason, here is what you need to know:

Frontend Heartbeat Control

Turn ON if you need to change the interval.

Frontend Heartbeat TTL

By default, it is set to 60 seconds. You can increase it to 120 seconds if the frontend uses heartbeat. If the frontend is not using heartbeat, set the value to 0 to disable it.

Backend Heartbeat Control

Turn ON if you need to change the interval.

Backend Heartbeat TTL

The default is 60 seconds. You can scale it up to 120 seconds. However, since backend is really safe (because most of the backend functions do not rely on heartbeat), you can turn it off by setting the value to 0.

Editor Heartbeat

It is recommended that you do not turn this ON. The default is OFF, and you should let it be that way. WordPress uses this for auto-saving your posts. It does happen at times that the internet connection drops or you accidentally close the editor window. In such cases, the auto-saving feature keeps a copy that you can restore.

Editor Heartbeat TTL

If there are many writers on your website at the same time, you better increase the value. Never disable the option by setting it to 0. The default value is set to 15.

Toolbox >> Report

Install DoLogin Security

If you need to give admin access to someone using a temporary link, you need to install this plugin. It is an option you can use to grant access to LiteSpeed Cache support team (if you need to contact them). The link will give admin access without the need of a password and a username.

LiteSpeed Report

You can use this feature for sending detailed reports to the official support team of LS Cache.

Passwordless Link

You can generate a passwordless link for wp-admin. However, to activate the generate button, you will need the DoLogin Security plugin I mentioned above.


When you send a report to the support team of LS Cache or to some developer, you can add extra information about the issue you are facing. The more information you give (specifically the actions you performed and the method of recreating the problem), the higher are the chances of getting a proper resolution.

Send to LiteSpeed

Clicking on this button will send the report to the LiteSpeed support team. You can then use the report number as reference to contact the support team through support forum or whatever channel you are requesting support.

Toolbox >> Debug Settings

Honestly, most of the users are not so technical, and hence, they are most-likely not going to go through the logs. However, if you want to send the logs to the support team, you can use the options. Here are the settings:

Disable All Features

When you enable this feature, all LS Cache features and LS Cache will be disabled.

Debug Log

Use this feature (turn in ON) only when you are debugging an issue. If you site has a lot of traffic, you should use the Admin IP Only option.

Admin IPs

This is where you can add the IP address of all the administrators of your site. If you are the only one, you need to add your IP address.

Debug Level

You can use basic level of debugging or advanced. Whatever you want, you can select accordingly. If you are selecting advanced debugging, much more information will be added to the logs.

Log File Size Limit

You can define the file size of log. The maximum you can set is 3000 MB. The minimum allowed is 3 MB. If you are using advanced debugging, the log size will increase.

Log Cookies

If you want to log the values of the requested cookies, you can turn ON this option.

Collapse Query Strings

If you collapse the query strings, it will improve readability of the debug logs. So, to collapse the query strings, turn ON the option.

Debug URI Includes

If you are having issues with the specific pages, you can include the URLs of those pages so that the log is for those pages only.

Debug URI Excludes

If you want to exclude specific pages from the log, you can include the URLs of those pages in this segment. This is particularly helpful when your entire site except a few URLs are experiencing issues.

Toolbox >> Log View

There are two options in here. [D] Clear Log and Clear Log. Both buttons perform the same task – they will clear the log. [D] simply refers to the shortcut button for clearing the log.

Toolbox >> Beta Test

This is where you can test beta versions of LiteSpeed Cache from GitHub. You can switch back and forth between development version (beta version) and stable release version with ease. However, I will never recommend using a beta version on a production site. Beta versions are usually riddled with bugs. You can use the beta version on a staging site and see how LiteSpeed Cache performs.

How to Know Whether LiteSpeed Cache is Working or Not?

This is a nice question! There is a simple trick to know whether LiteSpeed Cache is working on your site or not.

Here are the steps:

  1. Open your website in incognito mode of any browser.
  2. Randomly open a few pages.
  3. After opening a few pages, select any random page and right-click on it and then click on View Page Source (for Chrome).
  4. On the resulting page, press CTRL + F to pull out the on-page search option.
  5. Type in Litespeed. You should see results.

If you don’t see Litespeed on the page, LiteSpeed Cache is not working. If you see results, LiteSpeed Cache is up and running.

Also, initial page loads will be slow, but from subsequent loads, page speed will be fast. You can then move on to Google PageSpeed Insights or GTmetrix and test the results.

Common Errors While Using LiteSpeed Cache

No one can guarantee that you will not run into errors when you use LiteSpeed Cache. It is highly possible. What errors can you face? How to resolve those errors?

Unfortunately, I cannot say which error you will face, but there are some errors that are quite common. Here is a quick list with plausible solutions:

Error: Admin Area Incorrectly Showing

Solution: There can be three possible causes:

  • The error is caused because of caching logged-in users.
  • It is caused caching private content.
  • It is object-caching that is causing an error.

Try disabling all and then purging all cache. Now, enable one at a time and see if the problem comes back. If it does, you will instantly know which element is causing problem.

Error: Contact Form Not Working

Solution: Exclude the page from caching entirely. Alternatively, and albeit a difficult solution, do not combine the CSS and JS of your contact form. If you are using Contact Form 7, you will most likely run into this issue.

Error: Delayed CSS (FOUC or FOUT)

Solution: If this is happening, do not combine CSS, don’t generate critical CSS, and do not load CSS asynchronously.

Error: LiteSpeed Cache Comment Not Showing in Page Source

Solution: LiteSpeed Cache is not working. Reinstall it and reconfigure it! Another possible reason may be Cloudflare feature that strips off HTML comments. Disable Cloudflare, clear cache and then check.

Error: White Screen of Death or Error 500

May be, LiteSpeed Cache is not compatible with other plugins or the theme you are using (usually theme isn’t the culprit). In such cases, open your FTP client and remotely connect to the server.

The first thing you do here is find the .htaccess file and download it. Remove the section that has been added by LiteSpeed Cache.

It is usually this:

## LITESPEED WP CACHE PLUGIN – Do not edit the contents of this block! ##
<IfModule LiteSpeed>
RewriteEngine on
CacheLookup on
RewriteRule .* – [E=Cache-Control:no-autoflush]
RewriteRule \.object-cache\.ini – [F,L]
### marker CACHE RESOURCE start ###
RewriteRule wp-content/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php – [E=cache-control:max-age=3600]
### marker CACHE RESOURCE end ###
### marker LOGIN COOKIE start ###
RewriteRule .? – [E=”Cache-Vary:wp-postpass_f1e495e3326f951f2cdc452774c7d45e”]
### marker LOGIN COOKIE end ###
### marker FAVICON start ###
RewriteRule favicon\.ico$ – [E=cache-control:max-age=86400]
### marker FAVICON end ###
### marker WEBP start ###
RewriteCond %{HTTP_ACCEPT} “image/webp” [or]
RewriteCond %{HTTP_USER_AGENT} “Page Speed”
RewriteRule .* – [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]
RewriteCond %{HTTP_USER_AGENT} iPhone.*Version/(\d{2}).*Safari
RewriteCond %1 >13
RewriteRule .* – [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]
### marker WEBP end ###
### marker DROPQS start ###
CacheKeyModify -qs:fbclid
CacheKeyModify -qs:gclid
CacheKeyModify -qs:utm*
CacheKeyModify -qs:_ga
### marker DROPQS end ###
## LITESPEED WP CACHE PLUGIN – Do not edit the contents of this block! ##
## LITESPEED WP CACHE PLUGIN – Do not edit the contents of this block! ##
### marker BROWSER CACHE start ###
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType application/pdf A31557600
ExpiresByType image/x-icon A31557600
ExpiresByType image/ A31557600
ExpiresByType image/svg+xml A31557600
ExpiresByType image/jpg A31557600
ExpiresByType image/jpeg A31557600
ExpiresByType image/png A31557600
ExpiresByType image/gif A31557600
ExpiresByType image/webp A31557600
ExpiresByType video/ogg A31557600
ExpiresByType audio/ogg A31557600
ExpiresByType video/mp4 A31557600
ExpiresByType video/webm A31557600
ExpiresByType text/css A31557600
ExpiresByType text/javascript A31557600
ExpiresByType application/javascript A31557600
ExpiresByType application/x-javascript A31557600
ExpiresByType application/x-font-ttf A31557600
ExpiresByType application/x-font-woff A31557600
ExpiresByType application/font-woff A31557600
ExpiresByType application/font-woff2 A31557600
ExpiresByType application/ A31557600
ExpiresByType font/ttf A31557600
ExpiresByType font/woff A31557600
ExpiresByType font/woff2 A31557600
### marker BROWSER CACHE end ###
## LITESPEED WP CACHE PLUGIN – Do not edit the contents of this block! ##

Once you have removed that segment from .htaccess, reupload and replace the file.

The next thing you need to do is get into the wp-content directory and find two files – advanced-cache.php and object-cache.php. Once you find the two files, delete them. You should now be able to access your site.

An alternative method you can try is to increase the WordPress memory limits. This may resolve the White Screen of Death issue.

Error: Broken Visuals or Broken Functions

Solution: This is usually caused by combining CSS or JS. If this is happening, you shouldn’t be using it. However, if you still insist on combining CSS or JS files and then fix the issue, you can run the following diagnostic steps by leaving the combine option enabled:

  • Open the site in Chrome and right-click on it and then select Inspect.
  • On the console panel, click on the Network tab.
  • Then click on the small error circle (red colored-circle with a x in it). It will show you the CSS and Js that are missing.
  • Exclude those CSS and JS files from merging. This should resolve the issue.

Look, let me be clear. Diagnosing these errors requires technical expertise. If you cannot do it, you should hire a developer to get it done. Better, you don’t combine the CSS and JS files. The problem of broken visuals and broken functions will no longer haunt you. Combining CSS and JS files is not a necessity to improve page load speed.

Scroll to Top