Get online today — Domain + Hosting at discounted prices View Combo Offers ›

Website Speed Test

Break a page's response time into DNS, connect, TLS and TTFB.

Times a single request to your page and breaks it into the four phases that make up time to first byte — DNS, TCP connect, TLS handshake and server think time — then reports what the response headers say about compression, caching and protocol.

This measures the server, not the browser. It runs no JavaScript and renders nothing, so it will not tell you your Largest Contentful Paint. What it will tell you is whether the server is the reason the page is slow, which is the question this answers better than a rendering test does.

How it works

Before a browser can draw a single pixel it has to complete four steps in order, and each one has a different fix.

DNS is the lookup of your hostname. A cold lookup of 20–120 ms is normal; consistently more than that suggests slow nameservers or a very low TTL forcing constant re-lookups. Connect is the TCP handshake, which is essentially one network round trip and therefore a measure of distance — this is what a CDN actually fixes. TLS is the certificate exchange, usually one or two more round trips; if it is disproportionate, look at a certificate chain that is longer than it needs to be, or a missing OCSP staple.

Then comes TTFB, and specifically the gap between the TLS handshake finishing and the first byte arriving. That gap is your application: PHP executing, database queries running, templates rendering. Everything before it is network; this part is code. Under 200 ms is good, 200–600 ms is unremarkable, and beyond about 800 ms the usual culprits are an uncached WordPress install, a query without an index, or a slow third-party API call on the critical path. Caching moves this number more than anything else available to you.

The download phase is the rest of the transfer, and it is where compression shows up. Text — HTML, CSS, JavaScript, JSON, SVG — should be served gzipped or, better, with Brotli; the ratio is typically 70–80%. An uncompressed HTML document is the single easiest win on this page, and it is a one-line server change. Images and video must not be compressed again, because they already are, and doing so wastes CPU for nothing.

Two other things visible in a single request matter more than their size suggests. Every redirect is a complete extra round trip — sometimes a whole extra DNS, connect and TLS sequence — before the real request even begins, so a chain of two or three is real, measurable delay for every first-time visitor. And cache headers decide whether a returning visitor repeats any of this at all: without Cache-Control, every asset is fetched again on the next visit even though nothing changed.

Two caveats about the numbers below. The first: this is a single sample from one location, so it includes whatever that moment held — a cold cache, a noisy neighbour, a queue. Run it two or three times and compare the spread rather than trusting one figure.

The second matters more, and most speed tools get it wrong. If your site sits behind a CDN, the wait between the TLS handshake and the first byte is not your application's thinking time. It also contains the CDN edge reaching your origin — and on a cold edge connection that is an entire extra DNS, TCP and TLS sequence, which can be most of a second on its own. A tool that labels that gap "server processing" will tell you your code is slow when your code rendered in twenty milliseconds. This page detects the common CDNs and says so rather than guessing; if a proxy is present, treat the wait as an upper bound on application time, not a measurement of it.

Frequently asked questions

What is a good TTFB?

Under 200 ms is good and 200–600 ms is unremarkable for most shared hosting. Past roughly 800 ms something specific is usually wrong: an uncached CMS, an unindexed query, or a third-party API being called while the page is rendering.

Why is this different from PageSpeed Insights?

Different question. PageSpeed loads the page in a real browser, runs your JavaScript and measures what the user sees. This measures the server's response only. Use this to find out whether the server is the problem, and a rendering test to find out what the visitor experiences.

How do I reduce time to first byte?

Cache. Full-page caching turns application time into file-serving time and usually dominates every other change. After that: add the missing database indexes, move third-party API calls off the render path into a queue, and make sure OPcache is enabled.

Does a CDN fix a slow TTFB?

Only partly. A CDN shortens the connect and TLS phases by terminating closer to the visitor, and serves cached pages outright. It does nothing for the application time on an uncacheable page — that request still travels to your origin and waits for PHP.

Why does the result vary between runs?

This is one sample from one place. Caches warm and cool, shared hosts have noisy neighbours, and networks fluctuate. Run it several times and look at the spread. A first run much slower than the rest usually means a cold connection or a cold cache rather than a slow server.

My site is behind Cloudflare — is the wait really my server?

Not necessarily, and this is the most common misreading of a TTFB number. The gap between the handshake and the first byte also covers the CDN edge fetching from your origin, which on a cold connection is a whole extra round trip. If repeat runs are far faster, it was connection setup. To measure the origin itself, test it directly rather than through the CDN.

Is the page size here the same as what a browser downloads?

No — it is the HTML document alone. The images, CSS and JavaScript it references are counted but not fetched, so the total transfer for a real visit is far larger. The request count is the more useful number, because that is what usually costs the time.

Related tools

Need hosting that just works?

Free SSL, daily backups and 24×7 support on every Loudhost plan.

View Hosting Plans