Blog Post

Plugins performance testing: 2012 / January

This is first basic performance testing for WordPress plugins in 2012, and it will include 30 plugins. They will be tested on how much resources they use to load, and not to tell you if the plugin is good or not. Plugins features and plugin code quality is not the reviewed here.

Plan was to have more, but this first monthly measurement will have 30 instead of 50 plugins. But, this list will change over time, and new plugins will be added to the mix, and some of previously tested will be removed. But, from next month I will have publicly available table with all historical data for all tested versions.

All the data displayed here may vary depending on server configuration and other factors. Data here doesn’t say anything about quality of the plugins or their usability, it is only a test of resource usage. Also, some of the plugin can use different amount of resources depending on the plugin configuration, and all tests here are done with default plugin configurations. There is no way to test complex implication of different settings or method of work for a test like this.

Measurement Process

For this first monthly test I have tested 30 plugins. All tests are done with a single installation, and WordPress 3.3 was used. Tests are done on the local server with PHP 5.3.8. All measurements are done using GD Press Tools Pro 4.3.2 plugin. Plugin has a tracker class that can be loaded from wp-config.php file to accurately capture snapshots of different loading stages (among other things). To allow capturing plugins snapshots, I made small change to WordPress core files: added snapshot call into loop that loads plugins.

To get as accurate resource usage I spent some time testing each plugin individually to measure used memory during loading and after all plugins are loaded. Some plugins load most of its files hooked to WordPress action, and not during loading of the plugin. Again, this number is not 100% accurate, but it is very close. As these tests are improved over the next few months, the numbers can vary a bit.

Plugin Grading

Each plugin is graded on a scale from 1 (worst loading optimization) to 5 (best loading optimization). This grade is not only connected to used resources, but to actual method of loading plugin uses. Plugins that got grade 1 have no loading optimization and they always load everything (or almost everything) and that uses precious server resources always, even if the plugin doesn’t need all things loaded. There is no perfect loading method, because it would be very complicated to do. But grade 5 goes to plugins that use loading optimization, that care about what WordPress is executing, and how much resources are used actually. Change column for this first test is empty (well it is set to =), and it will change with next test depending on the progress plugin developers do with their plugins.

To give plugin a grade, I have analyzed plugin loading process and I have taken into account how much resources plugin takes due to loading method it uses. Best loading optimized plugin I know is my own GD Press Tools Pro. If this plugin is to load all its parts always it would use twice as much memory and it would need much more time to load. Even with all that, I always work on further changing how the plugin loads trying to make it better. Plugins close or better to the level of optimization in GD Press Tools Pro will be graded 5 also. If the plugin uses different amount of memory on front and back end it doesn’t mean that the grade will be higher because of that.

Before we go on to the testing, read the original article from last month regarding the plugin loading process that will give the reasons for such testing and why it is important to make sure that plugin loads parts it needs only for admin side and front end: Measuring impact of plugins on WordPress loading.

Tested plugins basic information

30 tested plugins are listed in the table below. Beside basic data in first 5 columns, you can see if plugin adds own JavaScript, how many AJAX handlers uses, how many cron jobs can be registered by this plugin (it doesn’t mean that all will be registered always) and how many widgets plugin can add.

