- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Core Tech
Simulating Real-World Speeds with Network Throttling
You'll use Chrome DevTools Network Throttling to expose performance problems that only appear at slow connection speeds. By the end of this lab, you'll be able to reproduce the experience of a user on a slow mobile network and pinpoint which resources are responsible for the worst delays. **Note: this lab requires Chrome or a Chromium-based browser.**
Lab Info
Table of Contents
-
Challenge
Step 1: Explore the baseline
warning> This lab requires Chrome or a Chromium-based browser. Network throttling profiles are specific to Chrome DevTools and will not appear in other browsers.
When a user reports that a page feels slow, it can be hard to reproduce the problem on a fast development machine. Chrome DevTools Network Throttling gives you a way to simulate the conditions your users actually experience, making performance problems visible that are otherwise invisible at full speed.
In this lab, you'll work with a product listing page that fetches a data file and renders a catalog of items. You'll use the Chrome DevTools Network panel to apply throttling presets, observe how each resource loads under a slow connection, and identify which asset is responsible for the worst delay.
The
applicationdirectory already containsserver.jsand the product listing page. To begin, you'll start the server and open the application in Chrome to record what full-speed performance looks like. With the Network panel open, you'll reload the page and note the load time and resource sizes before any throttling is applied. ### Open the app and check the baseline loadinfo> Clicking the link below opens the app in a new browser tab. Keep this lab tab open alongside it as you work through the steps.
Open the application at {{localhost:3000}} in Chrome.
Switch to the Chrome tab where the app is open. Press
F12(orCmd+Option+Ion Mac) to open Chrome DevTools, then click the Network tab at the top of the DevTools panel.Check the Disable cache checkbox in the Network panel toolbar. This ensures each reload fetches every resource fresh, giving you accurate timing data.
Reload the page by pressing
Ctrl+R(orCmd+Ron Mac). Watch the waterfall as resources load.When the page finishes loading, look at the status bar at the bottom of the Network panel. It shows the total number of requests, the total data transferred, and the total load time. Make a mental note of these numbers — they are your full-speed baseline.
-
Challenge
Step 2: Apply network throttling
With the full-speed load behavior in view, you can now simulate a slow connection. The Network panel toolbar contains a throttling dropdown that currently shows No throttling.
Enable 3G
Click the No throttling dropdown in the Network panel toolbar. A list of preset profiles appears. Select 3G.
Reload the page again (
Ctrl+RorCmd+R).Watch the waterfall. Resources that loaded almost instantly at full speed now take noticeably longer to arrive. The progress bars in the waterfall extend further to the right, and the status bar at the bottom shows a much higher total load time.
This is the experience a user on a slow mobile connection has every time they visit the page. Resources that loaded in milliseconds at full speed may now take several seconds each, and the cumulative effect makes the page feel broken before it even appears.
-
Challenge
Step 3: Identify bottlenecks
With throttling active, the Network panel reveals the true cost of each asset. The waterfall lists every resource the page requested, along with its size and how long it took to arrive.
Sort by response size
Click the Size column header in the resource list to sort by response size, largest first. The resources at the top of the list are the heaviest, and under a slow connection, heavy resources are the primary source of delay.
One resource will be clearly larger than the others. That is the bottleneck.
Inspect the timing breakdown
Click on the largest resource to open its detail panel on the right. Select the Timing tab inside the detail panel.
The Timing tab breaks the request into phases: Queueing, Stalled, DNS Lookup, Initial connection, Waiting (TTFB), and Content Download.
Under 3G, focus on the Content Download bar. This represents the time the browser spent receiving the file's bytes over the throttled connection. For a large asset, this bar reveals the direct cost of file size on a slow network.
You may also notice the Waiting (TTFB) bar is larger than usual. That reflects the latency added by the throttling profile, not a slow server. In a real environment without throttling, a large TTFB would point to a server-side problem.
-
Challenge
Step 4: Compare throttle profiles
3G represents a worst-case mobile connection. Switching to a faster preset shows how the same bottleneck behaves across different conditions.
Switch to Slow 4G
Click the throttling dropdown and select Slow 4G. Reload the page.
The total load time in the status bar is lower than it was under 3G. But the same large resource still represents the biggest share of the total time. The bottleneck does not disappear at faster speeds — it only becomes less severe.
Return to no throttling
Click the throttling dropdown and select No throttling. Reload the page one more time.
The page loads almost instantly. Compare the three load times you observed:
- No throttling: a fraction of a second
- Slow 4G: a couple seconds
- 3G: noticeably longer
A page that appears instantly on a developer machine may take several times longer on a typical mobile connection. This three-point comparison is the repeatable diagnostic technique this lab set out to build. Any time you want to understand how real-world users experience a page, open the Network panel, select a throttle profile, reload, and read the waterfall. The bottleneck will show itself.
You've identified the largest resource in the application's payload and confirmed it as the primary contributor to slow load times at reduced connection speeds. The Chrome DevTools Network panel gives you a reproducible, controlled way to simulate real-world network conditions, surface hidden performance problems, and understand exactly where the time goes when a page loads slowly.
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.