Back to Technical Articles
Engineering⚙️ Technical#performance#Core Web Vitals#Nigeria#conversion rate#SEO#web performance#LCP#CLS#FID#revenue

Performance Optimization as Revenue Strategy: Web Vitals and the Business Case

Ekfix Team

Web performance is typically managed as a developer concern. The organisations that treat it as a revenue concern — and measure it accordingly — discover that improving page load time from 6 seconds to 2.5 seconds is one of the highest-ROI investments available to a digital business.

EngineeringPerformance Optimization asRevenue Strategy: Web Vitalsand the Business CaseEkfix

Performance Optimization as Revenue Strategy: Web Vitals and the Business Case

The published research on web performance and revenue is uncomfortably clear. Google's data shows that as page load time increases from 1 second to 3 seconds, the probability of a mobile visitor bouncing increases by 32%. At 5 seconds, the increase is 90%. Walmart found that each 1-second improvement in load time increased conversion by 2%. Amazon estimated that each 100ms of latency costs 1% in revenue.

These are global statistics. In the Nigerian context, where a significant portion of web traffic is on mobile networks with variable bandwidth, the performance impact on conversion is likely larger — not smaller — than global averages. A Nigerian user on a ₦2,500/GB data plan, waiting 8 seconds for a service page to load, makes a fast decision to not continue.

Performance optimisation is not a developer quality concern. It is a revenue generation activity with a measurable ROI.


Core Web Vitals: The Metrics That Matter

Google's Core Web Vitals are three standardised performance metrics that measure user experience:

LCP (Largest Contentful Paint): How long until the largest visible content element (usually a hero image or heading) appears on screen. Target: under 2.5 seconds. Above 4 seconds is "Poor". This measures perceived load speed — when does the page look ready?

FID (First Input Delay) / INP (Interaction to Next Paint): How responsive is the page to user interactions? FID measures the delay between a user clicking and the browser responding. INP (which replaced FID in March 2024) measures the worst interaction latency during the whole session. Target: under 200ms for INP.

CLS (Cumulative Layout Shift): How much does the page layout shift after initial load? Content jumping around as late-loading assets arrive (ads, fonts, images without dimensions) creates a poor experience — users click the wrong element because the page moved. Target: under 0.1.


Why Core Web Vitals Affect Search Ranking

Google incorporated Core Web Vitals into its search ranking algorithm in 2021 (the "Page Experience" update). A page that performs well on Core Web Vitals has a ranking advantage over an equivalent page with poor performance, all else equal.

For informational queries where multiple results have similar content quality (comparing competitor software companies, finding an accountant, researching a service provider), page experience becomes a material differentiator. The Nigerian business with the faster website outranks the competitor with the slower website — irrespective of who has more content.

Measuring the search ranking impact: Google Search Console shows Core Web Vitals assessment separately for mobile and desktop, and shows which pages are "Good", "Needs Improvement", or "Poor". Moving pages from "Poor" to "Good" typically produces a measurable ranking improvement within 4–8 weeks of the performance changes.


The Nigerian Performance Context

International CDN performance in Nigeria affects every external resource loaded by a page. A third-party script loaded from a US CDN incurs 200–250ms round-trip latency before the script even begins downloading. A page that loads 12 third-party scripts sequentially adds 2.4–3 seconds purely from network latency, before download time.

Cloudflare's presence in Nigeria: Cloudflare operates points of presence in Lagos and other African cities. Assets served from Cloudflare CDN reach Nigerian users with much lower latency than US or EU origin servers. For Nigerian web applications, serving static assets through Cloudflare (CDN, Images, R2) is a foundational performance decision.

4G vs 3G bandwidth: 4G average download speeds in Nigeria are approximately 15–25 Mbps in urban areas, falling to 2–5 Mbps in secondary cities, and 256Kbps–1Mbps on 3G in rural areas. Designing for 3G performance (under 400KB total page size, critical resources prioritised) guarantees good experience for 4G users and acceptable experience for 3G users. Designing for 4G performance (2MB+ pages) produces poor experience for the majority of traffic on secondary city 3G.


