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