How we grade
Every grade comes from measurements taken at the moment you run the test. Nothing is estimated, and no host can pay to change a result.
The speed grade
We measure time to first byte (TTFB): how long the server takes to start answering. We do it this way:
- We load the address you entered and follow any redirects to the real page.
- We request that page three times with a random query string, which makes most page caches miss, so the server has to build the page. We take the middle result.
- We request the page once more normally and report that time next to it.
The letter grade uses the uncached result:
| Grade | Uncached server response | Meaning |
|---|---|---|
| A+ | under 150 ms | Excellent |
| A | 150 to 249 ms | Fast |
| B | 250 to 449 ms | Good |
| C | 450 to 699 ms | Average |
| D | 700 to 1,099 ms | Slow |
| F | 1,100 ms or more | Very slow |
For comparison, Google's guidance treats a TTFB of 800 ms or less as good for real visitors on real connections. Our test runs from a data centre with a fast connection, so we hold servers to a stricter standard.
Finding the host
- Server fingerprints. Many hosts add their own response headers. These survive a CDN, so they are the strongest evidence.
- Network owner. We look up which network the site's IP address belongs to. If it is a hosting company's own network, that is the host.
- Nameservers and reverse DNS. Useful hints when the first two are not conclusive.
Each report lists the evidence and a confidence level. If a site is on a general cloud such as Google Cloud or DigitalOcean, we report the cloud and note that a managed service may be reselling it.
Other checks
HTTPS, whether a page cache answered, whether a CDN is in front, HTTP/3 support, the HSTS security header and redirect chains. These are shown as pass or fail and do not change the letter grade.
Limits you should know
- The test runs from one Cloudflare data centre, usually the one nearest you. A server on another continent will look slower from here than it does to visitors near it.
- It is one moment in time. Shared servers vary through the day.
- A slow uncached time can be the site's own code or plugins, not only the host.
- Some firewalls block automated tests. When that happens we give no grade rather than an unfair one.
- Some sites ignore query strings when caching, so their "uncached" time is still a cached one. When we can see that happening, the report says so.
Our test requests
Tests identify themselves as GradeMyHostBot, make a handful of ordinary page requests, and never log in, submit forms or crawl beyond the page tested.