Skip to main content
Two rules cover most of what happens here.
1

Purge before you conclude anything

A cached page built before your change is still being served. This explains more reports than every other cause combined.
2

Exclude rather than disable

When one script or selector breaks under an optimization, add it to that feature’s exclusion list. Losing one file is much better than losing the optimization site-wide.

Caching problems

Check the cache status first, on the overview page or through /cache-status.Managed hosts often make wp-config.php read-only deliberately. Add the constant by hand and Lightify picks it up on the next admin load.
On Apache without mod_headers, the x-lightify-cache header is silently skipped even though caching works. Check for files under wp-content/cache/lightify/ before concluding anything is broken.
In order: purge Lightify, then your CDN, then your host’s cache. If you use Cloudflare without the official plugin, Lightify cannot purge it for you.If it keeps happening only for you, it may be your browser’s service worker cache. Unregister it under Application > Service Workers, or lower the cache expiration.
Turn off Cache Logged In Users immediately, then purge.That setting caches one copy per role, so it is only safe when pages are identical for everyone in a role. Any per-person content, a name, a balance, a personalized list, will leak between users. Exclude those pages before turning it back on.
These are excluded automatically by the WooCommerce integration. If you see problems, something else is being cached that should not be. Add the specific paths to page exclusions and purge.

Layout and styling

Almost always Remove Unused CSS. It analyzes the initial view, so anything hidden until interaction looks unused: menus that open on click, modals, dropdowns, accordions, tabs.Add the selector to CSS Inclusions rather than disabling the feature:
Then purge.
Turn on Properly Size Images, which fixes the usual cause. Prevent Layout Shifts addresses the rest.Ads, embeds, and cookie banners injected above existing content cause shifts no plugin setting can fix.
Disable Block Editor CSS removed the styles your content depends on. Turn it back off.
Remove Dashicons and your theme uses them on the front end. Turn it back off.

JavaScript

Defer JavaScript is the usual cause. Add a fragment of the script’s filename to its exclusions:
If deferring is not the cause, check Delay JavaScript Execution, which holds scripts until interaction.
That is delayed JavaScript behaving exactly as designed. Anything that renders visible content should be excluded from delaying; delay is for third-party tags, not for your own interface.
Delayed analytics only fires once someone interacts, so bounced visits go uncounted. Either accept that, or exclude the analytics script.

Images

Your hero image is probably being lazy-loaded. Lightify excludes the first couple of images automatically, but a hero injected by a page builder can slip past. Check whether it has loading="lazy", and raise lightify_lazy_load_above_fold_count if so.
Confirm in the network panel that responses are WebP. A CDN in front of your site can strip or override the swap. Also purge, since pages cached before conversion still reference the originals.
Lower the compression by raising the quality:
Then purge everything so images are reconverted.

Score and metrics

It is built from real visitor measurements on your cached homepage, so it needs traffic. A new install or a quiet site will show nothing for a while. That is correct, not broken.
Expected. One is a lab test on a throttled device, the other is what your visitors actually experienced. See why they disagree.
Page caching cannot help requests it does not serve: admin pages, logged-in pages, and anything excluded. Add an object cache for those. If uncached TTFB is still poor, the cause is your hosting rather than the plugin.

Conflicts worth knowing about

Still stuck

What to include when you contact support.