Why website speed directly impacts conversion

Performance is not a cosmetic score — it is a production problem. Slow TTFB, render-blocking scripts, and poor Core Web Vitals cost leads, revenue, and Google rankings. This page explains what goes wrong technically on WordPress sites and what actually makes a measurable difference.

  • LCP, INP & CLS without buzzwords
  • WordPress & WooCommerce in production
  • Caching, CDN & render blocking
  • Performance linked to conversion

How important is website speed really?

Website speed is a direct ranking factor and a conversion factor. Google uses Core Web Vitals (LCP, INP, CLS) as an official signal. Field data from the Chrome User Experience Report carries more weight than a Lighthouse lab score.

For every extra second of load time, the conversion rate drops by an average of 7% (Akamai/e-commerce studies). You see the same pattern on lead sites: bounce rates increase, form starts decrease, especially on mobile. For SMB sites with WordPress, performance is rarely “a single setting” — it is a stack problem: server (TTFB), caching, JS bundles, images, and third-party scripts.

A PageSpeed score of 90+ is useful as a guideline, not a goal in itself. What counts: a green CWV in Search Console, fast LCP on your money pages, and INP that doesn't block interaction (menu, form, checkout).

📉

SEO impact

CWV is a page-level ranking signal. Slow category pages rank lower, even if your homepage is fast.

💰

Conversion impact

Slow sites lose leads before the hero loads. Performance is UX — see also conversion optimisation.

🔬

Measurable

Search Console (field data), WebPageTest (waterfall), Lighthouse (lab). Three sources, three truths — always compare.

Why slow websites revenue costs

Performance is not an IT statistic — it is revenue leakage on every page load.

53%
Mobile visitors leave the site if loading time > 3 seconds (Google research)
−7%
Conversion per extra second of load time (average e-commerce / lead sites)
Higher bounce rate with LCP > 4s vs. LCP < 2.5s — same traffic, half the chance of a lead
Ads
Slow landing pages = higher CPC & lower Quality Score — you pay double

Typical funnel leakage on slow WordPress sites:

  1. Visitor clicks (organic, Ads, or direct) → server responds slowly (high TTFB)
  2. LCP element loads late (hero image, webfont) → 40%+ bounce before scroll
  3. Menu/form responds slowly (INP) → interaction feels “broken”
  4. Layout shift (CLS) → misclick on CTA or abandonment at checkout
  5. Result: same marketing budget, fewer leads — while website redesign or whether a targeted performance fix is often cheaper than buying more traffic

Core Web Vitals Explained without buzzwords.

Three metrics that Google measures in real users. No marketing terms — this is what the browser reports to CrUX.

LCP ≤ 2.5s = Good

Largest Contentful Paint

When the largest visible element (usually a hero image, video poster, or large text block) is fully rendered. Measure load time, not “DOM ready”.

Typical causes on WordPress:
  • Slow TTFB → HTML loads late
  • Hero as CSS background instead of <img>
  • No preload/fetch priority on LCP element
  • Render blocking CSS from page builder
INP ≤ 200ms = Good

Interaction to Next Paint

How long does it take for the page to visually respond after a click, tap, or key? INP replaces FID and measures the worst interaction (75th percentile).

Typical causes:
  • Long tasks by third-party JS (GTM, chat, heatmaps)
  • Main thread blocked by page builder frontend JS
  • WooCommerce cart fragments on every page
  • No code splitting — one bundle for everything
CLS ≤ 0.1 = Good

Cumulative Layout Shift

How much does the layout shift unexpectedly during loading? Fonts, ads, heightless embeds — users miss buttons, especially on mobile.

Typical causes:
  • Webfonts without size adjustment / fallback metrics
  • Images without width/height attributes
  • Cookie banners & chat widgets that push content
  • Lazy-loaded content above the fold

TTFB (Time to First Byte) is not Core Web Vital, but the upstream bottleneck: if the server needs 800ms, LCP can never turn “green” — no matter how good your frontend is. See technical SEO for the overlap with crawl and indexation.

Biggest performance problems at WordPress

No checklist — these are the patterns we encounter weekly on SME sites, lead websites, and WooCommerce shops.

Server

Slow TTFB due to shared hosting

Problem: A Time to First Byte above 600ms means that the browser is waiting for PHP/MySQL before HTML can be parsed at all. With shared hosting, your site shares CPU with dozens of other WordPress installations.

Impact: LCP and FCP skyrocket — caching only helps if HTML comes out of the cache quickly.

Fix: Object cache (Redis), server-level page cache, query optimization, upgrade to VPS or managed WordPress hosting.

Plugins

Plugin bloat & autoloaded options

Problem: Every active plugin loads hooks, scripts, and sometimes database queries on every request. Autoloaded options larger than 1MB slow down every page load — including the admin.

Impact: Higher TTFB, more render-blocking JS, worse INP due to main-thread blocking.

Fix: Replace plugin audits and autoload cleanup with lightweight alternatives or custom code.

Page builder

Elementor / Divi CSS & JS per widget

