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.




