Engineering for Slow Internet

Not everybody has smokin’ fast internet. Wait let me try that again. Most people don’t have smokin’ fast internet, especially not all the time. It’s part of the job to make sure our sites aren’t so slow we’re essentially depriving users access.

To experience your site with slow internet, under the Network tab of DevTools (in all browsers, you have to enable it as an experimental feature in Safari), there is a dropdown to throttle the speed. Pick one of the slower cellular speeds and give your site a whirl. Might just inspire you to find some places to speed things up.

Or, you could go to the South Pole and test. It’s not just about raw speed, it’s about latency and turbulent connections.

  • Round-trip latency averaging around 750 milliseconds, with jitter between packets sometimes exceeding several seconds.
  • Available speeds, to the end-user device, that range from a couple kbps (yes, you read that right), up to 2 mbps on a really good day.
  • Extreme congestion, queueing, and dropped packets, far in excess of even the worst oversaturated ISP links or bufferbloat-infested routers back home.
  • Limited availability, frequent dropouts, and occasional service preemptions.

Ooof da. I bet very few of us think in terms of these extremes of bad internet.

If you’re an app developer reading this, can you tell me, off the top of your head, how your app behaves on a link with 40 kbps available bandwidth, 1,000 ms latency, occasional jitter of up to 2,000 ms, packet loss of 10%, and a complete 15-second connectivity dropout every few minutes?

It’s probably not great!

Need to learn about web performance?

Frontend Masters logo

We have an in-depth course all about Web Performance Fundamentals from Todd Gardner. There is a lot to know, from the psychology of web performance, to measuring the new Core Web Vitals, to building a culture of performance at your organization.

Leave a Reply

Your email address will not be published. Required fields are marked *