Performance & Core Web Vitals

Why Your Business Website Loads Slowly (and How to Fix It Fast)

Speed isn’t a “nice to have.” Slow pages leak conversions, damage SEO, and make paid traffic more expensive. Here’s a practical, no-fluff playbook to diagnose the drag and get to under-2s loads on real phones — without wrecking your design or breaking your stack.

What we’ll cover

Common symptoms (and what they really mean)

“Looks fine on my laptop.”

Desktop on fast Wi-Fi hides pain. Your buyers are on mid-range phones, spotty LTE, and busy browser tabs. Always test on throttled mobile and fresh cache.

“Great Lighthouse but bounce is high.”

Lab scores ≠ field experience. Track Core Web Vitals from real users. LCP and INP are the money metrics for first impression and interaction.

“It stalls before anything shows.”

Render-blocking CSS/JS and heavy fonts delay first paint. Inline critical CSS, defer the rest, and limit fonts/weights.

Measure correctly (avoid vanity scores)

Use a simple, repeatable workflow so you’re improving what users feel, not just a number.

StepHowWhy it matters
Field vitals Enable GA4 or Plausible + Web Vitals plug-ins to capture LCP, INP, CLS from real users. Optimizes for actual buyers, not simulated runs.
Lab triage Run Lighthouse and WebPageTest on Mobile/4G throttling. Compare First Byte, LCP, JS total, and blocking time. Surfaces server slowness vs. front-end bloat.
Verify on device Mid-range Android or iPhone in private mode. Hard refresh and time to “useful.” Reality check. If it feels snappy, you’re winning.

Target: LCP < 2.0s on real mobile and INP < 200ms. If you can’t crack that within a week, see Performance & Speed Optimization for a focused fix.

Top root causes of slowness

1) Heavy images & media

Hero JPGs at 3000px, sliders, autoplay video, and raw PNGs torch LCP. Ship WebP/AVIF, constrain dimensions, and lazy-load below-the-fold assets.

2) Render-blocking CSS/JS

Big CSS frameworks and all-site JS bundles block paint. Inline critical CSS and defer anything not needed for first render.

3) Excessive third-party scripts

Chat, analytics, A/B testing, pixel soup. Load only what you need, delay non-essential, and consolidate tags.

4) Slow hosting or PHP stack

Shared hosting with noisy neighbors → poor Time to First Byte (TTFB). Use optimized PHP, HTTP/2+, and edge caching. If you need help, see Server & Hosting Management.

5) Bloated themes & plugins

Page-builder soup, five sliders, and mega-menus add blocking CSS/JS. Prefer lean blocks and custom code. Our Web Design & Development approach keeps bundles tight.

6) Uncached queries

Dynamic fragments, search widgets, and cart counts hit the database on every view. Fragment cache or precompute where possible.

Quick wins you can ship today

  1. Compress and resize hero media. Export WebP, cap hero to ~1600–1920px wide, quality 70–80. Replace PNGs with SVG where possible.
  2. Inline only critical CSS (~10–20KB). Defer the rest with media=”print” swap or rel=”preload” + onload.
  3. Defer non-critical JS. Add defer or move to footer; lazy-init heavy widgets on user interaction.
  4. Kill one third-party. Remove the least valuable script today. Most sites can drop at least one tracker with no revenue loss.
  5. Turn on page caching. If you don’t have it enabled, do it now. Pair with a CDN for static assets.
  6. Preconnect & preload. Preconnect fonts and critical origins; preload your main font in WOFF2 and your hero image.

If you want a guided pass with before/after reporting, our Performance & Speed service ships these in days, not weeks.

Deeper fixes for lasting gains

Code-split by template

Load only what each template needs. Product pages shouldn’t load your homepage slider JS. Break vendor bundles and conditionally enqueue assets.

Critical-path fonts

Limit to 1–2 families, 2–3 weights max. Use WOFF2, set font-display: swap, and subset Latin only unless you truly need more.

Optimize the PHP request lifecycle

OPcache enabled, object cache (Redis), and clean autoloading. Reduce plugin hooks on every request; disable features you don’t use.

Database hygiene

Index common lookups, purge post revisions, and archive logs. Long options autoload can add 100ms+ to every request — trim it.

Edge caching strategy

Serve HTML from the edge for anonymous traffic; use smart cache keys for localization, device, or currency where needed.

Design for speed

Decide constraints up front: no carousels without a purpose, imagery with defined aspect ratios, minimal motion. A fast design is a design choice.

Hosting & server choices that actually matter

Not all “WordPress hosting” is equal. You want predictable TTFB < 200ms, HTTP/2 or HTTP/3, and a clean path to Redis/object cache. If your host can’t toggle these without upsells or tickets, it’s throttling you.

  • Use PHP-FPM with OPcache and keep PHP up to date (performance and security).
  • Turn on server-level page cache (or use a proven plugin) and pair with a global CDN.
  • Separate concerns: media on CDN storage, app on VPS, email via dedicated service.

If you’d rather not babysit stacks, we handle it under Server & Hosting Management.

Special notes for WooCommerce stores

  • Cache the catalog hard, but bypass for cart/checkout/account. Use fragment caching for mini-cart and dynamic badges.
  • Optimize product images with predictable sizes and modern formats; prefetch PDP assets from PLP hover or intersection.
  • Payment & analytics scripts should load only on checkout or thank-you pages when possible.
  • Search & filters: prefer server-side precomputation or API endpoints with caching over live DB scans.

We’ve rebuilt stores to cut time-to-add-to-cart in half. See WooCommerce Stores for approach, or browse wins in the Portfolio.

Launch checklist: sub-2s in the wild

  • Hero image ≤ 180KB WebP/AVIF, width set, aspect-ratio stable.
  • Critical CSS inlined; all other CSS deferred or split per template.
  • Total JS on homepage ≤ 150–250KB gzipped; all scripts defer.
  • Fonts: ≤ 2 families, ≤ 3 weights, WOFF2 with font-display: swap.
  • Page cache + CDN on; HTML edge-cached for anonymous users.
  • INP consistently < 200ms on real devices.
  • CLS < 0.1 (no layout shift on hero, nav, or fonts).
  • TTFB < 200ms from primary regions.
  • Third-party scripts trimmed and delayed; no duplicate trackers.
  • GA4/Plausible Web Vitals collection verified.

When to call in pros (and what we do)

If you’ve shipped the quick wins and your LCP still won’t drop — or you need results this week — we run a focused speed engagement:

  • Audit & plan: lab + field analysis, asset inventory, and a prioritized task list tied to LCP/INP.
  • Implement: media pipeline, CSS/JS splitting, server/cache tuning, third-party governance.
  • Prove it: before/after reporting with field data, not just scores.

If your site also needs a strategic refresh, explore Web Design & Development or review transparent options on Pricing. Questions? Contact us.

Keep your WordPress site fast, secure, and stress-free

You built your site to grow your business — not to manage plugins. Let Build Right Web handle the care so you can focus on what matters most. Explore plans or start with a strategy session.

Powered by Intangible Treasures — paid work fuels ministry projects.