I don’t know why it’s taken me this long to release a guide for one of my favorite cache plugins. Much of the internet and WordPress speed groups associate me with Swift Performance WordPress Cache Plugin but don’t be mislead, I am very much an equal fan of LiteSpeed web server and its complementing LiteSpeed Cache plugin!!!
Learn how to configure this advanced plugin for maximum speed and hassle-free caching!
EDITS:
- APR 28, 2020 – updated to reflect new LSC version 3.x.
- See if you can find my contributions in the changelog. 🙂
- NOV 26, 2021 – updated to reflect new LSC version 4.x. I left some outdated options to make sure they are no longer used elsewhere.
Some background about LiteSpeed web servers:
- LiteSpeed is the 4th most popular web-server behind Apache, NGINX and Microsoft IIS. It’s popular since it has the speed of NGINX but the compatibility of Apache.
- You can run Apache software on it (like WHM/cPanel) and also use Apache configurations (like htaccess).
- It’s popular both for small-time users on VPS as well as large commercial webhosts running off dedicated servers.
- It gives great performance out of the box without much configuration.
- Comes with native-software caching plugins for WordPress, Joomla, Drupal, Magento, and others.
- Also comes with built-in security against brute-force attacks and also DDOS protection.
A little background about LiteSpeed cache plugin (aka “LSC”):
- Fantastic FREE cache plugin that has one requirement—has to be used on LiteSpeed servers (which I absolutely love). On non-LS servers, you can use all of its features except caching (which is the main feature).
- This is a true enterprise-grade caching plugin (incredible for both consumer use and enterprise use). I highly recommend it for any site with massive traffic (over 1 million monthly visitors) and/or many pages (over 1k pages).
- LSC is updated really often. Their developers are extremely aggressive in fixing bugs and issues immediately. Their business model revolves around maintaining their server-clients so they never lag on any critical issues. Any bugs found is usually fixed in a matter of HOURS (not days, not weeks).
- For those not running on LiteSpeed, I like Swift Performance cache plugin as my other favorite cache plugin. Rocket, Breeze, Comet Cache, Cache Enabler and Speed of Light are also all nice as well.
LiteSpeed Cache’s many features:
- Server-side caching (using server to generate cached pages rather than slow PHP)
- Object caching
- Can cache private pages (logged-in users), and admin pages
- Image optimization (yes, for free!)
- CDN compatibility
- Database optimizations
- QUIC.CLOUD – sneaky new feature to serve cache pages via CDN for those not on LS servers!
- And a ton more!
What I personally like about LiteSpeed Cache over other plugins:
- Excellent for sites with massive traffic (my preferred choice)
- Essential for sites with thousands of pages (my preferred choice)
- Has object-caching
- More granular and developer options for caching private content
- It’s a true server-side cache plugin (faster than PHP-level ones)
- Many advanced CSS/JS optimization options (if that’s your thing)
- Free image optimization
- Database optimizations (convert tables to InnoDB & view autoloads)
- New QUIC.CLOUD service in the works
LS & LSC not only speeds up your site but decreases your server usage by a lot—improving performance while saving money!
QUICK Setup Guide
Here’s the 2-minute setup version for busy people. It doesn’t take much to get record-breaking results.
(NOTE: I like my configurations so much better than the default LiteSpeed Cache settings. For full explanation of why I chose these settings, see my DETAILED setup guide below.)
- Install LiteSpeed WordPress Cache Plugin (free). Then go to Settings from admin side-panel.
- General > General > Request Domain Key – do this if you plan to use QUIC.cloud services or you want LiteSpeed caching features on a non-LiteSpeed server. For those using LScache on a LiteSpeed server, you can continue without QUIC.cloud integration.
- General > General > Guest Mode – OFF.
- Cache > Cache > Enable Cache – turn it ON. If you’re not on LS server, sign up for QUIC.cloud.
- Cache > Cache Logged-in Users – OFF.
- Cache > Purge > Serve Stale – OFF.
- Cache > Drop Query String – type the following 3 entries on a separate line (fbclid, gclid, utm*).
- Cache > Browser > Browser Cache – ON.
- Cache > WooCommerce > Privately Cache Cart – OFF
- CDN > CDN Settings > QUIC.cloud CDN – turn on if you want to use QC CDN.
- CDN > CDN Settings > Cloudflare API (Cloudflare-users only) – enter email, global API key, and domain.
- Page optimization > CSS Settings > Generate Critical CSS – OFF.
- Page optimization > CSS Settings > Inline CSS Async Lib – OFF.
- Page optimization > Optimization Settings > Remove WordPress Emoji – ON. (Modern browsers already support emojis natively.)
- Hit [SAVE CHANGES] and you’re flying at light-speed!
Got issues?
- No need to exclude or worry about anything, LSC is fantastic out of the box!
- Are you really so lazy? Here’s my default LSC config if you want. (But you’ll still need to do steps 2, 8, 9 above.)
DETAILED Setup Guide
STEP #1 – Install LiteSpeed WordPress Cache Plugin (LSWCP)
- Install LiteSpeed WordPress Cache Plugin (free).
Requirements:
- You must be running on LiteSpeed webserver OR QUIC.cloud service to use their caching mechanism. For best results, please be on a LiteSpeed server!
- If you’re purchasing webhosting from a 3rd-party service, make sure they’re running on LiteSpeed server.
- If you’re managing your own web-server, make sure you configured the cache roots for LS and also enable crawler function.
STEP #2 – Configure LiteSpeed Cache plugin
Go to settings from admin side-panel. Click on LiteSpeed Cache > General.
I’ve gone through all the settings and leave my detailed thoughts on them below. Anything I forget to mention means I left it at default settings. You can also view official LiteSpeed Cache documentation.
General > General Settings:
- Automatically Upgrade – OFF is safest, but honestly you could totally put it to ON. LSC is built freaken solid; updates have never broken any of my sites (unlike other consumer-grade cache plugins like Rocket or Swift). LSC is updated so often it might be less annoying if you just allow automatic upgrades or else you’ll see update nag screens every week (haha). One little caveat: I’ve seen occasional updates creating issues with their Image Optimization feature, so you might want to avoid automatic updates if your site heavily relies on this feature.
- Domain Key – you can request a key if you plan to use any QUIC.cloud features. It’s basically a big CDN but with many extra features like image optimization (compression, placeholders), generate critical css, page caching at the edge. I only use it for image compression for sites not using ShortPixel. I don’t need the other stuff. If you’re using LSC on a non-LiteSpeed server, then you’ll need QUIC.cloud to benefit from their caching capability.
- Guest Mode > OFF. I don’t suggest using this. It can create problems if you don’t test well. Safer is OFF. But if you want so that page scores or new users to never hit a cold cache, you can enable this. Again…I don’t recommend it. And you don’t need it.
- Server IP > put in your web server IP so LiteSpeed cloud services can call/cache your site quicker. Also reduces the crawl overhead, especially if you have over 1k pages.
- Notifications – OFF for me.
General > Tuning:
- Guest Mode User Agents – automatically displays guest mode cache for these agents. You can add more to improve performance for certain agents. Or also remove agents from here.
- Guest Mode IPs – I imagine these are IP’s of page score servers. You can add more if you know what you’re doing.
Cache > Cache:
- Enable Cache – ON (duh!)
- Cache Logged-in Users – OFF for most folks. Only practical if have very few logged-in users, AND they all see different info, AND they visit the site and log in often! Even then, I prefer to leave this off just in case of potential conflicts. You definitely shouldn’t use this if you have many users; it would create too many cached pages and hardly any will be used.
- Cache Commenters – doesn’t have much effect either way, but I prefer OFF.
- Cache REST API – won’t apply to most of you. Leave it ON, but turn off if any functions break.
- Cache Login Page – ON is faster since bots often attack the login page. Turn OFF if it breaks your login page (design, function, captcha). For those changing wp-login url, don’t do that! LiteSpeed servers natively protect admin urls. Much better performance to let LS shut down brute force attacks than to do it with slow security plugins!
- Cache favicon.ico – ON.
- Cache PHP Resources – ON. Really helps with poorly-coded themes/plugins.
- Cache Mobile – OFF for most sites! Don’t turn on unless you have AMP or mobile-specific design/content. Sites with responsive design doesn’t mean you need this!
- List of Mobile User Agents – leave it alone. It’s only used if “Cache Mobile” is on. Can add other devices here if you feel some are missing.
- Private Cached URIs – never used. It’s for pages that need to be cached separately for each visitor (assuming they each see different content). A good example would be user-account pages, but this caching isn’t necessary if your users don’t log in that much. Besides, they’re users already so they probably don’t mind a tiny bit of extra load time. I also don’t recommend since your server spends extra time building cache and users might not be back anytime soon to take advantage.
- Force Public Cache URIs – pages listed here will be cached. Useful for excluding specific pages from wide-reaching exclusion rules based on string.
- Drop Query String – incredibly useful to avoid unnecessary page-caching for some query strings. Some query strings cause content changes (e.g. language, currency, etc) and should be cached as separate pages. Other query strings don’t cause content changes (e.g. FB/Google trackers, affiliate cookies) and are only used for tracking, so these should be listed. I recommend placing these 3 on separate lines: fbclid, gclid, utm*, _ga.
Cache > TTL:
Safer to leave these all alone. Some can safely be raised if you never ever ever update your site.
- Default Public Cache TTL – don’t touch.
- Default Private Cache TTL – don’t touch.
- Default Front Page TTL – don’t touch.
- Default Feed TTL – don’t touch.
- Default REST TTL – don’t touch.
- Default HTTP STATUS 404 Page TTL – don’t touch.
- Default HTTP STATUS 403 Page TTL – don’t touch.
- Default HTTP STATUS 500 Page TTL – don’t touch.
Cache > Purge:
I never mess with any of these.
- Purge All On Upgrade – safest is to leave this ON.
- Purge Stale – I love the idea behind this (reducing server load during cache purge) but it shouldn’t be used for 98% of sites out there unless you know what you’re doing. Leave it OFF.
- Auto Purge Rules For Publish/Update – default settings are fine. You can uncheck certain options if you know they never get updated when new posts are made. Or you can also check “All pages” to be sure that everything gets purged upon new posts or updates. If you have widgets on blog posts that get new comments regularly, “All pages” would be a good idea.
- Serve Stale – OFF is safest so your site never displays outdated content. But if changes are very minimal and you’re constantly bombarded with heavy traffic, this is a nice way
- Scheduled Purge URLs – used to purge specific URL’s at a specific time.
- Scheduled Purge Time – exact time used for scheduled purge. This feature is for people not using auto-purge, or have content generated from external source that doesn’t trigger auto-purge.
- Purge All Hooks – these listed hooks trigger a site purge whenever certain actions are made. The default ones are should be left alone as they directly affect the site design. You can add other hooks from other plugins as well if they affect your site design. (If you don’t know how to add hooks, just manually purge cache whenever you make site changes that affect the frontend.)
Cache > Excludes:
I almost never use any of these. They only thing useful here for me is excluding certain pages from cache. All the other stuff is probably only for diagnostic purposes.
- Do Not Cache URIs – used to exclude pages from cache. (I recommend listing pages that have contact forms, logged-in pages, or any checkouts. Although WooCommerce checkout is already excluded by default.)
- Do Not Cache Query Strings – exclude certain query strings from cache. Good for certain use cases where some query string pages refresh content often.
- Do No Cache Categories – exclude categories from cache.
- Do Not Cache Tags – exclude tags from cache.
- Do Not Cache Cookies – exclude cookies.
- Do Not Cache User Agents – exclude user agents.
- Do Not Cache Roles – exclude specific user roles from cache. Not necessary unless you’re actually caching private pages or logged-in users.
Cache > ESI:
I love the advanced ESI function in that it allows you to benefit from cache even in (dynamic) pages that shouldn’t be cached. It’s an incredible feature and usually only configurable from the server and never from a plugin…but LiteSpeed is just special like that.
You can convert any functions or content, widgets to ESI and it will allow you to decide specifically how to cache it: privately, publicly with its own TTL (good for shorter TTL content), or not cached at all (remaining completely dynamic). In my few test cases, I found that the function worked perfectly BUT still has some issues for any functions that rely on their own specific triggers and JS functions and such. Test carefully and consult the documentation if you decide to use this.
- Enable ESI – I leave it OFF as I don’t use it much.
- Cache Admin Bar – ON seems safe and logical.
- Cache Comment Form – ON seems safe and logical.
- ESI Nonces – for certain plugins (using nonce security functions) to work seamlessly with private cache.
- Vary Group – don’t mess with unless you understand it.
Cache > Object:
Object caching usually isn’t enabled on servers unless A) your webhost specifically allows it or B) it’s your server and you have Memcache or Redis enabled.
- Object Cache – OFF is safe for most folks. You can turn ON if 1) you have memcache or redis installed, 2) you have lots of dynamic content or database queries.
- Method – Redis is preferred over Memcache.
- Host – should be localhost unless it has another address (probably slower and less ideal to have it on an external server).
- Port – default port should be fine unless you installed on custom port.
- Default Object Lifetime – default of 360 seconds is safe but you can increase if your dynamic content doesn’t get refreshed that fast.
- Username – usually not needed unless you’re using the SASL-secured fork version of memcache.
- Password – usually not needed.
- Redis Database ID – usually left alone unless you want to use different Redis database ID to improve performance on clogged up Redis databases.
- Global Groups – I don’t touch it. You can add more if needed.
- Do Not Cache Groups – I don’t touch it. You can add more if needed.
- Persistent Connection – ON is safest.
- Cache Wp-Admin – I prefer this OFF unless you’re actually using object cache to speed up backend. I usually recommend upgrading server if your backend is so slow.
- Store Transients – should be left ON.
- As for “Persistent Connection”, “Cache WP-Admin”, or “Store Transients”…you can enable or disable these depending on your needs. Safer option is to have all of them off or don’t even use object cache in the first place if you don’t know what you’re doing. Caching WP-admin is tempting considering that the admin area can run slow on heavy sites, but you risk showing outdated information.
Cache > Browser:
This is the same function as those HTML expiry lines in your htaccess or that some other plugins do.
- Browser Cache – I like this ON.
- Browser Cache TTL – anywhere from 2592000 seconds (which is 30 days) to 31557600 (1 year) is fine to me.
Cache – Advanced:
- Check Advanced Cache – usually checked unless you’re using multiple cache plugins together, which I highly don’t recommend. In case you ARE using LSC alongside another cache plugin, you can leave this checked or unchecked depending on which plugin needs or intends to use the advanced-cache.php file.
- Login Cookie – only needed if you have multiple sites sharing the same domain name (one in sub-directory). In this, one site needs to enter a unique lookie cookie identifier so LSC doesn’t mix up which visitors are logged in to which site.
- Improve HTTP/HTTPS Compatibility – should be OFF and you should not be having mixed content anyway as that affects your SSL status.
- Instant Click – I leave it OFF. It’s fun when it works but can be troublesome for many sites. The function preloads links when users hover over it. But can cause high server usage if users hover over many links before clicking. This function may also mess with your cookie tracking (affiliates, etc).
Cache > WooCommerce:
- Product Update Interval – the 1st option is safe. Second is better, and third option is best performance. The last is safest. Ultimately, you can decide based on whether or not A) you actually even track stock quantity, and B) show different store notice on category or product pages based on stock status.
- Use Front Page TTL for the Shop Page – ON makes sense.
- Privately Cache Cart – OFF. I don’t like how it’s ON by default and doesn’t make sense. This feature sometimes caused mixed cart sessions for me. I think caching non-empty carts are a waste as potential buyers don’t hang around for too long anyway. Either they buy or they don’t. And if they plan to buy, I think they can be patient for an extra second.
CDN > CDN Settings:
- QUIC.cloud CDN – I think everyone should register for a free QUIC.cloud account. Whether you should enable it is another matter. I personally don’t. QC has these features: HTML-caching on CDN (necessary if your server is slow and/or you don’t have LiteSpeed server), image compression (if you want to use LSC compression instead of ShortPixel/etc), generate critical CSS (I don’t recommend CCSS), CDN for static assets (if you don’t already use another CDN service), and some others.
- Use CDN Mapping – turn ON if using CDN. (Folks on Cloudflare or QC should ignore this.)
- CDN URL – put in the CDN URL and which file types to include. You can add multiple CDN’s (such as if you use one service for images, but another for videos). If using multiple CDN’s for the same assets, it will randomly choose.
- HTML Attribute To Replace – I don’t touch it. Add more if needed.
- Original URLs – you normally don’t have to change this unless your site spans multiple URL’s. For example some multi-sites or multi-lingual sites will use multiple domains or subdomains.
- Included Directories – the defaults should be enough but feel free to add other directories that you want to include.
- Exclude Path – used to exclude any directories sitting within the included directories above.
- Load JQuery Remotely – I leave it OFF but you’re welcome to see if the other options make any difference.
- Cloudflare API – for Cloudflare-users only. Enter email, global API key, and domain. This way, LSC purges Cloudflare cache when your LSC cache purges.
CDN > Manage:
- Cloudflare – I don’t mess with.
- Development – if you want to conveniently disable Cloudflare without having to log in and deal with 2-FA security (haha).
- Cloudflare Cache – convenient way to purge only Cloudflare cache (and not your LSC cache), such as when you update some images or other assets and want the change to show immediately.
Image Optimization > Image Optimization Summary:
LiteSpeed’s awesome free image compression service just got even easier to use! It’s really incredible. So easy to use. All the features of the top image compression plugins out there. And LiteSpeed Cache does it all for FREE! Yikes!
- Gather Image Data / Send Optimization Request – click this to request free image compression.
- Pull Images – when your image compression is ready, click this to download them to your site. (Your original images will be put into a backup directory; I assume somewhere in your “wp-content/uploads”.)
- Clean Up Unfinished Data – click this when some compression processes get stuck and never finish. then you can request more.
- Calculate Backups Disk Space – handy tool tells you how big the backup folder. You ought to download them from your server to your home computer and delete off the server to save space.
- Remove Original Image Backups – do this only after you backup using the previous option.
- Rescan New Thumbnails – if you made changes to existing images, click this so LSC is aware of them.
- Use Original Files & Use Optimized Files – how cool! You can switch back and forth to see the difference. Or if you want to revert quickly. If you want to revert specific images, you do it from your media library.
- Destroy All Optimization Data – in case you hate LSC’s compression and want your original images back.
Image Optimization > Image Optimization Settings:
- Auto Request Cron – turn it ON if you want your site to automatically request optimization for all newly added images.
- Auto Pull Cron – turn it ON if you want to automatically download optimized images to your site. I assume this option and the previous should be the same (whether ON or OFF).
- Optimize Original Images – probably ON.
- Remove Original Backups – OFF unless you’re 100% sure you like LSC’s image optimization quality. Enabling this automatically deletes your originals after optimizing (and you can’t revert).
- Optimize WebP Versions – I leave it OFF, but feel free to play with it if you got lots of time.
- Optimize Losslessly – safe way to optimize without any quality loss but file-size difference won’t be much either. Probably only useful if you want to clean out info and stuff. Really large images do get some benefit, though.
- Preserve EXIF data – OFF, unless you need that info or want to display it on frontend via plugin.
- Create WebP Versions – I don’t personally use WebP but it is indeed better compression and smaller file-sizes than JPEG/PNG. Turn it ON if you want. If there’s any drawback…it’s maybe that your site will now generate so much more images and take up more space….or that your site images aren’t as easily downloaded and viewed from other devices.
- Image WebP Replacement – OFF is default. I assume you should turn it ON if you’re creating WebP images as well.
- WebP Attribute To Replace – nice way to control which images will be replaced with WebP format. This is another way to tackle the server storage issue if you want to benefit from WebP only for some images. (Like maybe only really large images, and maybe if they’re using transparency?)
- WebP For Extra srcset – nice way to enable WebP image replacements for images not managed through WordPress media library.
- WordPress Image Quality Control – use the default 82, or test higher or lower as you like.
Page Optimization > CSS Settings:
Lots of fun options here that many of you will recognize from other caching/optimization plugins. My advice is to be careful! Most of your caching issues will result from choices made on this page here.
Most of you should really not be minifying or combining for a few reasons. Minifying creates extra work for the server and slows the initial visit. It’s great if you have tons of visitors. But otherwise, don’t minify from this plugin…it’s better to do it from Cloudflare or other CDN which already handles it on their servers at the DNS level. If your site is lean already, minify won’t have much effect anyway. Combining CSS or JS really shouldn’t be done because it often causes problems and doesn’t noticeably speed up the site anyway! (You can read why not to combine CSS/JS.)
- CSS Minify – OFF. Use Cloudflare or from your CDN if you want it.
- CSS Combine – OFF is safest. If you want to enable, test carefully!
- Generate UCSS – it either works amazing, or it breaks your site. Test carefully. I prefer off as my sites don’t have unused CSS bloat.
- UCSS Inline – I don’t use UCSS so I prefer off. You may have to test. I imagine, it’s better/safer for smaller sites than big ones.
- CSS Combine External and Inline – can put to ON if you’re doing CSS Combine (which I never do). Sounds like a good idea.
- Load CSS Asynchronously – leave this OFF or else you’ll get ugly FOUC issue. Sure, it helps your Pingdom/GTmetrix score but hurts UX.
- CCSS Per URL – ON is safer but eats up a ton of server. Clean-coded sites can just have this OFF. Test carefully either way.
- Generate Critical CSS – OFF! I don’t recommend critical CSS.
- Generate Critical CSS In Background – leave ON, it’s dependent on previous setting.
- Inline CSS Async Lib – OFF! True CSS should be render-blocking or else you’ll get FOUC issues.
- Font Display Optimization – in my UI point of view, you should only use Default or Block. Never ever do Swap or Fallback, as they cause FOUT issues!
Page Optimization > JS Settings:
- JS Minify – OFF. Use Cloudflare or from your CDN if you want it.
- JS Combine – OFF is safest. If you want to enable, test carefully!
- JS Combine External and Inline – ON seems like a great idea if you’re using JS Combine feature.
- Load JS Deferred – OFF is safest. Some JS is used for critical items above the fold and should not be deferred.
- Load Inline JS – DEFAULT is safest. Deferred or delaying until after DOM load may improve page scores or help other JS optimizations work properly….but it can also alter site design or function.
- Exclude JQuery – ON is safest. You can turn OFF (allowing JS optimizations on jQuery library) if you’ve tested it carefully.
Page Optimization > HTML Settings:
- HTML Minify – OFF. Do it from Cloudflare or CDN if you want it.
- DNS Prefetch – clever tactic of preloading DNS for external domains, so they load faster when you click on URLs to them or when your site loads external assets coming from them. Don’t know what to put? Simply open your site in Chrome Incognito > Inspect > Sources…now type all the external domain sources that you see. All the google analytics and font calls, social media stuff, chat service, CDN, etc.
- DNS Prefetch – specify external domains from which your site calls external assets and this feature prefetches the DNS so these external assets load faster. For example, my site has MailerLite and Google Analytics domains specified in here.
- HTML Lazy Load Selectors – clever option to lazy load entire sections of your web page. This helps page scores and possibly also your page load. I really like this tactic for bloated sites. Can start with common sections and then work your way to page-specific elements on your busier pages (like home page).
- Remove Comments – OFF is safer/faster for me. Doesn’t make much speed difference either way. It’s there mainly to help you improve Pingdom/GTmetrix vanity score.
- Remove Query Strings – no speed improvement when enabled IMO (most caching can handle query strings now). Most people enable it to get better test scores. I recommend to leave it OFF if you’re still adjusting your design, otherwise you’ll run into stale CSS/JS issue.
- Load Google Fonts Asynchronously – test carefully. I haven’t noticed much difference either way as I suspect the most common Google Fonts are already cached on your browser from other sites you visit.
- Remove Google Fonts – I’m a little confused why this option exists. From the way LS documentation explains it, it’s for those already locally-loading fonts and want to make sure to avoid any external Google font calls. But then again, I think anybody skilled enough to load fonts locally would be easily able to dequeue the Google font calls.
- Remove WordPress Emoji – safe to turn ON. It removes one tiny emoji JS call, which isn’t needed nowadays as modern browsers can render emojis natively.
- Remove Noscript Tags – safe to turn ON unless your site is often loaded by older browsers or ones without JS support (like maybe on a device?).
Page Optimization > Media Settings:
- Lazy Load Images – loads images only when browser scrolls to them. I prefer this OFF as I hate lazyload.
- Basic Image Placeholder – what users see before images load.
- Responsive Placeholder – I recommend ON if you’re lazy loading images. It reserves the space for images so that the layout doesn’t jump around when users scroll down. Then again, you might like this off if your website relies on mis-clicked ads to make money. 😉
- Responsive Placeholder SVG – the SVG used as your responsive placeholder.
- Responsive Placeholder Color – probably grey or something not noisy. Just enough to let users know something will appear.
- LQIP Cloud Generator – advanced placeholder technology showing a very low quality version of your image which is soon replaced by the high quality version. It’s great for helping image-heavy sites appear to load quick and decreasing the distraction of lazy-loaded images.
- LQIP Quality – use default setting of 4 or test other settings.
- LQUIP Minimum Dimensions – clever feature to avoid generating LQUIP for super small images that aren’t noticeable.
- Generate LQIP In Background – you’ll have to test it with it ON vs OFF on uncached pages to see it feels. ON is the safer option, probably.
- Lazy Load Iframes – great idea if you have iframes or video embeds that aren’t used above the fold.
- Add Missing Sizes – ON is a smart idea if you’re using lazy load features.
- Inline Lazy Load Images Library – I leave it OFF (better performance this way, I feel). Can turn ON if you want to remove another HTTP request for page score purposes or if your site design is super lean.
Page Optimization > Media Excludes:
- Lazy Load Image Excludes – exclude any images from lazy-load. Probably a good idea for any ATF-images or ones on pages that are constantly skimmed or quick-scrolled by users.
- Lazy Load Image Class Name Excludes – another clever way to exclude images from lazy-load by listing their CSS class.
- Lazy Load Image Parent Class Name Excludes – clever way to exclude images that don’t have a CSS class assigned. Instead, you exclude by their parent class.
- Lazy Load Iframe Class Name Excludes – really awesome way to exclude certain videos from lazy load (such as the ones used near the top of your site). Or ones that take longer to load and you don’t want to delay when it starts loading.
- Lazy Load Iframe Parent Class Name Excludes – convenient way to exclude iframes that don’t have a CSS class assigned.
- Lazy Load URI Excludes – awesome way to disable lazy load functions on certain pages. For example like a landing page where you want images and videos to load ASAP.
- LQIP Excludes – don’t generate LQIP for these images, ensuring they always appear in high quality.
Page Optimization > Discussion Settings:
- Gravatar Cache – great feature for sites with tons of comments. But not necessary (and not recommended IMO) if most of your posts don’t have many comments and/or don’t have much traffic.
- Gravatar Cache Cron – I imagine this should be ON if you’re caching Gravatar.
- Gravatar Cache TTL – default of 1 week is fine but I’d probably set something like 3 months. I feel people almost never update their Gravatar.
Page Optimization > Tuning Settings:
- CSS Excludes – list all CSS files you don’t want to be minified or combined. You can list their full string name (e.g. “elementor-builder.css”) or partial string name (e.g. “elementor”).
- JS Excludes – list all JS files you don’t want minified or combined. You can list their full string name (e.g. “elementor-builder.js”) or partial string name (e.g. “elementor”).
- UCSS Whitelist – makes sure these CSS selectors are always included in UCSS. (As that feature sometimes removes necessary CSS.)
- UCSS URI Excludes – always exclude these CSS selectors from UCSS.
- Separate CCSS Cache Post Types – if using critical CSS, you should list every post type that has its own page design and CSS! (Good examples would be WooCommerce category/product pages, pages with pricing table, etc.)
- Separate CCSS Cache URIs – used in similar manner as previous option but for single URLs. Probably used for any specific page that uses different CSS from other pages.
- Critical CSS Rules – if using “Load CSS asynchronously” feature, copy paste any critical CSS rules here to make sure they load first.
- JS Deferred Excludes – if using “Load JS Deferred” feature, you can exclude any specific JS here to keep them loading as they normally would. (Good idea for any JS needed to render critical content.)
- Guest Most JS Excludes – exclude certain JS from optimization for guest mode. Useful in case guest mode optimizations are affecting appearance or functionality.
- URI Excludes – list any page URL’s here that you want excluded from any page optimizations. Good idea to list pages that have broken design or functions caused by those optimizations.
- Optimize for Guests Only – ON looks like the proper default option. You would only set to OFF if you had guest users that logged-in? (Which seems unlikely.)
- Role Excludes – can exclude page optimizations for these logged-in users. You’ll probably never use this except for certain testing purposes.
- Combined CSS Priority – generally OFF and doesn’t apply unless you have both COMBINED CSS and UNCOMBINED CSS (created by excluding some CSS from combining). This feature loads the combined CSS before the uncombined CSS instead of the default setting (which is opposite). It’s up to you to know which scenario best fits your needs. Generally, we want critical CSS to load first and other CSS to load last. But other times, we have overlapping layers of CSS and want to make sure the correct final layer loads last to avoid any unwanted styles. It all depends on your strategy of deciding whether to have both combined and uncombined CSS, then deciding which CSS should be combined or not, and then finally whether combined CSS or uncombined CSS should load first.
- Combined JS Priority – same idea as the function up above but now for JS.
- Max Combined File Size – I’m sure there’s probably a nuance to what this should be set at. Personally, I don’t like combining CSS or JS at all. But if you had to, it’s safest to combine it all to one file. But if you want to take a step further, you could decrease the max size and chop it into smaller chunks to see if your browser can chew through it faster. I imagine it might help for slower devices or slower internet speeds.
Database > Manage:
Really incredible database cleaning and optimization tools in here. Some that are even sold as separate plugins by other developers. I love that LiteSpeed implemented my requests. <3
- Clean All – does all optimizations listed.
- Post Revisions – deletes all post revisions.
- Auto Drafts – some people check before deleting.
- Trashed Posts – some people check before deleting.
- Spam Comments – some people check before deleting.
- Trashed Comments – self-explanatory.
- Trackbacks/Pingbacks – self-explanatory.
- Expired Transients – safe to delete.
- All Transients – safe to delete.
- Optimize Tables – safe to do.
- Clean CSS/JS Optimizer – safe to do.
- Database Table Engine Converter > Convert to InnoDB – yes, do it for all tables! InnoDB is better MySQL table format than the older MyISAM.
- Database Summary – I love this for seeing what autoloads I have on the site. You should try to keep the total autoloads below 1mb, best is below 500kb.
Database > DB Optimization Settings:
- Revisions Max Number – set a limit if your database is too big and you have many posts. I leave this at 0 as my sites are lean. But other sites can do something like 10-50 to be conservative.
- Revisions Max Age – can set it to auto-delete revisions after a certain time. I personally think this is scary as sometimes one of your posts has an issue and you don’t notice until a long time after.
Crawler > Summary:
This section doesn’t have much effect unless you have your own server, as most LiteSpeed webhosts won’t enable the crawler option (since it can hog resources). You usually don’t have to mess with anything here except for if you want the crawler to pre-cache more aggressively. And wow, so many aggressive options! You can increase crawl intervals or thread-use, even precrawl for logged-in users and cookies, etc.
- Summary > Reset position – reset it if you want it to start over from the beginning, like maybe after a cache purge.
- Summary > Manually run – manually restarts the crawler instead of waiting till the next cron job run.
- Summary > Show crawler status – check and see if it’s running/enabled on your server.
- Map > Clean Crawler Map – a crawler map is like a sitemap for your crawler. You can clean it whenever you want to generate a new one (like after new pages are added).
- Map > Refresh Crawler Map – probably a good idea to refresh this after site changes or after you reset “cleaned” the crawler map. Then you can see which pages are crawled or not, also add to the blacklist to prevent pages from being auto-crawled.
- Blacklist > Empty blacklist – clear out your blacklist if needed.
Crawler > General Settings:
- Crawler – enable it for auto cache build. Uses resources so maybe not a good idea if this is a busy server with many sites that aren’t yours. Of course, if it’s your server and running your sites then you should enable it to use as many resources as you can!
- Delay – the default is fine. This only needs adjusting if you’ve got over 30k pages throughout the entire server.
- Run Duration – default value is fine but you can increase it for priority sites.
- Interval Between Runs – default value is fine but you can decrease it for priority sites and/or server is often idle.
- Crawl Interval – recommended value of 302400 (3.5 days) is totally fine but you can push it up to 86400 (1 day) if your site is small (less than 3k pages) or you have your own server.
- Threads – default value of 3 is fine. Setting higher crawls it faster but doesn’t matter much unless you have at least a couple hundred pages. It also uses more CPU so don’t set it high if you have a busy server with many sites.
- Timeout – 30 seconds is a safe default. Fast sites can go with less (10 seconds?). Bloated sites would need more, maybe 60 seconds tops.
- Server Load Limit – recommended value of 1 is a nice safe limit. But I much prefer 2 or 3 if have your own server.
Crawler > Simulation Settings:
This area is only needed if you want to precrawl pages for logged-in users. (The regular crawl function already covers public non-logged-in users.)
- Role Simulation – precache pages for specific users. Talk about aggressive!
- Cookie Simulation – pre-crawl for specific cookies.
Crawler > Sitemap Settings:
- Custom Sitemap – LSC can precrawl your site automatically but I like entering a sitemap for large sites or ones with many post types, to make sure it doesn’t waste time on non-important urls. You can use your own sitemap like one generated from XML sitemap plugin. Or maybe if you want to use a separate crawler sitemap (such as to exclude certain items from pre-crawl).
- Drop Domain from Sitemap – leave it ON unless you have multiple domains in the sitemap (such as for multisite, multi-lingual).
- Include Posts/Pages/Cats/Tags – usually all should be on, unless you want to exclude certain low-traffic items from pre-crawling.
- Exclude Custom Post Types – copy over the items in the “Available Custom Post Type” box that you don’t want included in your sitemap. You should be excluding all CPT’s that aren’t normally browsed through their own frontend URL. For example, if you have “faqs” but they’re usually browsed through pages, then you can exclude them here. The idea is to exclude as many CPT’s from your sitemap as possible so crawlers (like LSC or Google) can focus on your higher-traffic content.
- Order links by – “Date, descending” makes the most sense to me unless you live in some alternate reality where your older content is worth more, or that your content is placed in alphabetical hierarchy.
Toolbox > Purge:
I love this area dedicated to granular purge options; it’s great for selectively purging things so you don’t overwhelm the server for high-traffic sites (since thousands of users will hit uncached pages). But I never use it for most sites. I just purge everything all at once.
- All options are self-explanatory – I don’t really have to explain them, do I?
- Notable ones are probably the pages, CSS/JS, and Opcode cache. These are most common in day-to-day purging for giant sites.
- Extra note: if you plan to configure your site for only manual purging, don’t forget to disable the auto-purge rules in the cache section!
Toolbox > Import/Export:
This area is good for testing and saving different configurations you had. Do I use it? No because I’ve configured LSC on so many hundreds of sites that I can do it in my sleep.
One question I’m asked a lot is if you can save one global config and import it across all your sites? You can but only if those configured settings don’t have site-specific configurations. I never use it as I prefer to set each site manually just to be sure.
- Export – saves all settings to a convenient LSC settings file.
- Import – imports settings from a LSC settings file. Here’s my default LSC configs if you want.
- Reset Settings – resets all LSC settings to default.
Toolbox > Edit .htaccess:
Love this feature. So handy to quickly view/edit htaccess without having to get server access or FTP. Really useful for troubleshooting things or when you just want to clean up or edit htaccess.
- .htaccess Path Settings – the auto detect should work fine. Specifying the path is usually not necessary unless you have your site in some non-standard directory or using non-standard htaccess file name.
- Current .htaccess Contents – use it safely!
Toolbox > Heartbeat Control:
Before you go around messing with WordPress heartbeat controls, please understand what it’s used for. The WordPress heartbeat is the AJAX call that uses the “/wp-admin/admin-ajax.php” file. Most sites shouldn’t ever have to optimize this unless it causes high CPU usage (seen from slow admin-ajax.php calls in your speed test waterfalls).
In the event that you need to optimize this, be careful how you do it. You shouldn’t completely disable unless it was unnecessarily called from some bloated plugin. Usually, we optimize by raising the interval in places where it’s used and disabling it from the pages where it’s not used.
The 2 most common uses cases for heartbeat are A) auto-saving posts in your editor and B) updating WooCommerce cart count as people add/remove products from your cart in WooCommerce. There are many other uses cases as well but will vary from site-to-site depending on the plugins used. Just be careful before disabling!
- Frontend Heartbeat Control – turn it ON if you want to change the interval.
- Frontend Heartbeat TTL – can double to 120 seconds if it’s still used on frontend or set to 0 to disable.
- Backend Heart Control – turn it ON if you want to change the interval.
- Backend Heartbeat TTL – usually the backend is a safe place to completely disable the heartbeat as most functions don’t rely on it there.
- Editor Heartbeat – I highly recommend leaving this OFF as WordPress uses it to auto-save your work. Should your internet ever cut out or you accidentally close the page, etc…your work will be saved.
- Editor Heartbeat TTL – you can increase the interval if you have so many writers on the site at the same time, but don’t ever disable this!
Toolbox > Report:
- Install DoLogin Security – useful plugin that gives other people instant WP-admin access using a temporary link (instead of login user/pass).
- LiteSpeed Report – useful for sending to official LS support.
- Passwordless Link – generates auto-login link to WP-admin. Requires the DoLogin Security plugin mentioned above.
- Notes – put whatever extra useful info. Like what you did, what you changed, where you noticed the issue and how to recreate it.
- Send to LiteSpeed – sends the report to LiteSpeed. Then you reference the report number in the support forum or anywhere that you’re making a support request.
Toolbox > Debug:
You shouldn’t be changing anything in here unless you’re debugging issues with your site. Honestly, I’ve never had to use it as most issues related to caching have been easy to fix for me.
- Disable All Features – turn ON only if you’re debugging issues.
- Debug Log – turn ON only when debugging. Use the Admin IP option if you have so much traffic that your debug logs get too big.
- Admin IPs – enter your external IP to run debug actions from your browser.
- Debug Level – choose Basic or Advanced depending on your needs.
- Log File Size Limit – increase only if you need it.
- Log Cookies – turn ON if needed.
- Collapse Query Strings – turn ON if needed.
- Debug URI Includes – logs on the pages listed. Useful if you’re only having issues on a certain page.
- Debug URI Excludes – exclude pages from your debug log.
Toolbox > Log View:
- [D] Clear Log – clears the log.
- Clear Log – clears the log
Toolbox > Beta Test:
This is a really useful option if you want to test different versions of LSC (preferably on a staging site) and switch back and forth between BETA and STABLE versions. I imagine it could also be useful for rolling back to a previous version if the new ones are giving problems.
- Use latest GitHub commit – click this to try the latest GitHub version.
- Use latest WordPress release version – click this to use the latest STABLE version of LSC.
STEP #3 – Check if LiteSpeed Cache is working
- Open up your site on a browser (not logged in).
- Load and reload a few pages.
- Then view source, scroll to the bottom and see if the LiteSpeed Cache comments show at the bottom.
Naturally, the page may be a little slower on initial visit but should be blazing fast on all subsequent visits.
STEP #4 – Resolving Issues
- LiteSpeed cache comment not showing – either LSC isn’t working or maybe you enabled Cloudflare’s feature which strips out HTML comments.
- Delayed CSS issues (FOUC or FOUT) – don’t use critical CSS. Don’t combine CSS!
- Broken visuals or functions – try not combining CSS or JS. Or you can use my diagnostic steps for excluding problematic CSS/JS below.
- Contact forms not working – if you can’t get the contact forms to work, the easiest fix is to exclude the page entirely. Another idea is to make sure you exclude the contact form CSS/JS from combining. (I also recommend not to use Contact Form 7.)
- WSOD or error 500 – it’s unfortunate but not every plugin is compatible with others. You can restore your site by deleting the LScache section in htaccess, delete the “advanced-cache.php” and “object-cache.php” files in the “wp-content” directory. You can also increase your WP memory limits.
- Admin area showing incorrectly – this can be due to caching logged-in users, caching private content, or object-caching. Try disabling all and slowly re-enable one by one until you find the issue.
How to find and exclude problematic CSS/JS from combining:
- Isolation Method #1 – leave COMBINE CSS or JS enabled, open up the site in Chrome > Developer Tools > Network (tab), and reload the page. Click the little red error circle to see which CSS/JS are missing. Exclude them from merging and see if things work.
- Isolation Method #2 – disable COMBINE CSS or JS (or even caching altogether), and scan your site in Pingdom. Scroll down to the waterfall and sort the loaded items by file-type (neatly displaying all CSS/JS). Now go back to Swift settings and merge scripts/styles again but manually exclude whichever CSS/JS you think is causing the issue. (Hint: whatever’s breaking is probably related to the problem. Did a certain plugin or theme function stop working? Try disabling those CSS/JS.) Yes, it will take a lot of trial and error. It could be anywhere; maybe a plugin, maybe a theme.
There’s a lot I’m not spelling out because this is very technical and should be handled by advanced users. If you’re having this much issue with merging CSS/JS, you shouldn’t be doing it. It’s nobody’s fault…not yours, not the cache plugin, not your other plugins/themes. (Sure you can try another CSS/JS merge plugin like Autoptimize and it might work for your current setup but then break another day.) I really really don’t recommend merging CSS/JS!
STEP #5 – Playing with Aggressive optimizations
CSS/JS Combine strategy
Again, I hate combining CSS/JS but if you really wanted to do it…I think that should be messing with CSS/JS combining are those with really small or really big sites. If your site is somewhat average-ish, you’ll probably get far better performance and hassle-free operation by not messing with combining CSS/JS at all. If your site is really small (imagine 5 CSS files but only 7KB total), combining them into a single request is not much hassle (less likelihood of conflict) and also speeds up the site because of having fewer HTTP requests. If your site is really big (imagine 20 CSS files and 800KB total), it might benefit you slightly to combine some but not all.
Now, why is it that I don’t recommend to combine all CSS/JS or large sites? It’s because they have so much CSS/JS that it all can’t be loaded at once. And to delay the page rendering by waiting for all of them to load is silly. This is why we should combine some but not all. And more importantly, we have to decide which ones to load first.
There are 2 tactics that come to mind:
- Combine all, exclude a few – this makes the most sense and is most aligned with how cache plugins function. I suggest you combine all CSS/JS and exclude all the ones most necessary for rendering the top of the page.
- Combine a few, exclude the rest – this is even safer since only fewer CSS/JS files would be combined, causing less conflicts, but would require a bit of extra work for you to manually specify which files to exclude.
Notice how I didn’t mention critical CSS anywhere in here. This is because I hate how finicky critical CSS can be. Don’t use it unless you absolutely know what you’re doing. And if you already do, then I don’t have to explain how to use it here.
Object-Caching strategy
I only recommend this for large sites with lots of database-querying and short-term cacheable dynamic content. Anything with a lot of numbers and relatively “live” or “dynamic” info is a good candidate for object caching. Enable it and use redis. Then feel free to mess with the object cache expiry time that works for you and doesn’t serve outdated content. I’ve also heard it’s more performant to use redis in a Unix socket (although I’ve never done it). Here’s the guide for the admin-guys.
NOTE: if it seems most of your content is static and numbers never change, then you don’t need object caching!
Enabling the crawler (or alternative cache-warming function)
Ever notice those other cache plugins that allow pre-caching, preloading, or cache-warming? I absolutely love that feature as it prevents the slow first load for visitors. Unfortunately, LiteSpeed Cache was built to compliment LiteSpeed server which is typically used for high traffic sites which don’t have to worry about cache-warming (since the first visitor pre-warms the cache for everyone else)…but for sites with low traffic, the cache is often cold since nobody has visited for a while.
So you got 2 choices:
- You can enable LS cache crawler from the server – but this requires access to the server and some Linux skill to install/configure it. Once installed, you can then set the crawler settings as aggressive or as conservative as you want.
- Use an alternate cache-warming function – it’s possible that you might not have server access and your webhost doesn’t want to enable the crawler. They’re afraid of you hogging server resources. So your alternate option is to use a plugin like Warm Cache which pre-crawls your pages defined in XML sitemaps (from your SEO plugin like YOAST, or sitemap plugin like Google XML Sitemaps) using cron jobs set at your chosen interval.
Caching private content
Lots of information to read through. I’ll leave it up to you (and/or your developer).
- Choosing Between Public Cache, Private Cache, and ESI
- Private Cache vs. Public Cache
- ESI and LiteSpeed Cache
Need Expert Help?
I’ve tried my best to offer detailed advice for everyone. But there will always be sites that need special configuration. Still have problems? Visit one of the LiteSpeed support channels mentioned below.
- Free help is available on the LiteSpeed WordPress Community Facebook group (convenient, official support team and myself are on there), Slack group (more active and more skilled-users than FB group), LiteSpeed Cache WordPress repo (slower response), or official LiteSpeed support page (great option and more privacy for paid users).
- More explanations about features can be found on official LiteSpeed documentation, wiki, and forums.
- Official LiteSpeed cache plugin page.
- Official LiteSpeed cache beginner’s guide.
- If you need help but still insist on doing things on your own, please respect your level and avoid messing with settings that you don’t understand. Litespeed has features for newbies as well as developers and server experts.
If you would like paid help or even just a free look at your site, don’t hesitate to contact me. (I configure LiteSpeed on dozens of sites/servers every month.)
Take care and hope to see your site at LITESPEED! 😀
Leon
Johnny, the Litespeed guys have published benchmarks that suggest they are significantly more efficient and faster than NGINX. What has been your real world experience?
Johnny
I personally like LiteSpeed better. Not only more powerful to me but also many more features. I think a really lean “naked” NGINX can be faster than LS…but if you compare same features for both, they come out pretty close or at least LS is on top in my opinion. Many people accuse LS of faking benchmarks and so they tried to do an open test where they allow any NGINX experts to configure the test server…except many refused to do it. I’m guessing they’re afraid to put their name on the line.
Either way, both can be very good and used by top companies around the world. No matter what server you use, you should still tune things to get the best results.
pet
hi do you have those setting Export to share to us end we import this settinf?
Jordan
Are you talking about the PHP performance tests? If so then it’s a NGiNX PHP-FPM vs LSAPI of which was developed by LiteSpeed to improve PHP processing performance. This is a huge factor as PHP is CPU intensive, hence why Facebook started HHVM to combat the high compile times. But now have dropped PHP support.
antonio
Jordan, that from facebook its a lie! … the base of HVM is php.. thei just change the “< php" .. make a research and you ll find out..
also they said not supporting " $" all their "language" are with "$"
Dilip Soni
Thanks Johhny, i was searching for best setting for litespeed cache wordpress plugin and finally i found on your blog.
your unofficial guide help me more than official guide and i set litespeed plugin for fastest setting.
Johnny
Beautiful news. Glad it worked out for you, Dilip.
Henk
Thanks for this guide. Your recommended settings certainly shaved a few seconds of the old trusted fingers-crossed-behind-the-back technique I previously applied while toggling options on and off.
The recommendation to let Cloudflare do all the minifying is particularly helpful.
Johnny
Hahaha, very funny. Henk, don’t use critical CSS if you are…I suspect it’s causing your FOUT issue.
Rebecca Cardwell
I have some bit curious about LiteSpeed web server and it’s complementing LiteSpeed Cache plugin.. your content help to clear that, if you clear when I don’t need object caching? if you clear it, I really would be helpful..
Johnny
Hey Rebecca, it’s useful if you want to speed pages and areas of the site that do a lot of database queries but can’t (or don’t want) a full page cache. For example admin areas, or maybe live updates (scores, reports, etc).
Syams Qomar
Please guide us, how to combine LScache and Cloudflare
Johnny
Install LiteSpeed cache plugin. Sign up for Cloudflare and point your domain through their nameservers. Then go to CDN tab in LiteSpeed plugin settings and scroll to the bottom and enter in your Cloudflare info.
pdog
hey – found your litespeed guide too late 😉
I’d already spent a week tweaking litespeed settings! But this guide is EXACTLY what I needed a week ago.
Previously, I’d just used its base settings.. but this time I needed to aggressively optimise a WordPress theme, combine/minify. Got it down from 6 secs load to 0.9. Pretty happy. still only gets 51% on mobile lighthouse but 98% GTmetrix .
Think there is a niche in this, optimising peoples sites litespeeding them up! good luck dude
Johnny
Hehe, it is most certainly a niche. I love messing with LiteSpeed. Tons of little tricks you can do try. Glad you got nice results out of it.
Mark Watrous
I, like many WP admins, use the Avada theme. Recently I discovered Avada generates the page based upon the browser type. Furthermore, the code output for an IE browser will not appear correctly if loaded in Chrome or Safari. I know LiteSpeed has a “mobile” setting, but I do not see any way to get it to cache based on browser type. Is there anything for this problem?
Johnny
Hmmmm….are you saying you want LScache to exclude caching on certain browsers? Or do you mean you want it to cache but differently?
Mark Watrous
I mean to cache separately based on browser type: Chrome, IE, Firefox, Safari, etc.
Johnny
Separately because of different styling? (Not because of content, right?)
Mark Watrous
Correct.
Johnny
I probably wouldn’t solve that issue via caching. Much easier to just edit your element classes and add custom CSS. How many elements are we talking here? Like 1 or 2?
mutu
Debug:
You should be changing anything in here unless you’re debugging issues with your site. Honestly, I’ve never had to use it as most issues related to caching have been easy to fix for me.
maybe there are someting wrong here?
you should be changing?
I thought it probably you should not be changing?
can I get your answer?
Johnny
You’re right! Thanks for catching my typo. It’s fixed now as “shouldn’t”.
Richie
Hi Johnny,
Thanks for the detailed guide. I’m just in the process of switching to Krystal hosting with their LS servers (thanks for that recommendation too) so I’ll be making use of this shortly.
I notice that in respect of the image optimisation section you say “I personally don’t use LSC image optimization features.”. Why is that? Are you using something like ShortPixel instead?
Johnny
Yes, I prefer ShortPixel and honestly for some of my most serious sites, I prefer manually optimizing in Adobe Photoshop. 😀
PS: I noticed your website SSL wasn’t generated correctly.
Richie
OK, thanks Johnny.
Re the SSL, the hosting transfer was going through today so (I hope) it is probably because of that.
Randy
Thanks for putting this together and for making it easy!
The QUIC.cloud looks really interesting so hopefully they’ll be out of beta soon. But in the meantime, what are your thoughts on Cloudflare? Does it really speed up a WordPress site with dynamic content?
Johnny
Thanks, Randy. Glad you enjoyed it. QUIC.cloud is in beta but definitely functional enough for production sites. You should play with it. Regarding Cloudflare, please check out this guide: Cloudflare DNS/CDN service review – Do you need it? (pros and cons) and
Anand Gupta
Hi,
Thanks for the review and information. I recently purchased WP Rocket (not knowing / reading your review on litespeed plugin), what do you recommend and prefer in comparison ?
I am planning to use litespeed open source edition on my server as a webserver. Would it make sense for me to use WPRocket, or just discard it and use this plugin ?
Please advice.
Thanks
Johnny
It really depends on the use case. You can read my other guides comparing or talking about LiteSpeed and WP Rocket to help decide what’s best for you. Or make a post on the WPJ Facebook group and the community can chime in.
Cammy Ang
Thanks Johnny, great tutorial. I had altered my settings based on this article.
Johnny
Awesome! Enjoy. 🙂
Joe
This was so useful, thank you!
BlogMalaysia
1,000 concurrent connection with LiteSpeed is a breeze. Even with the lowest Digital Ocean droplets!
Johnny
1k concurrent…wooo!!!
mrphunin
Hey, johnny gracias for the settings..
Will u pls help me out in getting access to 👉lscache folder… In cyberpanel via SSH…
M unable to find the folder🤔
Also please clear me out 4 1doubt…
May be a silly questions but just curious to know 😊
Can I use wpsuper-cache along with lscache??? By distribution like server level cahe to be handled by lscache and caching 4 post n pages by WP super cache ….???
Johnny
Never use 2 cache plugins together unless you know what you’re doing. I don’t recommend it at all whatsoever. Makes little sense. Why are you trying to find the LScache folder…it should be listed in their documentation.
Michael Bourne
You sir are a legend.
I didn’t know this was here, saw a link to it on Facebook and just came straight here. Didn’t even read the post. I moved to this late last year, and it’s so good to see your guide here, because there are so many settings. I’ll follow your advice and go through the settings and make sure they match.
I still have some issues with the image optimiser, can’t get it to optimise images that missed the boat somehow. Suspect this will be sorted soon.
Game on!
Johnny
Hahah, glad you like it Michael. Let me know how it goes. 🙂
John Le Fevre
Wow. This is awesome. I’ve been struggling with a site that suddenly started performing very badly after the V 3 upgrade. It was obviously a caching a problem and I think I’ve now fixed it because of this guide. It’s the first time in two years we’ve had problems like this.
Just for clarity, even if you are not using QUIC.cloud and are on a litespeed server, you still need to have a domain key to use the image optimisation.
We’re hosted on Veerotech and we chose them because they are a litespeed server site. We had previously been on shared hosting that was litespeed based and was very impressed with it.
Thanks for taking so much time to put this together.
Johnny
Thanks for stopping by, John and very glad you got your issue resolved!
Michel
Hi Johnny,
Any idea why some sites are (way) slower after the v3 update, even when we didn’t change any settings? I’ve been looking for a reason, but the only thing changed is the v3 update of LSC
Johnny
Sometimes the V3 updates change your settings. I wouldn’t know unless I saw it myself. All I can suggest from here to look at my guide and see what settings you have and how they affect your performance. For me the new V3 shouldn’t affect performance.
Michel
Thanks! Will check all the settings 🙂
John Le Fevre
I’ve noticed the same thing. And I’ve been through and adjusted some of the setting in accordance with this guide and still find our site incredibly slow compared to before and also getting a massive buffer crash (which may be because of my purge settings so changing those now). V 3.0 automatically activated the Heartbeat setting, which we were already controlling with another product. But there is still a lot of /admin-ajax.php hits. Investigating further. But I think you are correct. We were fully loading in 4 sec constantly and now were 10+ and “connection lost” messages on publish 🙁
John Le Fevre
Ok. It’s not your imagination.
Since I posted the first reply I’ve been testing all day. I can’t play with our main site too much, but my badly neglected blog uses the same theme and similar (though less) plugins. After a full day of testing I am seeing no discernable difference using Litespeed cache over not. Previously this site was loading in 4-5 seconds. Now it’s in the 12s. This is similar on our main news site.
Test settings:
The plugins I was most interested in checking because they have all had updates almost in parallel with Litespeed were
Jetpack (we block all modules except stats with Jetpack lite)
Littespeed cache
Yoast SEO (introduced a new table structure for storing metadata)
The times represent a rough approximation of multiple GT Metrix tests for each setting. Appearance is the visual appearance in the browser with caches cleaned between each load.
Cloudflare on, but all four above plugins off about 14 sec
Litespeed on, cache on, development mode on, about 12 sec (appearance very quick)
Litespeed on, cache off, development mode on, about 13 seconds (appearance no discernible difference)
Litespeed on, cache on, development mode off, about 12 seconds (appearance no discernible difference)
+ Yoast about 12 seconds (appearance no discernible change)
+ Yoast, +Jetpack + Jetpack lite about 13 seconds page size up from 2.7MB to 2.83MB (appearance appears slightly slower)
Every time we publish now we max out our CPU. This never happened with the previous version. Is it safe to step back to the old version? The last two weeks have been particularly hellish.
Thank you.
Johnny
I have a feeling some settings changed when you updated and perhaps you don’t know how to reconfigure them?
John Le Fevre
Every setting has been viewed and adjusted on five websites and the results are the same across them all. Their performance all turned pear shaped after the V 3.0 upgrade.
I’m open to suggestions, but the settings have been aligned with those in the above guide.
The GT Metrix histories show the story.
This is from the day’s testing. No discernable change in performance after turning on Cloudflare https://aecnewstoday.com/wp-content/uploads/2020/05/Screenshot-2020-05-17-at-6.14.37-AM.jpg
And this is the live news site https://aecnewstoday.com/wp-content/uploads/2020/05/Screenshot-2020-05-17-at-6.14.23-AM.jpg
Johnny
I can look if you get me WP-admin access. (BTW, your image links don’t work because of hotlink protection.)
Randy
Hi Johnny. Do you recommend using QUIC.cloud CDN or should that be disabled?
Johnny
It depends…please see my CDN guides to know if they’re a good fit for you. Or test with it on vs off.
Huy Nguyen
Good job Johnny! Perfect for me
Sudeep Acharya
After enabling and deactivating too this plugin, my site is only browseable in Google Chrome.
How to resolve it ?
Johnny
Your site works fine for me in Firefox.
Sudeep Acharya
That’s a great news but it shows some error of SSL in Edge and mobile. Works perfectly fine in Chrome in both PC and mobile, I am really bewildered.
Johnny
Show me screenshot. You mean you’re not getting the lock icon? How long ago did you generate the SSL?
Sudeep Acharya
Johnny- how to send the screenshot in your comment section. I am getting the lock icon but it says ‘This site can’t provide a secure connection. esanatani.com uses an unsupported protocol. (-113)’.
Johnny
Which URL is showing you that message?
Sudeep Acharya
The home page- https://esanatani.com
Johnny
How long ago did you generate the SSL? That site is 100% working SSL for me. Maybe you need to wait some time if the SSL was generated recently. Otherwise, you need to ask your webhost.
John Le Fevre
Broken for me too
http://www.esanatani.com uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Sudeep Acharya
Which browser you are using ?
John Le Fevre
@ Sudeep Acharya That was Chrome. I just checked again and it loads in Firefox. And now it loads in Chrome!! #Win
Sudeep Acharya
Thanks John, I am able to resolve it now. Let me know the best cache plugin for super low budget host. 🙂
John Le Fevre
Hi Johnny,
Thank you. Sorry about the hotlink protection. The biggest problem now is that even if we publish one post the CPU maxes out, the connection is lost. To me it looks like a buffer problem. It only eases if I turn on under attack mode on Cloudflare.
AIOWPS is installed, but only with the bare minimum of setting and no blocking becasue I found 404 blocking was blocking legitimate urls. We’ve been getting DDOS’d recently so changed the login page and a couple of other settings with AIOWPS.
This is from publishing one post, and then a few minutes later giving it an update. It the classic stock market dead cat bounce 🙂
https://aecnewstoday.com/wp-content/uploads/2020/05/Screenshot-2020-05-17-at-9.55.49-AM.jpg
Login is here
***removed for security***
Thank you very much. I’ve spent sooooooooooo many hours on this.
Johnny
Btw, I still cannot see that image. The hotlink protection is still there.
Johnny
Also, you need to make your .htaccess writeable. I think your security is too aggressive/annoying for your use case.
Sudeep Acharya
@Johny bumping the question to you.
Johnny
Your SSL is working fine for me. I can’t replicate the issue. https://www.ssllabs.com/ssltest/analyze.html?d=www.esanatani.com
John Le Fevre
>>Btw, I still cannot see that image. The hotlink protection is still there.<<
I gave you a log in. You could have seen it when you were logged in. We're a real news site, not a blog. I've just spent the past week fighting off what looks like a Chinese state-backed DDOS attack. I'm not removing any security from our site.
I'm about to go into our morning production roll out and will be doing it without LSC. Later today we'll be testing some alternate caching products. I've had enough of the problems caused by LSC 3.
You've been in the back. As you haven't made any comment, the settings must have been fine, so we'll ditch LSC because it's just costing us to many page views due to people unable to load the site for many minutes after we publish without Cloudflare under attack mode activated which causes other issues due to us publishing on seven platforms simultaneously.
Thanks for taking a look, but I've spent enough time on LSC.
Johnny
The LSC settings are not fine. I tried to correct for you but when I tried to make changes LSC could not do it because your htaccess was not writeable. In any case, I wish you the best of luck. IMO, I probably wouldn’t implement security that way unless you know what you’re doing. Also, blocking DDOS is not the same as blocking backdoor/php/etc. I saw several things I would have done differently. I hope you find an easier solution for you.
John Le Fevre
Hey thanks very much. We’re out of our production. The only time we can test anything on the live site (reluctantly) is during the roll out on a weekday morning.
LSC is not causing our data crash problem on publish so it’s back to the drawing board on that theory.
Please let me know what the cost will be for you doing your thing.
Thanks very much. Greatly appreciated.
John
Johnny
The PRO plan $350 would be a good start.
Syams Qomar
Hi Johnny, please tell me how to configure the cache roots? and, how to know that my crawler enabled?
Johnny
Cache root can be configured in LS console or in WHM if you’re using that. You can see if crawler is enabled by going to crawler page in LiteSpeed plugin.
Syams Qomar
I can’t find configuration of Cache root at LS Console?
Do you tell me at what part?
Johnny
Go here, and click on the type of environment you have: https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:common_installation
Syams Qomar
Anyway thanks. But, there is no cyberpanel environmet.
Only :cPanel/WHM, Plesk, DirectAdmin, Apache Config, No Control Panel, LiteSpeed Native
Johnny
I’m pretty sure your cache root is automatically set already if you’re using CyberPanel. If your LScache plugin can cache, then cache root is already set.
Syams Qomar
This is my screenshot. Is cache root emable?
https://i.postimg.cc/zBhgmqZp/screenshot-927.png
Lucas
Hey Johnny!
I stumbled across your content a few days ago and I’m loving it. It’s everything that a non-developer, developer-focused business owner needs! Haha
I’m building a Woo site (with Oxygen) with thousands of products, on NGINX servers.
Would you recommend LiteSpeed Cache over SWIFT (Paid)?
You seem to be starting to lean more towards LiteSpeed
Many thanks!
Johnny
Thousands of products, you need to be on LiteSpeed for sure.
“non-developer, developer-focused” – hahahah!
Lucas
Thanks for the reply!
And to confirm, I’ll have to use QUIC.cloud to use this plugin, right?
They’ll have a free tier which will work to start so I don’t see why not, although I’m not sure how it compares to something like StackPath.
Johnny
You don’t have to use QUIC.cloud at all. I don’t!
Tania
Hi Johnnu,
What do you mean by Lite Speed servers?
Thank you
Johnny
LiteSpeed is a web server company. Like Apache and NGINX. Some webhosting companies use them on their web-servers. So to have your website on a LiteSpeed server, you either have to use a webhost that uses LiteSpeed server, or you get your own server and install LiteSpeed server on it.
OP
Personal fan of Litespeed. Far faster than NGINIX/Varnish setups. I like the webp image replacement (as it will only effect webp enabled browsers)
Jon
This is a great guide, thank you!
One question on Quic.cloud – so it seems like they are billing it as a way to cache dynamic content (not sure how that would even work) but I don’t see any mention of it in your guide. Is it really just another CDN?
I use Litespeed on my site with pretty much your suggested settings, but still getting hammered on things like Google PSI so very interested in potentially using a CDN.
Johnny
QUIC.cloud will offer a suite of cloud services, not only CDN. It can do image compression, page caching (like Cloudflare’s “cache all” rule), LQIP, firewall security, CCSS generation, and I forgot what else. I’m sure they’ll add more to it over the years. It’s definitely much much more than just a “CDN”.
For Google PSI scores, you can read my guide: How to optimize for Google Pagespeed, Pingdom, and GTmetrix
Geoffrey Ashok
Hey Johnny,
Thanks a lot for this detailed guide on setting up the LiteSpeed Cache Plugin.
I’ve got a couple of questions.
I’m using tinyjpg.com to optimize my JPG images before I upload them on my website.
From your guide here, I think I can make use of the Image Optimization service available on the LiteSpeed Cache plugin.
However, I’ve read in forums and FB groups about Shortpixel and how they can be used to optimize images.
So, I would want to know if my already optimized JPG images coming out of tinyjpg.com be further optimized and reduced in size by Shortpixel/LiteSpeed Cache Plugin Image Optimization?
If so, out of Shortpixel and Litespeed Cache Plugin which one would you recommend?
Also, what do you think of the use of WEBP format for delivering images? Does enabling WEBP have any big advantages over JPG?
My website is relatively small now but it’s steadily growing.
The address is https://motivationcastle.com
Thanks so much for the information you provide through this website. I absolutely enjoy and cherish them 🙂
Johnny
Hi Geoffrey. I don’t recommend re-optimizing things. Use one tool only. Extra optimizations don’t help much. ShortPixel is my favorite algorithm but LSC optimization works just fine as well. You can read here for my opinion on WEBP.
Geoffrey Ashok
Thanks, Johnny.
I guess I’ll go with LSC Image Optimization and go through the setup you’ve mentioned in the Unofficial LSC Plugin Configuration blog.
I checked the WEBP blog and appreciate your views on it 🙂
E L A P Kulasinghe
My VPS 2core 4GB with Cyberpanel free with Openlitespeed, I use the WordPress LiteSpeed cache plugin to cache. But some image files nad some JS files are not cached and they are not served via CDN. I use BunnyCDN. How to force these URLs to use cache and send via CDN? Thank you.
Johnny
What makes you think they aren’t cached?
E L A P Kulasinghe
Mr. Johnny, I was looking at the page source and Gtmatrx both showing some of my images and js files are not delivered by CDN. I contacted the BunnyCDN support and they ask me to install and use their CDN enabler plugin. But I didn’t use it yet because I already using the Litespeed cache plugin to do the CDN delivery, why use yet another plugin to do the same?. After forcing SSL at BunnyCDN interface options, I managed to get JS delivered via CDN but still, My main Website LOGO image is not delivered by the CDN. Thank you for your reply.
Jim Walker
I concur on your Lazy Load recommendations.
– Experimented with the lazy load enabled settings and in nearly all cases turning the lazy load settings to “on” was unsettling and not beneficial.
About image caching. QUIC.cloud?
– I’m not there yet either. I’m likewise a big fan of the ShortPixel Image Optimizer plugin and prefer that for commercial-grade websites.
Just a quick supportive note about the attached “default LSC config” provided in this post.
– I do recommend using this provided import file for generic sites.
– Once imported, just be sure to go back in and reset the domain-specific stuff like Cloudflare, QUIC, et al.
About that “Database > Manage” and “Database Table Engine Converter”
– I do believe that one of the most valuable bits of this post is the calling of the database-specific options available within the plugin. Wow!
– IMHO, Converting to InnoDB is something that’s not talked about enough in the optimization community. The WordPress LiteSpeed Cache plugin makes this easy.
Thank you.
Johnny
Hey Jim, nice to see you here.
– Agree with you on SP image algorithm as being the best one. LiteSpeed is good for those clients with huge media libraries and limited budgets.
– I could have sworn my default LSC config didn’t have Cloudflare settings or QUIC.cloud in it. Argh!
– I love the DB table converter, too. I was the one that suggested and begged them for it. 🙂 Since it released, I’ve been asking for a single-click option to convert all.
Jim Walker
Yes, be cool if the domain name specific settings did not overwrite the existing. 🙂
Johnny
Because I’m so busy…can you export me mine but without it? Hahaha.
Jim Walker
I appreciate that you would trust me in doing that for you…
Probably better for your sanity to try and create a new export file there as time permits.
Johnny
Hahaha, thank you anyway. I will find the 30 seconds at some point!
yash sharma
I used the setting but first I was using the litespeed cache to minify my css/js files. with gt metrix score of 97 and 92
not with Cloudflare enable to minify my css/js files cloudflare is like leaving everything.
it is not even working for me.
page score went to 92 and 83.
any help in this regard?
thank you
Johnny
You’re on the wrong guide. Seems to me you care more about page scores than performance. Please read my guide on optimizing for page scores.
Manish Singh
Hi Johhny,
I have requested a domain key for the Lightspeed. Now I’m in doubt that should I use this for image optimisation or not.
As you said, the short pixel plugin is better.
And if not. How to remove domain key from the Litespeed plugin?
One more thing. Can you tell me if this setting is best for my site?
Thank you
Johnny
I actually haven’t had to remove any domain keys. If you don’t to use their image optimization, then disable the option.
Patrick Healy
This is a fantastic article. Thank you for writing this. LiteSpeed is a great tool but I’ll admit that I get anxiety every time they update it because they seem to be constantly changing the rules for everything. I found this article because it turns out that “Load JS Deferred” froze the Fluent Form that I had embedded in a button on the site. It completely nerfed the jQuery and that should NEVER happen. Hopefully LSSC can make their adjustments on the next go round.
Johnny
Yes, please make this note on their FB group!
Patrick Healy
They have a FB group?
Johnny
Yes, the LiteSpeed WordPress Community – Cache Plugin and Hosting
Tony
Do you recommend litespeed cache over swiftperformance? Found that you did a comparison on the speed cache plugin and swift performance is top of the list.
Johnny
Already explained elsewhere on my site. It depends on the site.
Vlad
This plugin was made for advertising. I understand developers they need money. But I need a plugin, not a hosting or web server. Sorry!
Johnny
Lucky for you, there are many other cache plugins out there. Some of them for free. And others for money.
pieter
Heyy, I’ve been looking all over the place and I found your post, really helpful.
But still, I don’t feel confident about contact forms and email subscriptions not being affected by lightspeed. Do you have any documentation or idea on what’s the best practice to keep them working optimally? It’s also really hard to make sure if its working all the time because settings seem to take time to implement some times.
Johnny
The best practice is not to cache forms. Or hire a developer to set things up for you.
ToTemat
When I set up everything I can in the addition of litespeed and you can hardly see any changes – still about 40% mobile and 60% page desktops in google speed. My server handles it but you can’t see almost any difference I don’t know why.
Johnny
Without seeing your setup, I wouldn’t know why either.
Jesus
Is ESI compatible with Elementor widgets?
Danny Garcia
Hey Johnny,
Thanks a lot for this detailed guide!
I have the following issue and believe that you may know the reason.
I have litespeed VPS and I keep LiteSpeed Cache plugin DISABLED while I debug my website. Every time I install a new plugin in WP I activate it, then I refresh the page and I see that this previously activated plugin is disabled now. So I run this command on my server to clean the cache:
rm -rf /usr/local/lsws/cachedata/*
This helps. When I refresh the page I can see that my new WP plugin activated.
So I’m wondering, is there any way to avoid cleaning cache each time on my server when I debug my WP site?
I keep LiteSpeed Cache plugin DISABLED but this doesn’t help as the litespeed server requires to clean cache each time I make changes. Any workaround to avoid cleaning cache each time?
(I will activate LiteSpeed Cache plugin only when my site will be ready to publish live.)
P.S. I have Serve Stale set to OFF. When I disable the plugin I can’t see x-litespeed-cache header in source code. But somehow litespeed server pushes cache anyway even after the plugin was deactivated. Should I check any settings in the control panel of litespeed server?
Thanks in advance!
Johnny
Do you have Cloudflare or edge-caching enabled? What are permissions on your htaccess and wp-config? Do you have cache enabled for logged-in users or admin pages? Do you have object caching enabled? Did you migrate the site recently? Does this happen only for that one site on the server and not the others? So many things and I wouldn’t be able to guess as quickly as just looking at the site and seeing the problem.
Danny Garcia
Hi Johnny,
Thanks for your response. Please see my answers below:
Do you have Cloudflare or edge-caching enabled?
No. I have no CDN enabled.
What are permissions on your htaccess and wp-config?
.htaccess -rw-r–r–
wp-config.php -rw-r–r–
Do you have cache enabled for logged-in users or admin pages?
Both set to OFF. I actually used the settings from this guide.
Do you have object caching enabled?
Set to OFF.
Did you migrate the site recently?
No.
Does this happen only for that one site on the server and not the others?
This affects all other websites on this server as well.
Johnny
That really doesn’t make sense. You need to hire a dev/admin to look into it for you.
Shantanu Singh
Thanks, Johnny, Finally I implement LS cache without breaking my site.
Johnny
Beautiful news!
Dev
However, it is unofficially but you’ve shared very good stuff. It’s a deep guide and For a beginner it is really helpful to understand all the technical terms. Thanks, Johny.
JJ
Fantastic. Thank you so much for this. My site is still struggling but think it is my theme causing the headache.
You helped me understand what I had spent days trying to get my head around.
Matt
What an amazing guide! Thank you Johnny, you rock!
One Question though. Not a native English speaker so I might be missing some double negative or..?
“Editor Heartbeat – I highly recommend leaving this OFF as WordPress uses it to auto-save your work. Should your internet ever cut out or you accidentally close the page, etc…your work will be saved.”
Should this not say ON?
Johnny
By not affecting the heartbeat via LSC, you are allowing the heartbeat API to function normally.
Stephen Revere
4.0 is out Johnny ~
https://blog.litespeedtech.com/2021/06/01/guest-mode-for-wordpress-in-lscwp-v4-0/
Do we get an update to this soon?
Thanks for all the terrific info you share!
Vaibhav Sharma
Hi
I tried LSCache on the digital ocean server but the speed was less as compared to wp-rocket especially for the mobile speed, desktop speed is still comparable.
agridane
Thank for this guide. Now my site is really fast.
Jen Bell
Awesome guide thank you!
Kingsley Felix
Recently moved to a litespeed server using runcloud, some options are not available in 4.3 of the plugin
NOMORE
You may update this wonderful guide for the new version of Litespeed Cache Plugin.
A lot of options changed and are others are ripped off from authors.
ETO
Thanks for this great guide. However, we would be grateful if you could update the post according to the last version of the app and also how to use LS Cache Plugin with Cloudflare APO.
Marc
“APR 28, 2020 – updated to reflect new LSC version 3.x.” – Long time, no see 😉 Any V.4 update in sight? Seems alot have happening since V.3.
Chris
On couple of lastly developed sites (on LS based hosting) i struggled with good speed results using the LS Cache plugin, regardless of settings changes. After doing comparison test with WP Rocket, Flying Press and Swift Pro, I came to a sad conclusion, that something went wrong with the LS Cache plugin, as it offered the worse results from all 4. Don’t get me wrong, I’m a huge fan of LiteSpeed myself and that’s my preferred choice for customer hosting, but the caching plugin that seems to become a completely different story.
I have even come across some posts on fb groups where people had similar feelings towards LS Cache and how it now compares to other top plugins – so I see I’m not alone in my opinions. One guy even described his efforts to consult that with LS support (since he was an Enterprise license holder), but the support went dark and stopped even replying to emails about this!
All this is really a shame, especially that this plugin is free and should (at least in theory) take advantage of the caching capabilities of the compatible web server. Somehow the competition started to do a better job.
I wonder how you and other users here feel about this and whether they may have some similar experiences with the performance of LS Cache dropping significantly over the last time…
Johnny
I’d take the challenge to anybody who gives me site access. LSC is still my favorite. Can you give me access?
Chris
Well, I’m talking now about sites that are production, while I was testing all this when they were in dev stage. Don’t have such environment now to play with. If I do, I’ll come back to you with access. This could be a fun test. I’d set 4 different copies of the same site only with different caching plugins (the ones mentioned in my post). I’ll configure them myself and let you tune the LS one if the bad results repeat themselves for me. Deal?
Mehmet
Can’t wait to see the result of this challenge! 🙂
Johnny
Sure…you let me know when you have access. The only thing is I don’t tune for page scores…so if you’re aiming for that junk, you can leave me out of it.
Chris
Well, yes and no. Talking about scores I mean something like LCP – it just depends how you count it. PSI or webpagetest tests are just a benchmark to get a common ground. But I agree, green PSI is not my target, just the LCP <2.5s.
Teo
Hi Johny,
thank you for the guide and all the help you are giving to us non-developers! I have a very specific problem that i would like you to help me with if you have the time.
I use LS and for the most part i used all the settings you recommended, but i do have a problem with the Categories in my site. They don’t seem to load fast and and no matter what i enable/disable, this section is always affected. Otherwise, the plugin works amazingly in contrast with WP Rocket and the nginx server i was before.
For example the url: https://heavenofbeauty.gr/product-category/peripoiisi-prosopou/katharismos-prosopou/
and all the categories like this in the menu. I don’t care about benchmarks or Pagespeed metrics, i just want a fast experience for my clients.
Any help would be greatly appreciated!
Johnny
I can’t help you without WP-admin and setting paid time aside to look deeper into your issue. But at a first glance in Developer Tools, it’s obvious you didn’t follow my guide. For more free help…please ask on my Facebook Group and others will chime in for free.
David
This might be a stupid question, but can you and is it wise to run both Swift Caching plugin as well as the LS server incl. the WP LS-plugin at the same time? I got the impression that you run them both
I’m relatively new to setting up a VPS, but managed to do so and applied some of your excellent articles and tips (thanks for that!
Johnny
I definitely do not run 2 caching plugins at the same time. It’s as stupid as wearing 2 socks over each foot.
Mike Gillispie
Have you played with Permatter’s Lazy Load? It’s pretty damn nice. Lot’s of options and you can get it so the average user won’t even notice there is lazy load (unless they are super scrolling). You can set your own offset under the fold.
Far, far, far, far superior to Litespeeds – which I detested. WP Rocket’s wasn’t bad, but Perfmatters is another level.
Johnny
You’re talking to a guy who doesn’t believe in lazy loading images and also doesn’t feel PerfMatters is an essential plugin. Whatever fancy lazy load settings you want can be easily found in Swift or FlyingPress. WP Rocket is another non-favorite cache plugin for me. But hey, do whatever you like if it makes you happy.
WebshapedBiz
Hi.
Thank you for this article. I have a big problem with /usr/local/lsws/cachedata folder. It’s 71GB in size (out of 160gb DigitalOcean droplet) and I couldn’t find a way to clean it up. Any ideas?
Cheers.
Johnny
Purging cache or manually deleting it doesn’t work? On a serious note, I’d recommend joining the LiteSpeed Slack channel and posting your issue in there. I’ve seen it happening from time to time.
WebshapedBiz
Thank you Johnny for your time and effort and please excuse me for not being clear – I know how to delete it manually but I was not sure how safe this would be. What I meant was that I couldn’t find a way to clean it up using either WP plugin or Lighspeed admin panel.
Cheers.
Adel Kumi
Thank you johnny for this helpful article. Due to litespeed plugin limitations. Can I use other caching plugins together with litespeed?
Eileen Valdez
This is a fantastic post that contains a lot of useful information. I appreciate you writing on LiteSpeed Cache for WordPress since it’s really useful to us.
Brad Justin
Yes I was lazy enough to download your settings but then decided to check them and noticed several things in the DETAILED Setup Guide are not part of the saved settings. Just thought I would pass along that heads up.
Rob
Hey Johhny thanks for the guide.
I have a question I couldn’t really find an answer to by googling regarding “Cache mobile” on or off:
I use Elementor on this site and on some elements like certain images I use the ‘advanced > responsive > only show on desktop’ feature. So when a phone user browses the site some images are not shown. I also use this for some Elementor sections which will show a slightly different design or text when on phone.
Should the Cache mobile feature be turned ON when doing this?
Johnny
I would say YES.
Rob
Thanks!
Kurt
I recently briefly research WordPress caching plugins and opted for WP Fastest Cache. Have you not tried that plugin or do you not think it’s that great?
Johnny
Definitely used it before. It works alright and some people swear by it. I wish the UI was cleaned up just a tad. It’s efficient, but really ugly.
Michael S
I followed your tutorial and Tom, his video and NameHero’s. Took me ages to setup but really if i have to look at the overall picture here i dont see amazing results even though my dashboard shows 96%. There is just way too much of a lag when i type my domain name into the browser and i see the site, 1 sec 2 sec 3 sec 4 sec then i see the site load. Should be much faster than that since im using QUIC.CLOUD as well. The biggest disappointment is, gtmetric, Insights all fail with a lighthouse error. They cant connect to my domain. Not sure why, even NameHero states it must be one of your plugins. Yet, i bet if i disable litespeed cache plugin those sites can connect property. So the question really is, whats preventing sites such as test from connecting to my site?
Stephen King
I have an ecommerce site. After setting up litespeedcache (I use Hostinger who apparently have Litespeed servers) I now get an “pricespecification” error on on every page on Google Search Console and also on Rank Math Index Status. The error was not there before I used the litespeed plugin. I also use QUIC.CLOUD.
Have you seen this before??
Thanks,
Steve.
ToTemat
Hello, I have a question about LiteSpeed Cache. Do you need to use these third-party cloud and redis services in this plugin to see positive differences in website speed. And why, after installing this plugin, the database is many times larger. I have a small website on the lite speed server https://totemat.pl/ and I do not know why it is that when I run this plugin, the website works slower than faster according to google page speed. Maybe you have any suggestions?
Mukesh
I don’t really like LiteSpeed Image optimization. I use Jetpack Image CDN which optimise image on the fly. And it’s free.
Estefan
Thanks man,
I have got a big problem. TTl for public pages is about 1 week and I enabled cache and also crawler. every pages on my site cache base on sitemap with carwler and everything is ok.
but I don’t know why cache delete in short time (most of the time less than 2 hours!) and it’s too horrible. why? how can I fix this?
Johnny
Maybe you have something (a CPT?) triggering post resaves/refreshes and needs to be excluded from the purge triggers.
Estefan
Thx man, I dont have any special custom post type, it’s just a simple shopping website with woocomerce.
I also switched off these: logged-in cache / commentarie cache / rest-api cache / guest mode and guest optimization / purge all while update / server stale /and ESL.
I’m so confused about that …
Blogging Pursuits
Thank you for this helpful guide on the LiteSpeed Cache WordPress Plugin! As a WordPress user, I appreciate the knowledge and information you’ve shared in this guide. Your efforts are truly appreciated.
Zvezdelin
Please update tutorial and default LSC config file 🙂
Yasar Ali
I am already utilizing a premium plugin WP Rocket. Can I use the LiteSpeed Cache plugin along with WP Rocket or they will cause broken codes if used simultaneously?
Johnny
You generally can’t use 2 cache plugins simultaneously. If you know how to keep features from overlapping, then sure maybe but it’s just not recommended. And if you had to ask the question in the first place, then you’re not the person to do that.
Ceco
Hello, Johnny, please update your default config file. You are great and my site is at 100 PageSpeed
Francesco
Hi Johnny. I have a weird problem. Litespeed works great on my website and doesn´t break the front end, but it breaks the back end. I don´t see the icons of the WordPress dashboard and when I want to customize the website, the page is not loading. What could be the cause? (noob here)
Johnny
You’re 100% sure it’s LiteSpeed? I’d try disabling other plugins one by one if I were you. Something’s conflicting with another thing.
User78
Thank you for a great and detailed guide! Could you update it to 2023-2024?
N
Thank you Johnny. Through the “how to set up a custom hear guide , I have been able to set Cache-control for static resources like CSS, JS and so on.
But I want to set a manual Cache-control for dynamic or html/text files.
I set TTL via LiteSpeed WordPress plugin but I noticed it only appears when cache is missed. If cache is hit, it does not show.
But I want to set a permanent one that shows. There s a reason for this
hasintha
damn awesome article good sir
parham
hello
with litespeed cache , some elements of elementor and elementor pack pro didnt show right and i have problem with this , can you help?
thanks