Profiling WordPress Performance

Performance is key for high-traffic WordPress sites, and there are two main ingredients for great WordPress performance – caching and profiling. In this short tutorial we’ll focus on profiling, how it complements caching, and why all of it really matters.

Continue reading →

Don’t Cache WP_Query Objects

WP_Query is one of the most complex classes in the WordPress codebase. It’s extremely powerful and flexible, but that flexibility often results in slower database queries, especially when working with metadata. To speed things up, WordPress developers tend to cache the results of such queries, but there are a few pitfalls you should be aware…

Continue reading →

Don’t Cache Everything in a Transient

The Transients API is a great way to cache small pieces of data in WordPress, but there are certain things developers tend to overlook when working with this API. In this post we’ll cover some situations where transient caching is not a good fit, and explore some better alternatives.

Continue reading →

Running WordPress Cron via PHP-CLI

WP-Cron, the WordPress task scheduler, is a common source of problems, from missed publish schedules and failed auto-updates, to broken garbage collection and cache flushing. There are plenty of good tutorials on working with the scheduler, so in this post we’d like to focus more on performance, and why it’s a better idea to trigger…

Continue reading →

Measuring Your WordPress Cache Hit Rate

Caching is one of the key ingredients for great WordPress performance, but how do you find out whether your cache configuration is efficient? In this tutorial we’ll explore some of the tools and methods which you can use to measure your WordPress cache hit rate.

Continue reading →

Optimizing wp_options for Speed

The options table in the WordPress database often becomes a performance bottleneck, especially on older, and perhaps more complex sites. In this article we’ll look at some insights, tools and tips to help you take control over your wp_options table.

Continue reading →