The High-ROI Performance Optimisations

Image Optimisation

Images are typically 60–70% of page weight for content-heavy pages. The three interventions:

WebP format conversion: WebP images are 25–35% smaller than equivalent JPEG at the same visual quality. Converting all images to WebP and serving WebP with JPEG fallback (for older browsers) reduces image payload correspondingly. Next.js's <Image> component does this automatically; for other frameworks, Cloudflare Images or a build-time optimisation step handles it.

Responsive images: Serving a 1400px wide image to a mobile device with a 390px wide screen transmits 3–4× more data than necessary. Responsive image sets (srcset) deliver the appropriately-sized image per device. Again, Next.js handles this; most other frameworks require explicit implementation.

Lazy loading: Images below the fold do not need to load during initial page load. The native loading="lazy" attribute on <img> elements defers below-fold images until they are scrolled near the viewport. Applying this to all non-hero images reduces initial page weight significantly.

Measured impact: Image optimisation alone typically reduces page weight by 40–60% for content sites and improves LCP by 1–3 seconds.

JavaScript Optimisation

JavaScript is the most common cause of poor interactivity metrics (FID/INP) and is often a significant contributor to slow LCP through render-blocking scripts.

Remove unused JavaScript: The average web page loads 400–600KB of JavaScript. A significant fraction is from installed dependencies that add imports never used. Tools like Bundlephobia (npm package size checker) and Webpack Bundle Analyzer identify the largest contributors. Removing a single large unused library can reduce JavaScript payload by 100–200KB.

Code splitting and lazy loading: Load only the JavaScript required for the current page. Next.js does this by default (per-page bundles). Single-page applications without code splitting load the entire application on every page, including the components for pages the user has not visited.

Defer non-critical scripts: Third-party scripts (analytics, chat widgets, social sharing buttons) should load after the main content — using defer or async HTML attributes, or by conditionally loading them after user interaction. An analytics script that blocks rendering is subtracting conversion rate from the metric it is meant to measure.

Server Response Time

The Time to First Byte (TTFB) — how long the server takes to begin sending a response — is an upstream constraint on all other performance metrics. A slow server creates a performance ceiling that front-end optimisations cannot fully overcome.

Caching at the edge: For pages that are the same for all visitors (or the same for all logged-out visitors), serving them from Cloudflare's cache eliminates server response time entirely. HTML pages cached at the edge are served from the Lagos PoP in under 50ms.

Database query optimisation: For pages generated from database queries, a slow query is a slow page. Adding appropriate indexes to frequently-queried columns is the highest-leverage database performance intervention. The EXPLAIN ANALYZE query in PostgreSQL shows which queries are doing full table scans (no index) versus index scans.

Eliminating database queries through caching: Frequently-read, infrequently-changed data (product catalogue, configuration, reference data) should be cached in memory (Redis, Cloudflare KV) rather than queried from the database on every request.


Measuring Performance ROI

Before beginning optimisation:

  1. Measure current Core Web Vitals in Google Search Console and Google PageSpeed Insights
  2. Record current search ranking position for high-value commercial keywords
  3. Record current session bounce rate and conversion rate from Google Analytics (or Plausible)

After optimisation (measured at 8–12 weeks post-deployment):

  1. Measure improved Core Web Vitals scores
  2. Record changed search ranking positions
  3. Record changed bounce rate and conversion rate

The typical finding for a Nigerian business site moving from "Poor" to "Good" Core Web Vitals: 10–25% improvement in organic search click-through rate (CTR), 8–15% improvement in conversion rate from organic traffic. On a site generating ₦5M/month in organic-attributed revenue, a 10% conversion improvement is ₦500,000/month in additional revenue — recurring, indefinitely.

The performance optimisation project that delivers this costs ₦500,000–₦1,500,000 in one-time development work. The payback period is typically 1–3 months. The ongoing revenue uplift continues without additional investment. Few marketing or development investments have a comparable ROI profile.


Related Articles