Plugin Free Version Released Website JavaScript Ajax Crons Widgets
Adminimize Yes 1.7.24 2011.12.19. Home Yes 0 0 0
All In One SEO Pack Yes 2011.12.10. Home Yes 0 0 0
Antispam Bee Yes 2.3 2011.12.23. Home Yes 0 1 0
BackWPUp Yes 2.1.7 2011.12.16. Home Yes 7 2 0
bbPress Yes 2.0.2 2011.11.28. Home Yes 2 0 5
Contact Form 7 Yes 2011.12.18. Home Yes * 0 0
Events Manager Yes 5.0.1 2012.01.02. Home Yes 2 0 3
FPW Category Thumbnails Yes 1.4.2 2012.01.02. Home Yes 1 0 0
FPW Post Instructions Yes 1.2.3 2012.01.02. Home Yes 0 0 0
GD Affiliate Center Pro No 1.3.8 2011.12.31. Home Yes 0 3 1
GD bbPress Attachments Yes 1.5.3 2011.12.28. Home Yes 0 0 0
GD Custom Posts And Taxonomies Tools Lite Yes 1.5.0 2011.12.28. Home Yes 0 0 2
GD Custom Posts And Taxonomies Tools Pro No 3.5.6 2011.12.29. Home Yes 12 0 3
GD Press Tools Pro No 4.3.2 2011.12.28. Home Yes 30 7 0
GD Unit Converter Yes 1.1.1 2011.12.12. Home Yes 1 0 0
Gravity Forms No 1.6.2 2011.12.04. Home Yes 17 0 1
JigoShop Yes 2011.12.28. Home Yes 7 1 8
Lightbox Plus Yes 2.4.6 2012.01.01. Home Yes 0 0 0
MarketPress Lite Yes 2.4.2 2011.12.17. Home Yes 3 0 4
Members Yes 0.2 2011.06.13. Home Yes 0 0 2
NextGEN Gallery Yes 1.9.1 2011.12.10. Home Yes 10 0 3
Smart Youtube PRO Yes 4.0.3 2011.12.09. Home Yes 0 0 1
Subscribe to Comments Reloaded Yes 2.0.2 2011.08.31. Home No 0 0 0
Subscribe2 Yes 7.0.1 2011.12.14. Home Yes 0 0 2
SyntaxHighlighter Evolved Yes 3.1.3 2011.11.17. Home Yes 0 0 0
TinyMCE Advanced Yes 3.4.5 2011.12.12. Home Yes 0 0 0
W3 Total Cache Yes 2011.08.26. Home Yes 0 8 0
WooCommerce Yes 2011.12.15. Home Yes 17 0 14
WordPress SEO by Yoast Yes 1.1.2 2011.12.16. Home Yes 4 1 0
WP e-Commerce Yes 2011.12.08. Home Yes 7 1 8

All tested plugins, but one, used the internal WordPress AJAX handling. Contact Form 7 uses own handler and that is not something I can recommend. Using WP handler is best solution considering that it is already written with security concerns in mind and it is very easy to use, making plugin fit better with WP development concepts.

Resource Usage Test Results

Here is the list of all plugins in this test, and the results.

Administration Frontend Grade
Plugin Mem. SQL Time Hooks Mem. SQL Time Hooks Change Grade
Adminimize 0.8 0 0.015 9 0.8 0 0.014 9 = 2
All In One SEO Pack 0.5 1 0.011 12 0.5 1 0.011 12 = 3
Antispam Bee 0.3 1 0.004 2 0.2 0 0.004 6 = 3
BackWPUp 0.4 0 0.006 9 0.5 0 0.007 9 = 4
bbPress 4 0 0.056 216 3.8 0 0.046 205 = 1
Contact Form 7 0.4 0 0.009 17 0.5 0 0.007 16 = 2
Events Manager 5 2 0.07 75 3.7 2 0.052 64 = 2
FPW Category Thumbnails 0.3 1 0.004 9 0.3 1 0.004 1 = 3
FPW Post Instructions 0.1 0 0.003 7 0.1 0 0.003 1 = 4
GD Affiliate Center Pro 1.2 0 0.023 16 0.8 0 0.015 9 = 4
GD bbPress Attachments 0.2 0 0.005 1 0.2 0 0.004 1 = 3
GD Custom Posts And Taxonomies Tools Lite 1.5 0 0.019 13 1.3 0 0.016 7 = 4
GD Custom Posts And Taxonomies Tools Pro 2.3 0 0.033 49 1.6 0 0.025 24 = 4
GD Press Tools Pro 2.9 0 0.038 79 2 0 0.028 39 = 5
GD Unit Converter 0.5 0 0.011 4 0 0 0.001 0 = 5
Gravity Forms 2.9 0 0.03 4 2.9 0 0.027 4 = 2
JigoShop 3.6 0 0.059 148 2.8 0 0.044 105 = 1
Lightbox Plus 0.7 0 0.012 8 0.7 0 0.012 7 = 2
MarketPress Lite 2.4 0 0.026 44 2.4 0 0.027 44 = 1
Members 0.2 0 0.002 5 0.1 0 0.002 5 = 3
NextGEN Gallery 1.8 0 0.027 32 1.5 0 0.021 21 = 4
Smart Youtube PRO 0.7 0 0.014 10 0.6 0 0.007 10 = 3
Subscribe to Comments Reloaded 0.3 2 0.006 17 0.3 2 0.005 3 = 3
Subscribe2 1.3 0 0.014 2 1.3 0 0.012 2 = 1
SyntaxHighlighter Evolved 0.4 0 0.004 1 0.4 0 0.005 1 = 2
TinyMCE Advanced 0.9 0 0.011 13 0.9 0 0.012 13 = 3
W3 Total Cache 1.5 0 0.02 46 0.3 0 0.005 19 = 5
WooCommerce 3.2 0 0.056 100 3.4 0 0.051 134 = 1
WordPress SEO by Yoast 1.4 4 0.022 22 0.7 4 0.013 19 = 5
WP e-Commerce 1.3 0 0.019 47 1.3 0 0.019 47 = 2

