Performance / / 8 min read / By

I Re-Benchmarked the Worst WordPress Plugins: 6 Cut Queries

I re-benchmarked 66 of the worst-graded WordPress plugins. Most gains didn't hold up. 6 really cut homepage queries, and all 6 had shipped new releases.

On 5 November 2026 I re-benchmarked the plugins my benchmark had graded worst, and a lot of them looked like they had improved. Most of that improvement didn't hold up, but a simple rule found 6 plugins whose homepage queries really dropped, and all 6 had shipped new releases. For the two biggest plugins I went further and found the exact release that did it.

So when a re-benchmark says a plugin got faster, check whether its query count dropped before you believe it. Here's how I got from "wow, lots of plugins got faster" to that shorter list.

What I re-measured

I run this benchmark myself, and it grades plugins on makewpfast.com/plugins/. Each plugin goes onto a fresh WordPress 6.9.4 test site. On its own that site makes 19 queries at activation, 22 on the homepage and 33 in wp-admin. I measure each plugin in those 3 contexts. Each context gets its own score, 100 minus a memory penalty minus a query penalty, and the final score averages the 3.

I took every plugin graded D+, D or F. That was 77 plugins. 2 had been closed on wp.org, which left 75. I managed to re-measure 66 of them. The other 9 wouldn't run: some needed a newer WordPress than my test install, some had missing dependencies, some threw fatal errors.

At first glance the result looked great. 37 of the 66 moved up at least one grade. Then I started looking at why.

Which comparisons count

A before/after comparison only works if both readings were taken the same way. So I only compare plugins that were measured in all 3 contexts both times, where the clean-install query count matched within 2 queries in every context. That rules out the obvious setup differences in the query numbers, though not every difference (more on qi-blocks below). The memory baseline still differs for some plugins, which is one more reason I lean on queries below.

Of the 66:

  • 12 came back with 0 memory and 0 queries in every context. I set these aside (more below).
  • 4 had an old reading that didn't cover all 3 contexts.
  • 6 had an old reading where the clean-install query count didn't match.

That leaves 44 plugins. Every comparison number below comes from those 44.

The zero readings

All 12 zero readings jumped to A, and 9 of them had been F. A 0/0 reading means one of two things. Either the plugin didn't load, or it's close to free on that page and too small to register. I can't tell which from the data, so I set them aside.

There's a second reason not to read them as improvements. 10 of the 12 had shipped no release at all between the two measurements. When unchanged code suddenly costs nothing, I look at the measurement first.

imajize is the clearest case. It went from F to A, score 33 to 100, and its homepage went from 42 queries to 0.

Memory moves in 2 MB steps

My harness reads memory in 2 MB steps. Each step costs up to 10 points in the context where it happens. Because the final score averages the 3 contexts, one step in one context moves the final score by less than that. But a plugin sitting near the edge of a step can still change grade with no code change.

I caught it happening. I installed ad-inserter 2.8.17 twice on the same setup. Both runs made 103 homepage queries, but the plugin's homepage memory came out as 0 MB the first time and 2 MB the second. The plugin itself read the same both times. The clean-site reading it gets compared against moved by one step.

shapepress-dsgvo shows it cleanly. It shipped no release between the two measurements:

  • Homepage queries: 64 before, 64 after
  • Homepage memory: 2 MB before, 0 MB after
  • Score: 45 before, 53 after
  • Grade: D+ before, C- after

Its activation and admin readings dropped a step too, which is where the rest of the gain comes from. The queries and the code stayed the same, and the grade still went up. If a "faster" plugin made the same number of queries before and after, I don't believe the improvement.

Did updating a plugin help?

This was the question I actually cared about, and the short answer is no detectable difference. I count a plugin as updated if wp.org shows a release after my first measurement. On the 44:

  • Shipped a new release: 31 plugins, mean change +3.5 points, median 0.
  • No new release: 13 plugins, mean change +2.1 points, median 0.

The Welch t value is 0.5. On average there's no detectable difference between the two groups. These are score changes, so memory steps are mixed into them too. Both medians are 0, so the typical plugin in either group didn't move at all.

One catch. wp.org's "last updated" date also changes when a developer only edits the readme. So "updated" in my data doesn't guarantee the code changed.

Six plugins whose queries really dropped

Query counts don't come in 2 MB steps, so they're the signal I lean on. I set one rule: homepage queries down by 10 or more and by at least 25%. 6 of the 44 pass, and all 6 had shipped new releases.

PluginActive installsHomepage queries (before / after)
ultimakit-for-wp20+271 / 6
qi-blocks60,000+89 / 18
botfend-anti-bot-firewall10+105 / 46
ad-inserter300,000+103 / 4
atlant-security800+90 / 23
modern-hotel-booking10+48 / 6