Problem: Page builders generate inline CSS per section and load frontend bundles for each widget type — even widgets that are not on the page.

Impact: Render-blocking stylesheets, large JS bundles, poor LCP due to late hero render.

Fix: Limit asset loading, strip unused CSS, consider a custom theme or hybrid build.

WooCommerce

Cart fragments & product queries

Problem: WooCommerce loads cart fragment AJAX on every page, even outside the shop. Product archives without query caching generate heavy JOIN queries.

Impact: Slow category pages, high INP on add-to-cart, server load during traffic spikes.

Fix: Fragment caching, disable fragments on non-shop pages, product lookup tables, CDN for static assets.

Media

Uncompressed uploads & no srcset

Problem: 4MB hero images directly from the media library, no WebP/AVIF, no width/height attributes → CLS and LCP issues.

Impact: The LCP element is almost always the hero image — this is the #1 bottleneck on SME websites.

Fix: Responsive images, modern formats, fetchpriority="high" on LCP, lazy load only below-fold.

Third-party

Tracking pixels & chat widgets

Problem: GTM loads Tag Assistant, Hotjar, Intercom, Facebook Pixel, and Google Ads remarketing — all render-blockers or long-task drivers.

Impact: INP degrades, Lighthouse “Reduce unused JavaScript” explodes, real users slower than lab score.

Fix: Consent-gated loading, defer to after LCP, server-side tracking where possible, tag audit.

With a new build, we structurally prevent this via our WordPress website approach. For existing sites, we start with a waterfall analysis — not with “yet another cache plugin”.

Elementor vs. customization: performance in figures.

Elementor is flexible — but the frontend architecture comes at a price. A fair comparison prevents false expectations.

Aspect Elementor (typical) Custom / hybrid
CSS output Per-widget inline CSS + global kit CSS (100–400KB+) Critical CSS inline, rest deferred — typically 15–40KB above-fold
JavaScript Frontend bundle + widget handlers, also unused widgets JS only for interactive components on that page
Database queries Additional meta queries per template/section Optimized queries, often static HTML with cache
LCP hero Background images via CSS — browser discovered late <img> with fetchpriority, preload, explicit dimensions
Maintenance Plugin updates can break performance Controlled deploys, no builder overhead
Realistic Lighthouse 60–85 after optimization (typical SME) 90–100 achievable with the same content

Elementor can be optimized — we do that on our Elementor website pathways. But the physics of inline CSS per widget remains. For performance-first projects, we more often opt for custom development or Bespoke software when the site is business-critical.

Caching, scripts & render blocking.

Optimizing performance = knowing which layer solves the problem. Caching masks slow PHP; it does not structurally solve slow PHP.

Browser cache

Cache-Control headers on static assets (CSS, JS, fonts, images).

Pitfall: Too short max-age or no versioning → visitors see old assets after deployment.

CDN edge cache

HTML and static files close to the user (Cloudflare, Bunny, Fastly).

Pitfall: Dynamic content (logged-in, cart) accidentally cached — checkout bugs.

Page cache

Full HTML response cached (LiteSpeed, WP Rocket, Nginx fastcgi_cache).

Pitfall: Cache invalidation during content updates; exclude for logged-in users.

Object cache

Redis/Memcached for database query results and transients.

Pitfall: Without object cache, TTFB remains high, even with page cache for uncached pages.

Render blocking: what the browser really does

The browser parses HTML top-down. Each <link rel="stylesheet"> In the head, rendering is blocked until CSS is downloaded and parsed. Every sync <script> In the head, HTML parsing stops until JS is executed.

Page builders, WooCommerce, GTM, and chat widgets add dozens of blocking resources. “Defer everything” sounds good but breaks inline scripts that expect DOMContentLoaded — which is why we decide per asset: critical inline, rest preload/defer/async, third-party after LCP.

  • Critical CSS: above-fold styles inline, rest async loading
  • Splitting JS bundles: no 400KB monolith for a single accordion
  • CDN for static assets + HTTP/2 or HTTP/3 multiplexing
  • Lazy loading only below-fold — never on LCP image

Images, fonts & frontend loading.

Most “speed tips” stop at WebP. In production, it is about delivery chain and layout stability.

🖼️

Images & LCP

Responsive srcset, WebP/AVIF with fallback, explicit width/height, fetchpriority="high" on hero. Preload LCP image in <head> when static known.

  • No 3000px upload for 800px container
  • CDN image optimization (resize on edge)
  • Lazy load only after LCP commit
🔤

Web fonts & CLS

Google Fonts via self-hosted woff2, font-display: swap of optional, size-adjust for fallback metrics. Maximum 2 font families, limited weights.

  • Preload primary woff2
  • No @import in CSS chain
  • Variable fonts = fewer requests
📦

JS bundles

Tree shaking, dynamic import for heavy modules, no jQuery for a single toggle. INP improves when the main thread remains blocked for < 50ms after interaction.

  • Audit via Coverage tab in DevTools
  • Third-party under 100KB total above-fold
  • Partytown only where it really helps

Performance vs. SEO: overlap and difference.