So, let’s start with the good. My GD Press Tools Pro is very fine tuned to load different plugin parts when needed, and it is always evolving and improving. GD Unit Converter on the original test was badly graded, but with latest version I have changed it all, and it graded 5.  W3 Total Cache has very good optimization of resource usage, and loads a lot of things when needed only. Loader maybe a too complicated for my taste, but it is effective. WordPress SEO by Yoast is a great example of well written and optimized plugin.

Plugins with potential to be better are many, and all grade 3 and 4 plugins fit into this group. NextGEN Gallery is almost there, and with a bit more work, it can go to grade 5. I plan to improve my own plugins further, and work on that is in progress for some of them, so I expect them to be improved in the next tests.

Grade 2 plugins have only some elements of optimization, but they are close to grade 1. Adminimize plugin shouldn’t even load on the front end except for some elements, and that needs to be optimized. Gravity Forms is a great plugin, that needs a long way to go but at least has some sort of loading control.

As for the grade 1 plugins, the results may be surprising considering how popular some of this plugins are. WooCommerce started from JigoShop, but almost nothing is done to change awful loader JigoShop has, so they are both graded 1. Mike Jolley from WooThemes told me that they are working on improving WooCommerce so, I am looking forward to that. bbPress also has no optimization at all, and even from latest sources for 2.1 I don’t see any improvements there, and that is not a good sign.

Why is this all important?

WordPress loads plugins on both admin side and front end. But, most plugins don’t need to behave same way in both cases. Many plugins are needed only on one side. So, a plugin can be used on admin side only, and has no use on the admin side. If the plugin is not optimize to load files only when needed, it will take same resources on front end also, even so it is not needed or used, and that is a waste of server memory and time to load. Most plugins have two parts, one to be used on admin side to set the plugin, and other that works on the front end. No need to load everything on both sides, load only what the plugin needs, and it will use least amount of memory and it will work faster.

Should you care? No. And yes. If you run few plugins, than amount of memory used is not that relevant. If you run your website on VPS or dedicated server, you have much more memory available, but if you are on the shared hosting, every MB can be critical (especially if the hosting company limits it). This test is not about plugin quality. If you prefer using All In One SEO, don’t let the lower grade be a big concern because WordPress SEO plugin got higher grade. This tests show how the plugin handle resources nothing more.

Improving results

I am sure that many developers will say that these results are not important, but considering that most of the WordPress users are on shared hosting with limited memory and resources available to them, this is most important thing to have plugins they need and still have server running fine. Same thing goes for themes also. Dev4Press website uses 20-21 plugins for the last year, but with theme (my xScape Theme Framework based) and my plugins optimizations, I managed to lower memory usage from 60M last January to 40M today.

I recommend to all plugin developers to read my tutorial: How to optimize plugin loading. Most of the things from it can be applied to all plugins, and all users will benefit from developers investing extra time to optimize own plugins.

Edit 2012.01.05. – Updated grade information.
Edit 2012.01.06.
– Added few more explanations and link to original loading impact article.

Please wait...

About the author

Milan Petrovic
Milan Petrovic

CEO and Lead developer of Dev4Press Web Development company, working with WordPress since 2008, first as a freelancer, later founding own development company. Author of more than 250 plugins and more than 20 themes.

