For many people, the internet is mobile, metered, and unreliable. A product that assumes a fast, stable connection quietly excludes them. Designing for low bandwidth is not a compromise; it is a way to make a product usable, affordable, and trustworthy for a much wider audience.

01

Speed is part of the experience, not a technical afterthought

People judge a product within the first few seconds, and much of that judgement is about how quickly and predictably it responds. A visually polished interface that takes ten seconds to become usable on a mobile connection feels broken, regardless of its aesthetics.

Because of this, performance belongs in design decisions from the beginning. The number of images, the weight of fonts, the amount of code required before content appears, and the behaviour during loading all shape the experience as much as layout and colour.

Field noteA design is not complete until it is defined for the slow, interrupted connection as well as the fast one.
02

Design the loading and offline states first

On unreliable networks, loading is not a brief flash; it is a state people genuinely inhabit. Skeleton screens, meaningful progress, and content that appears in a sensible order make waiting feel controlled. A blank screen or a spinner with no context makes the same wait feel like failure.

Plan for interruption too. Decide what happens when a request fails halfway, when the connection drops mid-form, or when the customer is briefly offline. Preserving entered data, allowing retries, and explaining what is happening turn a frustrating dead end into a recoverable moment.

  • Show content in priority order, not all at once.
  • Preserve form input when a request fails.
  • Explain retries and failures in plain language.
  • Avoid layout shifts that move content as it loads.
03

Send less, and send it in the right order

The most reliable way to be fast is to transfer less data. Large images, heavy fonts, and unnecessary scripts are the usual causes of slow pages. Compress and correctly size images, limit custom fonts, and question every script that must run before the customer can read or act.

Order matters as well. The content people came for should arrive before decorative or secondary elements. Techniques such as prioritising critical content, deferring non-essential code, and rendering meaningful HTML on the server help the important part appear quickly even when the rest is still arriving.

  • Right-size and compress images; avoid loading what is off-screen.
  • Limit custom fonts and heavy third-party scripts.
  • Deliver readable, server-rendered content early.
  • Defer anything that is not needed for the first interaction.
04

Respect data as a cost, not an assumption

On metered connections, every megabyte has a price. Autoplaying video, large background media, and pages that silently re-download content spend the customer’s money without consent. Designing with restraint is a form of respect for people who pay per megabyte.

Give people control where it matters: let them choose to load a high-resolution image or a video rather than forcing it. Caching what has already been fetched, and avoiding needless reloads, keeps a return visit cheap and fast.

Field noteFor many customers, a lighter page is not just faster—it is literally cheaper to use.
05

Test on the conditions your customers actually face

Products are usually built on fast machines and fast networks, which hides performance problems from the people making decisions. To see what customers experience, test on mid-range devices and throttled connections, not only on the latest phone connected to office wifi.

Use field measurement as well as laboratory tests. Real-user performance data reveals how the product behaves across many devices and networks, while synthetic tests help diagnose specific issues. Together they keep performance grounded in reality rather than in the best case.

  • Throttle the network and CPU during testing.
  • Test on mid-range and older devices.
  • Watch real-user metrics, not only lab scores.
  • Set a performance budget the team commits to.
FAQ

Questions, answered directly

Why design for low bandwidth if most users have fast connections?

Connection quality varies widely by region, device, and moment. Even people with fast plans experience slow or intermittent networks while travelling, indoors, or on congested cells. Designing for the harder case improves the experience for everyone.

What has the biggest impact on page speed?

Usually the amount of data transferred and how much code must run before content appears. Right-sizing images, limiting fonts and scripts, and delivering readable content early tend to produce the largest, most reliable improvements.

How do you test performance realistically?

Throttle the network and processor, test on mid-range devices, and combine synthetic tests with real-user measurement. This reflects the conditions customers actually experience rather than the ideal setup of the development team.

About the author

Joshua Nguku

Joshua is a Nairobi-based product designer and digital marketing manager who works across user journeys, interface systems, responsive frontend delivery, content, and growth.

Explore Joshua's case studies ↗