Why we test on a throttled connection, not just fast wifi
Every performance test we run happens twice: once on a normal connection, and once with the browser's network throttling set to simulate a slower mobile connection, roughly what a mid-range phone experiences on a congested cell network. The gap between those two results is often the most revealing part of an audit, and it's a gap most teams never actually see, since their own testing happens exclusively on fast office wifi.
We've presented this gap to more than one client team who genuinely believed their site was fast, based entirely on how it felt loading on the office network every day, and watched the room's confidence shift the moment we loaded the same page on a throttled connection in front of them. Seeing the gap directly tends to be far more convincing than any written performance report describing it in the abstract.
Fast connections hide sequencing problems
On a fast connection, a page loading eight render-blocking resources in sequence instead of in parallel barely registers, since each request completes quickly regardless. On a throttled connection, that same sequencing mistake compounds into seconds of additional load time, because each request's latency stacks instead of overlapping. The underlying code problem is identical either way. Only the throttled test actually reveals its real-world cost.
This is why a fast-feeling development environment is such an unreliable signal of real-world performance: the same sequencing mistakes exist in both environments, but only one of them is slow enough to actually surface the problem to whoever's testing it. A team that only ever tests on fast connections can ship sequencing problems for years without anyone on the team personally experiencing the cost.
A meaningful share of real users are on exactly this kind of connection
Depending on the client's audience, a substantial share of mobile visits happen over cellular connections with real latency and variability, not the stable low-latency wifi most development and testing happens on. Designing and testing exclusively for the fast-connection experience means optimizing for a version of your audience that may be a minority of actual visitors.
We pull the client's own real-user-monitoring data, connection type broken out by visit, whenever it's available, specifically to replace an assumption about the audience's typical connection with an actual measurement of it. More than once, a client surprised by how large their cellular-connection share turned out to be has reprioritized a performance fix that had been sitting lower on the backlog than it deserved.
What we actually simulate
Chrome DevTools' "Slow 4G" preset is our default throttled test condition, chosen because it approximates a realistic worst-common-case rather than an extreme edge case. Testing against something too severe produces optimization advice that overcorrects for a rare scenario; testing only on fast wifi produces advice that misses a common one. Slow 4G is the useful middle ground for most consumer-facing sites.
For audiences we know skew toward markets with genuinely weaker mobile infrastructure, we'll occasionally test against an even more conservative profile as a secondary check, but we treat that as a targeted addition for a specific known audience rather than the default condition, since testing every project against a worst-case-of-worst-cases profile produces advice that's overkill for most of the sites we work on.
How this changes what gets prioritized on the fix list
A performance audit run only on a fast connection tends to produce a fix list weighted toward whatever looks worst in a lab report, regardless of real-world impact. Running the same audit on a throttled connection reorders that list toward the fixes that actually matter most to a real visitor on a real device, which is ultimately the audience any performance work is meant to serve.
We've seen this reordering flip the top item on a client's fix list entirely more than once, a visually minor animation glitch that scored badly in a lab tool moved down, while a resource-loading sequencing issue invisible on fast wifi moved to the top, once the throttled results made its real-world cost obvious. Prioritizing off the wrong test produces a fix list that looks productive without actually improving what most real visitors experience.
A performance audit run only on a fast connection tends to produce a fix list weighted toward whatever looks worst in a lab report, regardless of real-world impact.
Device testing matters alongside network throttling, not instead of it
A throttled connection on a powerful development laptop still isn't the full real-world picture, since a mid-range or older phone's processing power is its own separate constraint from network speed. We pair throttled network testing with testing on an actual mid-range device whenever possible, since a page that loads reasonably fast but then feels sluggish to interact with is failing on the CPU side, a different problem with a different fix than a slow network transfer.
Client teams doing their own testing almost always test on whatever device they personally own, which for people working in tech tends to skew newer and more powerful than the device a meaningful share of their actual customers are using. Borrowing or buying a genuinely mid-range device for the team to test on periodically is a small, cheap habit that closes a surprisingly large gap in how a team perceives their own product's real-world performance.
Building this into a repeatable process, not a one-off check
We add throttled and mid-device testing as a standing checklist item in every performance-related sprint, not a special step reserved for a full audit, since a good practice that only gets applied during periodic audits leaves plenty of room for regressions to creep back in between them. Making it routine, checked on every meaningful release rather than quarterly, is what actually keeps a site's real-world performance from quietly drifting worse over time.
A checklist item is only as reliable as the person running it, so we automate what we can: continuous integration hooks that run a throttled Lighthouse pass on every deploy and flag a regression before it ever reaches production, rather than relying purely on a developer remembering to test manually under realistic conditions every single time.
None of this is exotic engineering, throttling a network connection is a checkbox in any modern browser's developer tools. What's rare is making it a default part of how a team tests, rather than a special step someone remembers to run only when a client specifically complains about slowness. The teams with genuinely fast-feeling products are usually the ones who made throttled testing boring and routine long before anyone noticed a problem.