← All posts

What a slow server really costs your SEO


Most speed conversations start in the browser. Oversized images, render blocking scripts, layout shifts, the usual suspects. But every one of those problems begins only after the server has answered. If the answer itself is slow, the best optimized front end in the world sits there waiting for it.

Server response time is the quiet tax on everything downstream. It rarely gets a dashboard of its own and it is invisible in most page speed screenshots, yet it sets the floor for how fast any page can possibly feel and for how efficiently bots can crawl the site.

What TTFB actually measures

Time to first byte, or TTFB, is the time from the moment a navigation starts until the first byte of the response arrives. That window includes more than the server thinking. It covers redirect time, DNS lookup, establishing the connection and TLS, sending the request, the server doing its work, and the first byte traveling back.

That definition matters because it changes where you look. A page can have a fast server and a terrible TTFB purely because it sits behind two redirects, or because visitors connect from the other side of the world with no CDN in between.

As a rule of thumb from the Chrome team, a TTFB under 800 milliseconds at the 75th percentile is considered good, and anything over 1.8 seconds is poor. TTFB is not a Core Web Vital itself. It is a diagnostic metric that sits underneath Largest Contentful Paint. LCP has a budget of 2.5 seconds, and every millisecond the server spends deliberating comes straight out of it. A 1.8 second TTFB leaves 700 milliseconds for the browser to fetch, render, and paint the largest element. That is almost never enough.

How Google reacts to a slow server

Two separate systems care about response time, and they care in different ways.

Ranking cares indirectly. Core Web Vitals are part of Google's page experience signals, and TTFB feeds LCP. The effect is real but modest. Relevance and links still dominate, and speed will not rescue thin content. Where speed does show up clearly is in user behavior, since slow pages lose visitors before they finish loading, and lost visitors look a lot like weak engagement.

Crawling cares directly. Google's crawl budget documentation is explicit that crawl capacity adapts to server health. If the site responds quickly and cleanly, Googlebot raises its crawl rate. If responses slow down or the server starts returning errors, Googlebot backs off to avoid making things worse. A small site will rarely notice this. A site with tens of thousands of URLs will, because fewer pages get fetched per day and fresh content waits longer to be discovered.

Google Search Console makes this visible. The Crawl Stats report tracks average response time as Googlebot experiences it, and when that line creeps up, total crawl requests often drift down in response.

Where the time actually goes

DNS and TLS are usually rounding errors. In practice, high server response times almost always trace back to a handful of causes.

  • Nothing is cached. Every request rebuilds the page from scratch, even though the content last changed a week ago.

  • Chained data fetching. The page calls a CMS API, then a second endpoint, then a third, one after another, before a single byte of HTML exists.

  • Cold starts. Serverless functions that have gone idle need a moment to wake up, and the unlucky first visitor pays for it.

  • Redirect chains. Each hop adds a full round trip before the real request even begins.

  • Distance. An origin server in one region serving the whole planet with no CDN in front of it.

Server side rendering deserves a special mention. SSR is excellent for SEO because the full HTML arrives in the response, but it means the server does real work on every request. If that work includes slow API calls, TTFB inherits all of it. The fix is rarely to abandon SSR. It is to cache, either the data the page needs or the rendered HTML itself at the CDN, so most requests skip the server entirely.

Measuring it honestly

Field data first. PageSpeed Insights and the Chrome UX Report show TTFB as real visitors experience it at the 75th percentile, which is the number worth caring about. For how bots experience the site, the Crawl Stats report in Search Console is the closest thing to ground truth.

For spot checks, curl tells the whole story in one line.

curl -s -o /dev/null -w "dns=%{time_namelookup} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n" https://example.com/

Run it a few times, and run it against both a cached and an uncached URL when a CDN is involved. Many sites look fast only because the test hit a warm cache. Response headers usually reveal the difference, so watch for age, x-cache, or similar cache status headers while testing.

Bringing it down without a rewrite

The highest leverage fix is letting a CDN cache full HTML for pages that do not change per visitor. A cache control header with a sensible s-maxage plus stale-while-revalidate means most visitors and most bot requests get served from the edge in a few hundred milliseconds, while the origin refreshes quietly in the background.

After that, the list is short and boring, which is exactly what makes it reliable. Cache expensive lookups on the server so repeat requests skip the API round trips. Collapse redirect chains to a single hop. Make sure compression is on and the site speaks HTTP/2 or HTTP/3. Keep the origin near the audience, or put edge infrastructure in front of it.

And know when to stop. If field TTFB sits comfortably under 800 milliseconds, the remaining LCP problems almost certainly live in the front end, and that is where the effort should go. Chasing a 300 millisecond TTFB down to 250 helps nobody rank.

A slow server is rarely the loudest problem in an audit, but it taxes everything downstream. Crawling, rendering, Core Web Vitals, conversions, even how quickly fixes get recrawled after they ship. Bring response time down and every other optimization starts from a better place.