Guide Website performance · 8 of 8
How to Diagnose Slow Time to First Byte
Diagnose slow TTFB by comparing network timing, cache hits and misses, and server work. Test a targeted fix and verify the full page after release.
Key takeaways
- Record the exact page and test conditions.
- Separate connection delay from response waiting.
- Compare cache states before tracing server work.
- Retest the full page after a targeted change.
To diagnose slow Time to First Byte, record where the delay occurs before changing your host or cache. Compare the same document across repeat runs, locations, and cache states. Then ask the server owner to trace the work that remains slow. The aim is to identify a cause you can test, rather than buy a faster plan on a guess.
Use the website performance guide for the whole page review. This article covers the wait for the first response bytes. It does not treat a quick response as proof that images, fonts, or clicks are fast.
What does a slow TTFB tell you?
TTFB describes an early part of loading. It can include more than the work done by the application server. Connection setup, distance, redirects, and cache behavior can affect the result. First confirm which definition and request your tool reports.
Google’s web.dev guidance distinguishes field data from lab tests and recommends tracing backend work with Server-Timing where available. Those distinctions matter more than a single screenshot. A test close to your server may not represent a reader far away.
Write a clear symptom: “The public service page waits before its document arrives on these runs.” Keep the URL and conditions with that claim. Avoid “the server is bad” until you have evidence that narrows the cause.
Build a baseline you can repeat
Choose a few real page types: a service page, a blog post, and a page with extra data work. Test the public versions with the same login state. Note the device, connection, region, tool, and time of each run.
Run each case more than once. Save the spread as well as a typical result. If one run is much slower, keep it and look for context. Deleting the inconvenient run would hide a problem that some readers may still face.
Separate a new connection from a repeat visit. Also label the cache state if you can observe it. Do not call the test cold merely because you opened another tab. A new tab can still share stored files or an existing connection.
Separate network setup from response waiting
Open the document request in the browser’s Network panel. Review its timing breakdown. Record time spent on connection steps and time spent waiting for the response. Keep the redirect path with the record when the visit goes through more than one URL.
If the main delay changes by location, ask the delivery team to compare the routes. If only one page type is slow, ask the application owner what that page builds. These are leads to investigate, not proof on their own.
A browser waiting interval does not directly reveal how long a database query took. Avoid assigning the full wait to one backend task. You need server-side evidence before making that claim.
Compare cache hits with misses
Follow the steps to test website caching before comparing response times. Label the requests using the signals supported by your delivery service. Include any expected bypass for signed-in or personal content.
If a hit is quick and a miss is slow, investigate the work needed to build the uncached response. If both are slow, review where the request is served and the path to it. Do not force private pages into a shared cache to hide a delay.
Check whether the test reflects a common visit. A rarely used URL, a special query string, or a test account may follow a different cache rule. Keep those runs, but group them correctly before deciding what affects most readers.
Trace the server work behind the slow case
Give the developer a small set of repeatable slow requests. Ask which work happens before the first bytes are sent. The answer may involve data access, rendering, an external service, or a queue. Let the trace decide where to focus.
Server-Timing can expose named backend durations when the application supplies them. An application monitoring trace can add detail. Ask what each label covers and whether tasks overlap. Do not add every duration together without knowing how it was measured.
For WordPress, use a controlled plugin performance test on a safe copy if a plugin is a plausible cause. A plugin count is not a trace. Confirm that any reduced delay survives repeat tests and required functions still work.
How to improve TTFB based on the evidence
To decide how to improve TTFB, ask for a short change proposal with a cause, owner, test, and rollback plan. If the trace shows repeated data work, test a change to that work. If the route has avoidable redirects, review the route. If the host lacks resources under load, gather that evidence before changing the plan.
Make one useful change at a time when possible. Keep the same pages and test conditions for the comparison. A faster run after several unrelated changes will not tell you which change helped or which one introduced a new fault.
Do not move important content out of the first response just to improve the number. A page that starts quickly but leaves the reader waiting for its answer may still be poor. Test the completed task as well as the early timing.
A hypothetical diagnosis for a service website
Imagine a local business whose service page is slow while its plain contact page is quick. This is an example of a method, not a report of measured gains. The reviewer tests both with the same browser and records whether each request uses a stored response.
The developer traces the slow page on a test copy. A remote data call is investigated because it appears in that page’s response path. The team tests a scoped change, restores the old version for comparison, and checks the booking form before release.
The final note should say what was observed, what changed, and what remains uncertain. It should not promise the same result for every site. Keep evidence from slow and fast cases so the next reviewer can challenge the conclusion.
Check the rest of the page after release
A better TTFB ends only one part of the work. Check which images load first so the main content arrives at the right time. Review font loading and visible text before calling the page ready.
Also test media space and layout shifts during scrolling. Use a separate trace to investigate slow JavaScript actions. Those problems can persist after the document responds quickly.
DEX Health provides a page SEO review, including on the free plan. Use it to check the published page alongside the timing evidence. It does not replace a server trace or prove a TTFB improvement. Recheck the same routes after release and keep the record for the next review.
FAQ
Is TTFB the same as total page load time?
+
No. Review the rest of loading and page use after checking the initial response.
Does a slow TTFB prove the host is the cause?
+
No. Compare request timing, cache state, and backend evidence before choosing a fix.
Should I move content to the browser to lower TTFB?
+
Do not judge the change on one metric. Check that readers can still reach and use the main content promptly.
Sources
- Optimize Time to First Byte · Google web.dev