Overlap: Core Web Vitals are ranking factors. Slow sites sometimes crawl less efficiently (crawl budget for large sites). Mobile usability and HTTPS belong to both disciplines.

Difference: SEO optimizes findability (content, links, structured data, indexation). Performance optimizes what happens after the click. You can rank on page 1 with poor CWV — but you lose clicks and conversions to faster competitors.

Ideal order for a slow site: first fix TTFB and CWV on money pages, then scale up content and link building through us. SEO agencyOtherwise, you pay for traffic that bounces immediately.

🔍

SEO without performance

More impressions, lower conversion. Search Console shows CWV “Needs improvement” — a signal that rankings for a term may drop.

Performance without SEO

Fast site that no one finds. Technically sound, commercially invisible.

🎯

Both

Traffic + fast experience = maximum ROI. This is the standard at every Have a Website Made program at Ploko.

When Pagespeed scores be misleading.

Lighthouse is a lab instrument. Handy for debugging — no contract regarding rankings or revenue.

  • Lab vs. field data: Lighthouse runs on simulated throttling. CrUX field data (Search Console) shows what real users experience — that counts for rankings.
  • Single URL bias: your homepage scores 95, but product and landing pages are at 40. Google assesses per URL, not sitewide.
  • Cache warm vs cold: PSI often tests cold cache. First-time visitors see TTFB 800ms+, returning visitors 200ms — only cold matters for new traffic.
  • Plugin “100 score” mode: aggressive defer/delay breaks forms, tracking, or checkout. Score goes up, conversion goes down.
  • Desktop vs mobile: desktop 98, mobile 52 is normal for heavy builders. Mobile-first indexing looks at mobile CWV.
  • INP vs FID: old FID measurement misses much interaction delay. INP measures worst-case interaction — sites that “load quickly” but respond slowly still fail.

What to measure?

Search Console → Core Web Vitals report (field data, 28 days). WebPageTest waterfall on 4G. Real User Monitoring if you have volume. Lighthouse only for regression testing after deployment.

FAQ about website speed.

Strive for green Core Web Vitals in Search Console: LCP ≤ 2.5 seconds, INP ≤ 200 milliseconds, and CLS ≤ 0.1. TTFB under 200ms is ideal for the server layer. A Lighthouse score above 90 is nice-to-have; field data (CrUX) carries more weight for Google and reflects what real visitors experience.

The most common causes: slow shared hosting (high TTFB), too many active plugins, page builder overhead (Elementor/Divi CSS and JS), uncompressed images, no page cache or object cache, WooCommerce cart fragments on every page, and third-party scripts (GTM, chat, heatmaps) causing render blocking. It is rarely a single setting — a waterfall analysis shows where the chain breaks down.

Core Web Vitals are three performance metrics measured by Google based on real user data: LCP (load time of the largest visible element), INP (responsiveness after interaction), and CLS (visual stability). They are official ranking factors and directly influence bounce and conversion. Full explanation per metric on our page about core web vitals; broader performance context on website speed and technical SEO.

A cache plugin (WP Rocket, LiteSpeed Cache) primarily helps with TTFB and repeat visits — page cache serves HTML faster, and browser cache reuses assets. However, cache does not mask slow PHP queries, render-blocking JS, or a 4MB hero image. For structural improvement, combine page cache with object cache (Redis), image optimization, critical CSS, and a plugin audit. Scores only truly improve when the bottleneck layer is correct.

Lighthouse is a lab simulation: simulated throttling, a single run, useful for debugging. Field data in PageSpeed Insights comes from CrUX — 28 days of aggregated data from real Chrome users. Google uses field data for rankings. Your homepage might score Lighthouse 95 while field data shows “Needs improvement” on mobile — always trust field data for business decisions.

Targeted performance audits and fixes typically start from a few hundred euros for specific bottlenecks (caching setup, image pipeline, script audit). Complete WordPress performance projects, including server tuning, WooCommerce optimization, or migrating from a page builder to custom development, cost more. We always start with a scan and provide a concrete plan before implementation — no blind packages.

Yes, immediately. Every extra second of load time costs an average of ~7% conversion. Slow INP makes forms and menus frustrating; high CLS causes misclicks. For lead websites and webshops, performance is part of CRO — see also our service. conversion optimisationSpeed without clear CTAs helps only to a limited extent; CTAs without speed result in bounce.

Elementor is not “bad,” but its architecture generates per-widget inline CSS and loads frontend bundles that are heavier than a custom theme. With optimization (asset loading, unused CSS removal, good hosting), you can achieve 70–85 mobile Lighthouse. For performance-first sites or high-traffic WooCommerce shops, we more often choose custom development. More comparison at Elementor website creation.

Slow website? We measure first — optimize next.

No “install plugin X” advice. We analyze TTFB, waterfall, Core Web Vitals, and the impact on your leads or revenue. Then a concrete plan: server, caching, frontend, or rebuild — that truly solves the problem.

Field data + lab analysis
WordPress & WooCommerce
Conversion impact in report
No score hunting, but CWV green