Posted on

How to fix time-to-first-byte (TTFB) problems

Hand with old fashioned stopwatch timer

Time-to-first-byte (TTFB) is one of the most useful website performance metrics. It’s also one of the hardest to improve. Caching plugins can’t do much for it; actually they contribute to it. Caching plugins don’t fix cache warm-up, authenticated sessions, submissions / processing, and administration. To improve those you need to get TTFB in range. The recommended target is 0.5 seconds.

Here’s my tips to optimize your TTFB:

  1. Hosting. A good managed host is recommended for all serious WordPress websites. That makes your host responsible for the application and its performance. In addition to having a managed host, pick a modern one to ensure they have optimal equipment and edge services (things being served separately from your site such as SSL, firewall, images, static files, browser caching). Examples are Kinsta, Pantheon.io, and SiteDistrict. Faster bus speeds within the server equipment makes a big difference. I’ve seen TTFB cut down 75% just by switching hosts. Be sure to try one out and measure performance before you commit to anything long-term.
  2. Plugins. Get your site down to 25 plugins or less. While plugins are critical and typically do little harm individually; realistically the more you run the greater your exposure is to customization risks. Picking business critical and reputably-sourced plugins will help. Only use plugins where its features are being nearly fully engaged. Use small code snippets or child theme functions in lieu of plugins where possible.
  3. Page Caching. Using one caching plugin to perform page caching may help your site if you serve higher traffic static content such as blog posts. Otherwise I suggest you get rid of all caching plugins and let your host and/or website proxy service handle various caching optimizations behind the scenes.
  4. Database. Clean-up your database. Did you know that each plugin you use leaves behind settings and data, and that this data causes your queries to take longer and memory to get exhausted quicker? Check out my blog post on cleaning your wp_options table.
  5. Debugging. Disable any unused features within the settings panels for WooCommerce core, JetPack, or other larger plugins. I typically use New Relic APM to examine sites to see which plugins and hooks are the most resource intensive under basic test scenarios.
  6. Testing. Every website is unique. In addition to gathering production KPIs, use a robust development or staging environment where you can run performance tests (ex: load testing) periodically and keep records of significant findings, changes and their impacts.

If you need assistance with WooCommerce and performance, book an appointment for a free consultation!