You open your website on your phone. It loads fast. The images look good. The menu responds. Everything is perfect. You close the browser satisfied and move on with your day.
The problem is that you are sitting two meters from your router. Your phone is connected to a 200 Mbps network with 5 millisecond latency. That is not your users' experience. That is a designer lying to themselves.
The reality your WiFi hides
Your average user is not at home. They are on a bus. They are in a shopping mall where the signal bounces off twenty walls. They are in a rural area where 4G barely reaches. They are walking down the street switching cell towers every two hundred meters.
That means latency of 100 to 300 milliseconds instead of 5. Bandwidth of 2 to 5 Mbps instead of 200. Connections that drop and reconnect without warning. That 400 KB image that loads in half a second on WiFi takes four seconds on mobile data with low signal.
I designed banking interfaces for over ten years. In mobile banking the average user checks their balance eleven times a day. Eleven times a day your app has to load in conditions that are never ideal. If the balance screen takes more than three seconds, the user does not think the connection is slow. They think your app is slow. And if your app is slow, your app is not reliable. And if your app is not reliable, your bank is not reliable.
How to actually test
The real test is uncomfortable. Leave your house. Turn off your phone's WiFi. Open your site on mobile data in the street. Now walk while it loads. Enter a building. Go to the basement. Try to complete a form while the elevator goes up.
If you have never done this, you will be surprised. Buttons that do not respond on the first tap because JavaScript is still loading. Images that appear as gray rectangles for what feels like forever. Web fonts that leave text invisible until they finish downloading. CSS transitions that stutter because the phone's processor is busy parsing your 2 MB bundle.
Chrome DevTools has a throttling option that simulates slow 3G and 4G. It is better than nothing but it is not the same. The simulation reduces bandwidth uniformly. A real mobile connection fluctuates. It goes from 10 Mbps to 500 Kbps in one second when the user enters an elevator. That fluctuation is what breaks experiences.
What you can do today
Every image on your site should use WebP or AVIF format instead of PNG or JPG. The difference is dramatic: an image that weighs 400 KB in PNG weighs 80 KB in WebP with the same visual quality. That is the difference between loading in one second or five on mobile data.
Web fonts are another invisible problem. Each font you load from Google Fonts adds an HTTP request and between 20 KB and 100 KB of download. On WiFi you do not notice. On 3G your page text is invisible for two or three seconds while the font downloads. The solution is using font-display: swap so the browser shows text with the system font while the web font loads.
JavaScript is the worst enemy of mobile performance. Not because of download size but because of parsing time. A 500 KB JavaScript file takes 200 milliseconds to parse on a recent iPhone. On a three year old mid-range phone it takes 2 seconds. Two seconds where your page exists but does not respond to anything.
I built this blog without frameworks precisely because of this. Vanilla PHP, HTML, CSS. No React. No megabyte JavaScript bundles. Pages load in under a second even on 3G because there is nothing unnecessary to process.
The real test
Open your site on the oldest phone you have in your house. The one you left in a drawer two years ago. Turn off WiFi. Use mobile data. Browse your entire site. Read an article. Click three links. Try to use your menu.
If the experience is acceptable on that device with that connection, your site is fine. If it is not, you have work to do. And that work is not discovered sitting next to your router.
Real UX does not live in your Figma. It does not live on your 27 inch monitor. It does not live on your 200 Mbps network. It lives in the pocket of someone standing in a bank line with two signal bars and a three year old phone.
If you are not testing there, you are not testing. You are performing.