Benchmark Methodology: How We Measure Plugin & Theme Performance

Why We Benchmark

Most WordPress plugin reviews are subjective — they describe features but rarely measure performance. We take a different approach. Every plugin and theme in our plugin performance database is tested in a controlled, isolated environment so you can see exactly how it affects your site’s speed.

This page explains our testing methodology so you know exactly what the numbers on our plugin reviews and theme reviews mean.

Test Environment

  • Hardware: Isolated Docker container with dedicated resources (no shared hosting interference)
  • Software: WordPress 6.9, PHP 8.3, MariaDB 10.11, GeneratePress 3.x theme
  • No caching: No object cache (Redis), no page cache, no CDN — we measure raw WordPress performance
  • Clean install: Single-site WordPress with default content (Hello World post, Sample Page)

This setup mirrors a typical WordPress install without performance optimizations, giving you a true picture of what each plugin adds to your baseline.

What We Measure

Peak Memory Usage

Total memory allocated by PHP during the request, measured via memory_get_peak_usage(true). This tells you how much RAM the plugin adds to every page load on your site. Memory is the most reliable indicator of a plugin’s weight because it’s deterministic — the same plugin always allocates the same memory.

Database Queries

Total SQL queries executed during the request, measured via WordPress’s get_num_queries(). Plugins that add queries slow down every page load, especially on shared hosting with limited database connections. Like memory, query counts are reproducible and don’t depend on server load.

TTFB (Time to First Byte)

How long the server takes to begin responding to a request. We measure this via curl against localhost (eliminating network latency) and take the median of 5 requests. TTFB is displayed on each plugin profile for reference but is not used in the score calculation because it’s too noisy — server load, PHP OpCache state, and MariaDB query cache all introduce variance that doesn’t reflect the plugin itself.

How We Calculate Impact (Delta Method)

  1. Measure baseline: Clean WordPress + GeneratePress theme, no extra plugins. Record memory and query count.
  2. Install & activate the plugin under test.
  3. Measure again: Same metrics with the plugin active.
  4. Compute impact: (with plugin) – (baseline) = the plugin’s contribution.

This delta method isolates the plugin’s impact from WordPress core overhead. The baseline captures what WordPress itself costs; the delta is purely what the plugin adds. For example, see our WooCommerce performance review or Contact Form 7 review for real measured data.

We reset the environment every 50 plugins (full database reset + WordPress reinstall) to prevent accumulated state from affecting measurements.

Speed Score Formula (0–100)

Every benchmarked plugin receives a performance score from 0 to 100, calculated using a logarithmic formula based on two metrics: PHP memory usage and database queries.

The formula uses WordPress core as the baseline (4,096 KB memory, 4 queries) and applies logarithmic penalties for overhead above that baseline:

  • Memory penalty: 10 points for each doubling of memory overhead above baseline
  • Query penalty: 25 points for each 10× increase in query overhead above baseline

The logarithmic scale means the first few extra queries or megabytes matter far more than going from 100 to 110. This reflects real-world impact: adding 10 queries to a clean install is much more noticeable than adding 10 queries to a site already running 100.

The score is deterministic — adding new plugins to our database never changes existing plugin scores. Each plugin’s score depends only on its own measurements.

Grade Scale

Grade Score What It Means
A 90–100 Negligible impact. Safe to install on any hosting.
A- 80–89 Very light impact. Minimal overhead on any setup.
B+ / B / B- 65–79 Light impact. Adds some overhead but manageable on most setups.
C+ / C / C- 50–64 Moderate impact. May noticeably slow down budget hosting.
D+ / D 35–49 Heavy impact. Will affect page load times. Consider alternatives.
F 0–34 Severe impact. Significant resource usage that hurts performance.

Real Examples

Plugin Memory Queries Score Grade
Redis Cache 4,096 KB 4 100 A
Akismet 4,096 KB 5 92 A
Contact Form 7 6,144 KB 5 82 A-
Jetpack 6,144 KB 9 71 B
Elementor 6,144 KB 42 50 C-
WooCommerce 16,384 KB 70 26 F

Limitations & Caveats

  • These benchmarks measure activation overhead — the cost of having the plugin loaded on every page. They don’t capture all runtime scenarios (e.g., WooCommerce checkout processing or form submission handlers).
  • Real-world performance depends on your server hardware, PHP version, other active plugins, and how you configure the plugin.
  • Some plugins have minimal activation cost but significant per-page cost (e.g., page builders that run on specific pages). Our measurements capture the base load cost only.
  • Results are from a single measurement session. We plan to add periodic re-testing to track changes across plugin updates.

Reproducibility

Our Docker Compose configuration and benchmark scripts produce deterministic results. The same plugin tested in the same environment produces the same results — memory and query counts are exact, with TTFB noise margin of approximately 5 ms.

We use the median of 5 requests (not the average) to minimize the impact of occasional outlier measurements caused by garbage collection or background processes.

Browse Our Performance Reviews

See the methodology in action — every plugin and theme page shows real benchmark data:

Looking for something specific? Start with our most popular reviews: WooCommerce, Yoast SEO, Contact Form 7, Akismet.