Skip to content
Start a Mission

Core Web Vitals for WordPress: How We Get Sites Into the Green

A hands on guide to improving LCP, INP and CLS on WordPress with caching, image strategy, script control and hosting, based on real enterprise optimization work.

Core Web Vitals for WordPress: How We Get Sites Into the Green

Speed is not a vanity metric. Slow pages lose visitors, conversions and search visibility. Google measures real user experience through Core Web Vitals: Largest Contentful Paint for loading, Interaction to Next Paint for responsiveness, and Cumulative Layout Shift for visual stability. INP replaced First Input Delay as a Core Web Vital in March 2024, and it is the metric many WordPress sites now struggle with most.

Here is the playbook we use when a client asks us to make a WordPress site fast.

Measure real users first

Lab tools like Lighthouse are useful for debugging, but rankings and real experience come from field data. We start with the Chrome User Experience Report through PageSpeed Insights and Search Console, then add real user monitoring so we can see which templates and devices are slow. Google's thresholds for a good experience at the 75th percentile are an LCP of 2.5 seconds or less, an INP of 200 milliseconds or less and a CLS of 0.1 or less.

Fix the server before the front end

Time to first byte sets the floor for everything else. We look at:

  • Full page caching at the server or CDN edge for anonymous visitors
  • A persistent object cache like Redis for logged in users, carts and admin
  • Current PHP versions, which are noticeably faster than old ones
  • Slow database queries, found with Query Monitor or application monitoring
  • Plugins that run expensive work on every request

Improve Largest Contentful Paint

The LCP element is usually the hero image or headline. To speed it up:

  • Serve the hero image in a modern format like WebP or AVIF at the right size
  • Do not lazy load the LCP image; give it fetchpriority high instead
  • Preload the main web font or use a system font stack
  • Remove render blocking CSS and scripts above the fold

WordPress core already adds fetchpriority to the likely LCP image and lazy loads the rest, but themes and page builders often undo that, so we verify it on real templates.

Improve Interaction to Next Paint

INP measures how quickly the page responds when someone taps or clicks. The usual culprits are heavy JavaScript and third party tags. Our approach:

  • Audit every script and remove what is not earning its place
  • Defer or delay non essential scripts such as chat widgets until interaction
  • Load tag manager containers carefully and prune old tags
  • Break up long tasks in custom JavaScript and avoid large DOM sizes
  • Replace slider and animation libraries with CSS where possible

Eliminate layout shift

CLS comes from elements that move after they appear. Always set width and height on images and embeds, reserve space for ads and banners, load fonts with font-display swap and matching fallbacks, and never inject content above what the visitor is reading.

Images and media at scale

Large sites carry years of oversized uploads. We regenerate sizes, convert to WebP, serve responsive srcset images and push media through a CDN. For video, we use lightweight facades that load the player only when someone presses play.

Keep it fast after launch

Performance decays as content and plugins are added. We set budgets, run automated Lighthouse checks in CI and watch field data monthly as part of support and maintenance.

Third party scripts deserve a budget too

Marketing tags, chat tools, heatmaps, video embeds and A/B testing tools are often the biggest drag on INP, and they are usually added by different teams over several years. We help organizations create a simple script budget: a list of every third party script, its owner, its purpose and its cost in kilobytes and main thread time. Anything without an owner or a clear purpose is removed. Everything else is loaded as late as practical, ideally after the first user interaction or when the relevant section scrolls into view. This conversation is as much organizational as technical, and having a written budget makes it easier to say no to the next tag that would quietly undo months of performance work.

Core Web Vitals checklist

  • Field data reviewed per template, not just the home page
  • Page cache, object cache and CDN in place
  • Current PHP and no slow queries
  • LCP image sized, modern format and not lazy loaded
  • Third party scripts audited, deferred or removed
  • Explicit dimensions on all media and embeds
  • Performance budgets enforced in CI

Frequently asked questions

Will a caching plugin fix everything?

Caching helps the server side, but it will not fix heavy JavaScript or layout shift. Most sites need both server and front end work.

Do page builders hurt Core Web Vitals?

Many add significant markup and scripts. Block themes are usually lighter, as we explain in our block theme guide.

How long until rankings reflect improvements?

Field data uses a rolling 28 day window, so expect changes to appear over about a month.

Want a faster site? See our WordPress performance services.

Brian Messenlehner

Written by

Brian Messenlehner

Founder of AlphaWeb and owner of AppPresser. A former U.S. Marine Corps Sergeant and computer programmer, Brian has more than 25 years of experience leading software teams and co-wrote Building Web Apps with WordPress for O'Reilly.

Currently booking projects

Ready to start your mission?

Tell us what you are building. A veteran-owned team of WordPress specialists will scope it, plan it and ship it.