I left grades out of this table on purpose. Grades mix in memory, and memory baselines moved between runs. For qi-blocks, the "before" is the count its old version makes on today's setup. The other five rows compare an old reading with a new one. I confirmed ad-inserter and qi-blocks release by release (below). The other four rest on one old and one new reading each.

The zero readings sit outside this table, and most of them came from plugins with no release. So I read "all 6 updated" as a pattern worth noting, but I wouldn't call it proof.

ultimakit-for-wp is the biggest drop, 271 queries down to 6 on a clean test site's homepage.

botfend-anti-bot-firewall is the odd one. Its homepage queries fell from 105 to 46, yet its grade went down, from D+ to D, because its memory use went up. Fewer queries and more memory can both be true after a release, and the score weighs both.

Which release did it

The two most installed plugins in the table are ad-inserter and qi-blocks, so I tested them release by release. I installed each version on the same test setup, twice, and counted homepage queries. Both runs gave identical counts every time.

PluginVersionHomepage queries
ad-inserter2.8.17103
ad-inserter2.8.184
ad-inserter2.8.194
ad-inserter2.8.204
qi-blocks1.4.989
qi-blocks1.518
qi-blocks1.5.418

ad-inserter dropped in 2.8.18 (27 July 2026). Its changelog for that release lists a fix for W3 Total Cache fragment caching, which my test site doesn't run, plus the line "Few minor bug fixes, cosmetic changes and code improvements". So the release is pinned down, but the changelog doesn't explain the drop.

qi-blocks dropped in 1.5 (15 June 2026). That release lists frontend performance fixes, including fewer option lookups and caching of block detection, which fits what I measured.

For qi-blocks, the drops table uses 89, the count 1.4.9 makes on today's setup, measured the same way as 1.5. My April reading of that version was higher, at 130. I don't know why. Its wp-admin count matches (15 both times), but the homepage (130 vs 89) and activation (137 vs 89) counts differ. Either way, both 130 and 89 pass my rule.

The plugins that stayed put

20 plugins had identical homepage query counts before and after. A few of them: optin-forms at 178, geoareas at 129, proverbs at 121, myinvoice-sync at 127, block-options at 532. block-options read 532 before and after and stayed F. So for about half of the 44 the harness held a query count exactly steady across months, heavy ones included. I also ran block-options on a second machine with the same setup, and it made 532 there too. Not every old reading holds up, though: qi-blocks 1.4.9 made 130 queries in April and 89 today, which is why I re-installed old versions instead of trusting a single old number. That's what makes the 6 drops above stand out.

How to read any plugin benchmark

This applies to my grades too. If you re-measure the worst-scoring group of anything, it tends to look better the second time, because some of those scores were partly an unlucky run. Statisticians call this regression to the mean. A few rules I now use:

  • Trust query counts over memory. Memory readings move in steps and can flip a grade on their own. Even query counts are worth re-testing when an old reading is all you have.
  • Set zero readings aside. 0/0 can mean the plugin didn't load, and you can't tell from the number.
  • Only compare readings taken on the same baseline, in the same contexts.
  • Before believing "it got faster", check plugins that didn't change. If they moved just as much, it's noise.
  • Re-run anything surprising before you write about it.

When a plugin uses fewer queries on a default install, the count shows it clearly. If you're curious how many new plugins keep landing on wp.org each month, I wrote about the flood of new WordPress plugins recently.

If you want to check a plugin you run, look it up in the makewpfast.com plugin benchmark and read its homepage query count before the letter grade. The pages for the six plugins above now show these new query counts. The rest still show my earlier readings. The same data feeds the Plugin Performance Score column in WP Multitool.

FAQ

Did updating plugins make them faster?

On average I couldn't detect a difference between updated plugins and plugins with no release. What I can say is that all 6 plugins whose homepage queries clearly dropped had shipped new releases, and for two of them I found the exact release. That leaves out the plugins that dropped to zero, which I set aside and which mostly had no release.

Why did some plugins jump from F to A?

They recorded 0 memory and 0 queries. That means the plugin either didn't load or is close to free on that page. I can't tell which, and 10 of the 12 had shipped no release, so I set those readings aside.

Which plugins really improved?

6 passed my rule of homepage queries down by 10 or more and by at least 25%. The biggest was ultimakit-for-wp, from 271 to 6. ad-inserter went from 103 to 4 in release 2.8.18, and qi-blocks from 89 to 18 in release 1.5.

Should I trust memory numbers in plugin benchmarks?

Be careful with them. My harness reads memory in 2 MB steps, and one step costs up to 10 points in the context where it happens. Query counts are the more reliable signal, though an old reading is still worth re-testing.

Find what is slowing your WordPress

WP Multitool - 19 modules. From $79/year. Zero bloat.

Get WP Multitool

Built by Marcin Dudek.