Skip to content

Performance

TTFB is not LCP

TTFB and LCP answer different questions, so you fix them at different layers of the stack.

Updated Aug 29, 20263 min read20 reads
TTFB is not LCP
TTFB measures the first byte; LCP measures the largest paint

TTFB is not LCP. Time to First Byte is how long it takes before the browser receives the first byte of the response. Largest Contentful Paint is when the largest visible element on the page actually paints, usually a hero image or a main heading. A CDN can improve the TTFB you see while LCP stays slow because of a heavy image. Uncached PHP can hurt TTFB even when a cached public page paints quickly. You need both numbers, and they point at different work.

On a cache miss, TTFB often reflects PHP, SQL, worker load, and disk. On a cache hit with LiteSpeed, TTFB should stay short because HTML is already ready to serve. LCP still depends on the HTML plus the hero image, web fonts, and any script that delays the main paint. Speeding up TTFB does not resize a large PNG. Compressing that PNG does not fix a slow database query.

Who owns TTFB and who owns LCP

Your origin and LSCache own TTFB for HTML when the edge does not already hold the page. A CDN owns the TTFB the visitor sees only when the edge serves a cached copy. You own LCP through the assets and markup in the theme and page content. If both metrics look bad, treat them as two separate jobs. Do not buy CDN capacity to hide a multi‑megabyte hero and call the problem TTFB. A plugin that promises better LCP without touching images is working on the wrong layer.

bash
curl -o /dev/null -s -w ‘dns:%{time_namelookup} tcp:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}n’ https://example.com/

That curl line reports TTFB along with DNS, TCP, and TLS timing. Pair it with response headers from curl -sI so you can see whether the page was cached. Then inspect the hero: file size, format, and display dimensions. If TTFB is already low and LCP is not, stop chasing PHP workers. A waterfall from your office while you are logged into wp-admin with a page-builder bar is not the LCP your customers get. A CrUX figure from last month is not this morning’s deploy. Check curl TTFB from a second city, then open a private window on a phone.

Two measurements, two places to work

wp-admin TTFB is uncached on purpose, so it is a poor stand-in for the public homepage. Worldwide CDN TTFB is not the same as origin TTFB. One city’s synthetic test is only one city. Start with the logged-out homepage, then test the URL that actually drives revenue. If images were already optimized and TTFB is still high, return to the origin side: workers, queries, and cache behavior. If TTFB is around 80 ms and LCP is still about three seconds, focus on the hero, the font, or blocking JavaScript. Write both numbers down before you change plugins. A memory that the site “used to feel fast” is neither TTFB nor LCP.

Share

Send this article

Need someone else to do this? Send them the link — the commands are in the article.

Was this article helpful?

Be the first to rate this article.