Subscribe to Dev4Press Newsletter

Get the latest announcements, release digests, promotions and exclusive discounts, and general Dev4Press-related news straight into your mailbox.

This form collects your email (optionally your name) for the purpose of sending you newsletters. Check out our Privacy Policy for more information on how we store and manage your data. We will not send you any spam. Newsletters are sent 2 to 4 times every month.

Latest From The Blog

BreadcrumbsPress Path Settings

BreadcrumbsPress Pro 4.3 / Lite 2.2

Both Pro and Lite versions of BreadcrumbsPress have been updated with new settings related to breadcrumbs paths, improvements to the blocks implementation, various tweaks, improvements, and fixes.
setup packages

Introducing Setup Packages

By popular request, Dev4Press now includes setup packages that can be purchased along with the plugin licenses and include plugin setup and training with the Dev4Press Support team via Meet, Zoom, or Skype.
antispam wpforms

Fighting spam in WPForms Lite & Pro

WPForms is a very popular plugin for creating contact forms, and a free version is available in the repository. But both versions have very basic spam protection, and that's why coreSecurity Pro has an Antispam feature for the WPForms plugin.

27 thoughts on “Plugins performance testing: 2012 / January”

  1. It would be interesting how the grades will be calculated. Are there any weighting factors?

    Please wait...
    • I have updated post with more on the grades. Grading will be changed over time, and if you have suggestions, please let me know. Grade will be always based on loading and resource usage, not the actual usability or features.

      Please wait...
  2. Nice done.

    I just hope that all the plugin’s authors can see your test in a constructive way.

    One negative surprise was bbPress, specially because it comes from the big bosses. Shouldn’t they be a good role model? Anyway, it would be nice if you could have another forum plugin in our list, just for the sake of comparison.

    Please wait...
    • Thanks for the comment Daniel. bbPress acts like WordPress: always load everything. WP needs to do that for obvious reasons, but bbPress doesn’t. And good idea for another forum plugin for comparison for next texs.

      Please wait...
      • Simple:Press ( is another forum plugin that you perhaps can use as comparison to bbPress?

        Please wait...
        • Thanks, I will include this on for next test.

          Please wait...
          • Cool, look fwd to the February edition then 🙂

            Please wait...
  3. Could you please post the formular, you used to compare those plugins? So far it doesn’t look objective. And could you please explain what the factors are, that you used to compare plugins that fall in completely different categories and seem, at a first glance, not comparable? Thanks.

    Please wait...
    • I think I provided enough explanation to both testing and grading in the article. I have not tested plugins usability or features, or general quality, that is not the goal here. Goal is to determine if the plugin is bad (or good) in resource usage. It has nothing to do with plugin categorization compared to other plugins in the test. Each plugin is evaluated individually.

      Please wait...
      • When I take “GD Press Tools Pro” and “Market Press Lite”, then they are no too far away from each other when you compare them by their values in your table. What makes the one have “Grade” 1 and the other one 5? Is the table missing information?

        Please wait...
        • As I said, values in the tables are not too relevant for the grade. Grade is based on actual code that plugin has to load own parts. GD Press Tools is a huge plugin, and if there was no loading optimization it would use twice as much memory. Plugins that score 1 or 2 are loading everything they have regardless of the actual need for things they load, and that is bad optimization, that is why they scored low.

          My optimization tutorial lists all the reasons why optimization is necessary and how to achieve it. Any plugin to follow that article will without any doubt score high (4 or 5). I give here example of my another plugin GD Unit Converter. In the original measurement article from december it scored very low, and now I have applied my methods of optimization and it is a different thing now.

          Please wait...
          • So basically this is a code review?

            Please wait...
        • Grade is review only of the code that is used to load plugin elements. I don’t get into the quality of the code, only loading.

          Please wait...
  4. Cannot wait for the second round of testing. I did optimize both plugins: FPW Post Instructions and FPW Category Thumbnails following your tutorial. I hope that both of them will score 5 now.

    Please wait...
    • Thanks Frank! FPW Post Instructions is really useful plugin, I already added it into development list for future projects.

      Please wait...
  5. Hey Millan, thanks for including bbPress in your monthly performance testings. As the lead developer of the bbPress 2.x branch of code, it’d be great to get your specific opinions on what we could do to improve, as bbPress is already doing everything you outline in your plugin optimization post.

    Your findings actually aren’t that surprising. bbPress loads everything up to avoid third-party plugins hitting fatal errors from not having functions and template tags available to them, with the only caveat being admin functions and UI.

    I’m more curious to see how bbPress 2.x fares using your testing methods against other forum plugins and the stand-alone bbPress 1.x branch too. bbPress 2.x relies heavily on the WordPress core actions, filters, and object cache.

    It’d be the most helpful (to me and the bbPress project) to move your thoughts on optimizing bbPress specifically to this ticket to keep from fragmenting the conversation in too many places.

    Thanks again for putting this together and I look forward to your thoughts and feedback.

    Please wait...
    • Thanks for the comment John. Yes, I know that bbPress is a bit of a problem in this regard, considering the way it should work. I am following bbPress 2.0 development for almost a year now and I think that it is a great plugin, despite using so much resources. Since I have used old bbPress 1.0 for a long while, I can say that bbPress 2.0 is better in every way, including memory usage (I still have old forum on localhost integrated with WordPress) considering how much more we have now with pluin version.

      I get that plugins or theme need to be able to have access to bbPress all the time, but I think that most users are using bbPress through normal forum pages only. Some are using shortcodes to embed things, and maybe use widgets. But, I use bbPress 2.0 on this website, and I have no need for it anywhere but in the /forums/ section. And yet, it loads everywhere always. I will try to formulate in more details what sort of changes and code fragmentation can be used to make that optimized, and also maybe find some way to use PHP auto load methods. Big problem is that this will not be some quick to implement solution, but at least we can start with partial changes and improve over time.

      Please wait...
      • Regarding using the magic __autoload(), sadly it’s part of PHP 5.3 and WordPress/bbPress/BuddyPress still need to support PHP 5.2. Open to seeing what improvements an autoload patch might give though, in preparation for the move to dropping PHP 5.2.

        Thanks again for your help.

        Please wait...
        • Yes, that is the problem, and considering that 5.3 is used on less than 10% of websites right now, we will be stuck with 5.2 for a long time. Hopefully some other solution can be used and bbPress improved. Anyway, I am great supporter of bbPress and I plan to release one more plugin for it soon, beside the one I already made for adding attachments (GD bbPress Attachments), and I am looking forward to improvements to come in the future.

          Please wait...
        • Actually, __autoload() is available in earlier versions of PHP (I’m pretty sure it was in 5.0). In 5.3.0 they added the ability to catch exceptions thrown from within it, but other than that use case you should be fine to use it.

          Please wait...
  6. Can you add Buddypress for next performance test? great report!

    Please wait...
    • BuddyPress will be included in March tests.

      Please wait...
      • I’ll go ahead and note here that BuddyPress is a *much* larger plugin than any of the others being tested here. Pitting it against something small with a totally different purpose (Akismet, Members, etc…) isn’t going to be a fair comparison.

        Many of the statements you make about performance and improvements are true. Just remember that it’s incredibly difficult to add completely new functionality at little to no performance cost, let alone 8 huge new features like BuddyPress provides.

        Have mercy. 🙂

        Please wait...
        • It is similar situation as with bbPress, a lot of things are needed all the time, and it needs to use a lot of memory by design. And since I don’t have a lot of experience with it, I don’t want to make a quick test only, so I will push it back a bit to get more time with it.

          Please wait...
  7. First have to say thanks for your test, the results are important for many private and also business users that installed their WordPress on shared memory based hosts.
    Knowing the past, where memory was the most important cost of a personal computer, we were always looking ahead for implementations (not only serverside-based) that are more intelligent and consume less memory. Will try to use simple:press due to the performance gains. I have bookmarked your site, hopefully the next test will include some more common plugins, though its understandable that your primary look is on the performance of the GD-based plugins.

    Please wait...
  8. Will we have plugin testing in February?

    Please wait...
    • Unfortunately, no. It will resume soon in the different way.

      Please wait...

Comments are closed.

WP Rocket - Make WordPress Load Fast in a Few Clicks
Grammarly - Number 1 Writing App