If your WordPress site feels slow, you’re not just losing patience, you’re losing enquiries, sales, and trust.
Speed isn’t about chasing a perfect “100” score. It’s about making your site feel instant for real people on real phones, on real connections and hitting Core Web Vitals targets that Google uses as UX signals. (Core Web Vitals guidance and reporting:
Quick WordPress Speed Optimisation Checklist
Core Web Vitals “good” targets (measured at the 75th percentile):
- LCP (loading): ≤ 2.5s
- INP (interactivity): ≤ 200ms
- CLS (visual stability): ≤ 0.1
Find out more information here: web.dev
If you only do 5 things this week:
- Fix your hero image (it’s often your LCP).
- Enable proper caching + cache preloading.
- Compress + serve images as WebP (and stop loading huge images on mobile).
- Reduce / delay JavaScript (especially third-party scripts).
- Move to hosting that isn’t fighting you (slow servers make every fix harder).
Measure Properly
Before you touch anything, get a baseline using both:
- Field data (real users) – what’s happening to visitors over time
- Lab data (tests) – what tools simulate in a controlled run
Use these tools:
- Google Search Console → Core Web Vitals report (field data)
- PageSpeed Insights (field + lab, uses CrUX for real-world data)
- Lighthouse (lab, good for debugging “what changed”)
Important: Core Web Vitals pass/fail is typically assessed at the 75th percentile of visits – meaning 75% of users need to get a “good” experience, not just your best-case test run.
The Fix Order That Saves You Hours
Most WordPress sites don’t have one issue, they have a stack of small ones. This order prevents you doing “micro fixes” while the big blockers remain:
- Hosting + server response (slow server = slow everything)
- Caching + CDN (stop rebuilding pages repeatedly)
- Largest content (LCP) assets (hero image/video/fonts)
- JavaScript & third-party scripts (usually the INP killer)
- Layout stability fixes (CLS from banners, late-loaded images, fonts)
- Database + housekeeping (helpful, but rarely the #1 win)
Core Web Vitals In Plain English
LCP (Largest Contentful Paint) – “When Does The Main Content Appear?”
If your hero image, headline area, or featured banner loads late, your site feels slow.
Target: ≤ 2.5 seconds
INP (Interaction To Next Paint) — “How Fast Does Your Site Respond When Someone Taps?”
Even if the page loads quickly, heavy scripts can make it feel laggy when users click menus, filters, accordions, add-to-cart, etc.
Target: ≤ 200ms
INP replaced FID as a Core Web Vital in March 2024, so it’s now the interactivity metric to care about.
CLS (Cumulative Layout Shift) — “Does The Page Jump Around While Loading?”
That annoying “I tried to click a button and the page shifted” problem.
Target: ≤ 0.1
WordPress Speed Optimisation Checklist
Use this like a punch-list. Each item includes what it does and why it matters.
A) Baseline & Tracking
- Record your current CWV status in Search Console (mobile + desktop). (So you can prove improvement.) More information onGoogle Help.
- Test key templates (Home, Service page, Blog post, Contact, WooCommerce category/product/checkout). (Speed varies by template.)
- Note your LCP element in PageSpeed Insights. (It tells you what’s “the big thing” loading late.) More information on Google for Developers.
B) Hosting & Server Fundamentals
- Use modern PHP + enough resources. (Underpowered hosting creates slow TTFB and timeouts.)
- Enable server-level caching (where possible). (Often the biggest win for WordPress.)
- Check response time (TTFB) on mobile. (If this is poor, front-end tweaks will feel limited.)
C) Caching & Delivery
- Enable page caching (and cache preloading). (Stops WordPress rebuilding pages for every visit.)
- Turn on browser caching for static assets. (Repeat visits feel much faster.)
- Use a CDN if you serve across regions or have media-heavy pages. (Reduces latency.)
- Exclude dynamic pages from caching (cart/checkout/account). (Prevents weird WooCommerce behaviour.)
D) Images
- Convert images to WebP and compress them. (Same quality, smaller file size.)
- Resize images to actual display size. (A 4000px photo on a 390px mobile screen is wasted weight.)
- Lazy-load below-the-fold images. (Faster initial render.)
- Preload the hero image if it’s your LCP. (Helps hit the 2.5s LCP target.) More information on web.dev.
- Avoid sliders where possible. (They load multiple large images + scripts.)
E) CSS & Fonts
- Remove unused CSS (or reduce CSS payload). (Less blocking render.)
- Inline critical CSS (or use a tool/plugin that does it safely). (Faster first paint.)
- Limit font families & weights. (Each one adds requests and can shift layout.)
- Use
font-display: swap(or equivalent). (Improves perceived speed and reduces layout issues.)
F) JavaScript & Third-Party Scripts
- Audit third-party scripts (chat widgets, trackers, heatmaps, popups). (They often hurt responsiveness.)
- Delay non-essential JS until interaction. (Can materially improve INP.) More information on web.dev.
- Avoid stacking multiple “all-in-one” tools that each inject scripts (multiple pixels, multiple popups, multiple cookie tools).
- Reduce long tasks (heavy JS that blocks the main thread). (This is the core of INP issues.) More information on web.dev.
G) Layout Stability
- Set width/height on images and embeds. (Stops late resizing.)
- Reserve space for banners (cookie bars, promo bars). (Most CLS comes from “stuff appears late” at the top.)
- Don’t inject elements above the fold after load. (This creates visible shifts.)
- Be careful with web fonts (late font swap can shift text).
- CLS target reminder: ≤ 0.1. More information on web.dev.
H) WordPress Housekeeping
- Remove unused plugins/themes. (Less code, fewer updates, fewer conflicts.)
- Replace heavy plugins with lighter alternatives (especially page builder addons).
- Clean post revisions & transient bloat (carefully). (Helps admin + DB health; rarely your biggest front-end win.)
I) WooCommerce-specific speed wins (if you sell online)
- Optimise category pages (filters, product grids, badges often add JS).
- Keep checkout lean (avoid loading everything everywhere).
- Disable cart fragments / extra scripts where safe (depends on theme/plugin stack).
- Optimise product images aggressively (this is where shops get heavy fast).
J) Monitoring (so the gains stick)
- Retest after each major change (don’t change 20 things at once).
- Watch Search Console CWV trends over the next few weeks (field data updates over time). More information on Google Help.
- Keep a “speed stack” document (hosting, caching, CDN, key settings) so future updates don’t undo the work.
Common WordPress Speed Problems We See
- Slow on mobile, fine on desktop → images too big, too much JS, heavy fonts.
- Good load time but site “feels laggy” → INP problems from scripts/plugins.
- Page jumps while loading → missing image dimensions, banners injected late, font swap.
- Only WooCommerce is slow → product images + filters + theme scripts + uncached pages.
- Scores vary wildly test-to-test → unstable hosting, cache not warmed, third-party scripts.
Quick FAQ
Do Core Web Vitals matter for SEO?
They’re a UX signal and they absolutely matter for how a site feels to users. Google’s documentation frames CWV around user experience and reporting in Search Console.
Why does PageSpeed say one thing and Search Console another?
PageSpeed includes lab testing plus field data, while Search Console is based on real-world usage (field data) grouped over time.
What’s the “biggest win” for most WordPress sites?
Usually: caching + image optimisation + removing/deferring heavy scripts (especially third-party).
Need Help Speeding Up Your WordPress Site?
If you want this handled properly (without breaking layouts, tracking, or WooCommerce), get in touch with Just There and we’ll run a speed audit, identify your actual bottlenecks (LCP/INP/CLS), and implement changes in the right order.



