I always use the Simple Testing tab when performing tests on WebPageTest. In order to get an A in First Byte Time, the web page needs to produce a value of ~1750 ms or lower. This is I think unattainable.
I’ve tested on a bunch of very fast websites, and the fastest web page I found got a C with a time of 2049 ms 1. My own in-development website got an F with the time 2158 ms. I wouldn’t be surprised if 99.9% of websites get an F in Simple Testing mode.
Should this grading be adjusted? It’s not a very useful grade if all websites with a few exceptions get an F. It can even be discouraging. I suggests that ~1750 ms is raised in Simple Testing mode to a more attainable value that can realistically serve as a target for websites.
Edit: I’d like to clarify that when I say “Simple Testing mode,” I mean the default configuration, which includes the “Slow 3G” setting. I’ve tested with “Regular 3G,” and it is possible to get an A grade with it, so it’s really just the default, “Slow 3G,” that is causing the grading issue.
The grade is not a fixed number and is generally calculated based on the RTT to the edge. It should allow for 1 RTT each for DNS, Socket connect, TLS and the request itself + 100ms for “server think time” before the grade stops dropping.
I believe the TLS time is actually a little more generous and it just allows for however long TLS took so it doesn’t penalize for not stapling and using EV certs (which require validation and a TON more round trips) but in principle it is supposed to be looking for > 100ms of server think time. Any redirects will also kill the grade so be sure to be testing the final destination URL.
If you have examples where the grade took a dive but it doesn’t look like it’s because of the server response time being slow I’m happy to take a look. The actual implementation is here: webpagetest/optimization_detail.inc.php at master · WPO-Foundation/webpagetest · GitHub
A good example would be Google itself, I guess
In case my original post wasn’t clear, it appears that it is just impossible to get anything better than a C in Simple Testing mode, by default. I’m testing on the fastest sites I can think of, and C is the best score I’ve encountered so far.
I’m not sure if there’s a bug in the calculation, or if it’s just me misunderstanding how this service works, but from the perspective of an user, it seems to me that the goal is to strive for A grades in all categories, but in the case of First Byte Time this just isn’t possible. Is that not an issue?
The targets should be better now (particularly for tests on android phones where process startup can be slower). I changed the baseline for the calculation to be the time when the first request is sent from the browser so you’re not penalized for browser slowness.
The main thing that it changes for the negative is it no longer penalizes for not OCSP-stapling cert validations. That’s a mixed bag because there’s no way to staple an intermediary cert so any EV sites would have failed anyway.