Skip to main content

Final Stack: LSCache + Perfmatters

This is a common division of responsibilities:

  • LSCache owns page caching.
  • Perfmatters owns asset optimization (CSS/JS/lazy load/script manager).

Non-Negotiable Rule​

Do not enable the same feature in both plugins.

Ownership Map​

FeatureOwnerKeep disabled in
Page cacheLSCachePerfmatters
CSS optimizationPerfmattersLSCache Page Optimization
JS optimizationPerfmattersLSCache Page Optimization
Lazy loadingone toolthe other tools

LSCache: Page Cache​

Key points:

  • Cache public pages.
  • Do not cache logged-in/transactional flows.
  • Exclude admin/login routes.
Typical excludes (adjust to your site)
  • /wp-admin/
  • /wp-login.php
  • /cart/, /checkout/, /my-account/ (if ecommerce)
tip

TTL can be long when purge rules are reliable. If content updates are not purging correctly, shorten TTL and fix purge behavior.

Perfmatters: Assets​

Turn on CSS/JS features step-by-step and verify after each change:

  • remove unused CSS (if you can validate templates)
  • defer/delay JS (exclude critical scripts)
  • lazy load below-the-fold images (exclude LCP)

LSCache: What to Keep Off​

If Perfmatters owns CSS/JS, keep LSCache Page Optimization CSS/JS transforms off (minify/combine/async/UCSS/defer). This avoids double-optimization.

Verification​

  • Confirm cache headers show hits on public pages.
  • Confirm bypass on login/admin/checkout.
  • Confirm there are no duplicated optimizations (double minify, double lazy load).
Check public page cache headers
curl -sI https://example.com/ | grep -iE 'x-litespeed-cache|cf-cache-status|cache-control'

Checklist​

  • One owner per feature.
  • Cache excludes validated.
  • CSS/JS changes applied one at a time with verification.
  • Cache headers verified.

What's Next​