What this problem looks like
LCP is usually a slow hero image, slow server, or render-blocking CSS. INP reflects JavaScript execution on interaction. CLS comes from images without dimensions, late web fonts, or injected banners.
Field data in Search Console matters more than lab scores alone. Fix URLs with most impressions first.
Improve Largest Contentful Paint
- Serve hero in WebP or AVIF under 150 KB where possible.
- Add fetchpriority high and loading eager to LCP image.
- Inline critical CSS or reduce unused CSS from builders.
- Use quality hosting and page cache for low TTFB.
Improve Interaction to Next Paint
Defer analytics and chat widgets below fold interaction. Split long JavaScript tasks. Remove slider plugins that attach expensive scroll listeners on mobile.
Fix Cumulative Layout Shift
Always set width and height attributes on images. Reserve min-height for ad slots and cookie banners. Host fonts locally with font-display swap to reduce FOIT shifts.
@font-face {
font-family: 'Inter';
font-display: swap;
src: url('/assets/fonts/inter.woff2') format('woff2');
}
Page builder specific wins
Disable unused Elementor or Divi modules site-wide. Enable asset loading experiments that load widgets only when present on the page. Replace heavy hero sliders with a static image on key landing URLs.
Validate fixes
Retest in PageSpeed Insights mobile. Monitor Search Console Core Web Vitals report over 28 days for field data confirmation.
When to stop DIY and hire help
Agency sites with dozens of landing page variants need template-level CWV work. BugShield improves Core Web Vitals on WordPress and WooCommerce without breaking tracking or checkout.