In 2006, Amazon ran an internal study. They found that every 100 milliseconds of latency cost them 1% in revenue. Google found that a 500ms slowdown reduced search traffic by 20%. These numbers are twenty years old. The web has changed dramatically since then, but the relationship between speed and user behaviour has not. If anything, it has intensified.

The Psychological Reality of Waiting

Human perception of waiting is not linear. A page that loads in 1 second feels instant. A page that loads in 3 seconds feels slow. A page that loads in 5 seconds produces measurable anxiety in users. This is not subjective preference. It is documented in neuroscience. The brain's threat detection system activates when expected events do not happen on time, and a web page that does not load counts as an expected event not happening.

The practical consequence is that users do not consciously decide to leave a slow site. They leave before they have made any conscious decision at all. By the time they are aware of feeling frustrated, they have already clicked back.

Why Product Teams Treat Performance as Technical Debt

In most product organisations, performance improvements compete for roadmap priority against features. Features have clear business cases. A new integration brings a specific customer segment. A redesigned checkout flow has a projected conversion impact. Performance improvements have phrases like "generally better experience" and "should reduce bounce rate," which do not survive planning meetings that have a limited budget for vague outcomes.

This framing is the problem. Performance is not a technical concern that occasionally affects business outcomes. It is a business concern that happens to be implemented technically. The distinction matters because it determines whether it gets prioritised.

The Metrics That Connect Load Time to Revenue

The conversation changes when performance is measured in the same units as other business decisions. Here are the connections that are consistently supported by data:

Where Performance Is Lost in Modern Web Applications

React and similar frameworks have changed how performance degrades. The old problem was large image files and too many HTTP requests. The current problem is JavaScript bundle size, render-blocking resources, and client-side rendering waterfall effects.

The JavaScript Bundle Problem

A React application that imports several large libraries without code splitting will download and parse hundreds of kilobytes of JavaScript before rendering anything visible. On a fast connection this is a few hundred milliseconds. On a mobile device on a 3G network, which is still how a significant portion of India accesses the internet, this is multiple seconds before the user sees any content at all.

Render-Blocking Third-Party Scripts

Analytics, chat widgets, A/B testing platforms, and marketing pixels are frequently loaded synchronously in the document head. Each one blocks rendering until it has loaded. A product team that would never ship a feature without testing its performance impact routinely adds third-party scripts without measuring their load time cost.

Images Without Optimisation

Despite being a problem that has been solved for years, unoptimised images remain one of the most common performance issues in production websites. A hero image that is 4MB instead of 200KB because nobody set up an image pipeline is not a technical problem. It is a process problem.

The Practical Fixes That Have the Highest Impact

Performance optimisation can become an endless rabbit hole. The following four changes account for the majority of improvement in most React applications:

Code splitting at the route level. Load only the JavaScript required for the current page. React.lazy and dynamic imports make this straightforward. The initial bundle drops dramatically, and subsequent pages load fast because users are already in the application.

Image lazy loading and modern formats. Add loading="lazy" to images below the fold. Convert images to WebP. Use srcset for responsive images. These are not clever optimisations. They are defaults that should be standard practice.

Defer non-critical third-party scripts. Load analytics and marketing tools after the page is interactive. Use the async or defer attribute. Accept that your chat widget might appear a second after the page loads. Your users will not notice. They will notice if the page takes five seconds to become interactive.

Measure before and after every change. Use Lighthouse and Web Vitals in your deployment pipeline. A performance regression that goes undetected for three months affects every user visit during that period. A performance regression caught in CI affects nobody.

The Competitive Dimension

Performance is one of the few areas where the effort required to improve it does not scale with the size of the problem. A small team with a focused week can often achieve improvements that take larger organisations months, because the decision-making overhead is smaller and the changes are technically straightforward.

For startups competing against established players, a genuinely fast application is a meaningful differentiator. Users form opinions about product quality from their first interaction, and the first interaction is almost always shaped by load time. A fast, responsive product signals engineering competence and respect for the user's time. A slow one signals the opposite, regardless of the underlying functionality.

Speed is not a feature that can be added later. It is a property of how the product is built from the beginning. The teams that understand this build it into their standards from day one and maintain it as a genuine performance budget, not as a aspirational goal that gets deferred indefinitely.