Everything Starts With Server Response Time
WordPress performance optimisation generates a significant amount of advice: compress images, minify CSS, enable lazy loading, install a caching plugin. Most of this advice addresses the frontend — what the browser downloads and renders. Almost none of it addresses what determines whether any of those optimisations can actually work: the time it takes your server to generate the initial response.
Time to First Byte (TTFB) is the metric that captures this: the time between a browser making a request and receiving the first byte of the server’s response. It is the foundation on which every other performance metric rests. A poor TTFB cannot be fixed by frontend optimisation.
What Determines TTFB
For a WordPress site, TTFB is primarily determined by three factors: server hardware and resource allocation, PHP processing time, and database query time.
Server hardware sets the ceiling. CPU clock speed and cache size determine how quickly PHP can be executed. Storage type determines how quickly database queries can read from disk. RAM allocation determines how much can be cached in memory versus retrieved from storage. On shared hosting, these resources are pooled and contended. On dedicated or properly isolated hosting, they are fully available to your site.
PHP processing time is the time WordPress takes to bootstrap, load plugins, execute the request, and generate HTML. This is influenced by PHP version (8.1+ is significantly faster than 7.x), opcode caching (PHP opcache stores compiled bytecode, eliminating recompilation on every request), and the number and efficiency of active plugins. Even with optimal PHP configuration, processing time on shared hosting is constrained by available CPU.
Database query time is often the dominant factor for complex WordPress sites. Every page load involves multiple database queries — loading post content, navigation menus, widget data, plugin settings, and user information. On an unoptimised WordPress installation with a large database, these queries can take 500ms-1 second alone. Object caching (Redis or Memcached) stores query results in memory, reducing repeat query time to microseconds.
Target TTFB Values
Google’s Core Web Vitals guidance rates TTFB as: Good below 800ms, Needs Improvement 800ms-1800ms, Poor above 1800ms. However, for a WordPress site on managed hosting with server-level caching, TTFB of under 200ms is achievable and should be the target.
A TTFB consistently above 500ms indicates a server-side bottleneck. Frontend optimisation will not resolve it.
Measuring TTFB
Measure TTFB using WebPageTest (free, tests from multiple global locations) or Chrome DevTools Network tab. Measure at different times of day — TTFB that varies significantly between off-peak and peak hours indicates resource contention on a shared server.
Compare your TTFB against a baseline taken immediately after a cache clear. If TTFB is acceptable on a warm cache but poor on a cold request, your database and PHP layer need attention. If TTFB is poor even with full caching, the server infrastructure is the constraint.
The Hosting Solution
Improving TTFB through hosting means: dedicated or properly isolated CPU and RAM; a fast PHP handler (LiteSpeed LSAPI outperforms PHP-FPM for WordPress workloads); Redis object caching at the infrastructure level; NVMe storage for database I/O; and server-level full-page caching for uncacheable requests.
These are infrastructure decisions, not plugin decisions. See WP Pro Host’s infrastructure or why your WordPress site is slow for the full picture.
Frequently Asked Questions
What is TTFB (Time to First Byte) in WordPress?
TTFB is the time between a browser making a request and receiving the first byte of the server’s response. It is the foundation on which every other WordPress performance metric rests — poor TTFB cannot be fixed by frontend optimisation. For a WordPress site on managed hosting with server-level caching, TTFB under 200ms is achievable and should be the target. TTFB consistently above 500ms indicates a server-side bottleneck.
What is a good TTFB for a WordPress site?
Google rates TTFB as good below 800ms, needs improvement between 800–1800ms, and poor above 1800ms. However, for a WordPress site on managed hosting, under 200ms should be the target. A sub-200ms TTFB gives LCP the maximum budget for subsequent rendering steps and ensures near-instant page responsiveness for users.
What causes slow TTFB in WordPress?
TTFB is primarily determined by: server hardware and resource allocation (shared CPU on budget hosting causes contention), PHP execution time (bootstrapping WordPress, loading plugins, generating HTML — slower without OPcache or on old PHP versions), and database query time (loading content, menus, settings — fast with Redis object caching, slow without it).
How do I measure TTFB for my WordPress site?
Use WebPageTest (free, multiple global test locations) or Chrome DevTools Network tab (look for ‘Waiting for server response’). Measure at different times of day — TTFB that varies significantly between off-peak and peak hours indicates resource contention on a shared server.
Can a caching plugin fix slow TTFB?
Only partially. Caching plugins improve TTFB for cached pages by serving pre-built HTML. However, they only help for cacheable content — logged-in users, WooCommerce cart and checkout, and AJAX requests are not cached. If uncached TTFB is 800ms+, the server is the bottleneck. Proper server-level caching (LiteSpeed), Redis, and adequate CPU and PHP worker allocation are the real solution.