Case studies · 6

The work, in full.

problem, diagnosis, decision, build, result

Most of this is client work under NDA, so there are no screenshots. Each case covers what was wrong, how it was found, what was decided, what was built and what it measured afterwards.

    1. The problem

      Homepage TTFB was over 6 seconds and the host kept throwing 504s during traffic spikes. Two previous agencies had added a caching plugin and called it done.

    2. What I found

      • Profiled a cold request with Query Monitor + slow query log instead of guessing.
      • Found 3.1 MB of autoloaded options — every request was loading dead plugin settings into memory.
      • The homepage ran 11 separate WP_Query loops, four of them ordering by a meta value with no index.
      • The caching plugin was bypassed for any visitor with a tracking cookie — effectively all of them.
    3. What I decided

      Don't add another cache on top of a slow origin. Make the origin fast first, then cache the right things at the right layer.

    4. What I built

      • Cleaned autoload: 3.1 MB → 190 KB, with a migration that's safe to re-run.
      • Collapsed homepage loops into two queries with a transient-backed fragment cache.
      • Persistent object cache (Redis) + Cloudflare edge caching with proper bypass rules.

    What changed

    Time to first byte
    6.2s 0.21s
    Queries / page
    212 31
    504s / week
    ~40 0
    WordPressPHP 8MySQLRedisCloudflare

Have a problem like these?

Back to the homepage

Available for new projects