Image optimisation combines native or opt-in JavaScript lazy loading, LCP protection, next-generation conversion, and server delivery rules. Original Media Library files remain the source of truth.
Lazy loading
The fresh default is lazyLoadNative: true with lazyLoadImages: false. When the image feature is enabled, native loading uses the browser\’s loading=\"lazy\" behavior. The legacy observer is a separate choice and can use placeholders, background-image handling, and video/iframe policies. Exclude navigation, logo, and above-the-fold media explicitly.
LCP guardrails
lcp_guardrails and lcpHeroPreload are on by default. The plugin avoids blindly lazy-loading the first protected images and can use RUM, PageSpeed, or Optimization Detective evidence to prioritize a measured hero. autoPreloadLCP and prioritizeLCPImages remain explicit choices; verify that the selected LCP image is eager and has an appropriate fetchpriority.
WebP and AVIF conversion
Conversion uses GD or Imagick when available, runs in bounded background batches, and keeps the original upload. conversionFormat selects WebP, AVIF, or both. Status and failures are visible in the Dashboard and wp wppo image status. Smart quality and WordPress\’s size-aware quality APIs are used where the current WordPress version provides them.
Server delivery
When enabled, server rules serve a supported next-generation sibling or mirror and add the appropriate MIME and Vary: Accept behavior. Nginx needs rules in its server configuration; .htaccess is not evaluated there. Restart OpenLiteSpeed after editing its rules.
Settings
| Key | Default |
|---|---|
lazyLoadImages | false |
lazyLoadNative | true |
lcp_guardrails, lcpHeroPreload | true |
autoPreloadLCP, prioritizeLCPImages | false |
avifFirst, smartQuality | true |
maxLongestEdgePx | 2560 |
Verify
wp wppo image status
wp wppo image convertCheck the browser\’s selected source, dimensions, alt text, and LCP behavior. Do not publish a next-generation format until the server and CDN preserve the original fallback.