I am working to optimize a couple of sites, and I’ve gone through the low-hanging fruit of optimizing caching and compression, and now I’m looking at time to first byte and plugin weight.
I’m running initial tests on my VPS test server (just updated to 1.5GB memory). Here’s the results for BB plugin under WP Performance Profiler:
Here’s the results for the theme:
That’s a pretty good chunk of the processing time (between 1.5 and 2 seconds, depending on the page).
Do you have any suggestions for optimizing the plugin usage for speed? One of the sites I’m optimizing can be cached, but one is a membership site, and therefore cannot be cached, so I’d love recommendations if there are things I can simplify in the site design (or any other suggestions) to boost the processing speed.
May I ask why your membership site can not be cached?
In terms of optimisation, you will probably want to use something like Autoptimize - https://wordpress.org/plugins/autoptimize/
You may want to check on your images and make sure they’re optimised. You can use the following:
You may want to considering using a CDN like MaxCDN and only use plugins that are necessary. If you have any plugins you can live without, then remove them.
In regards to cache plugins, I would highly recommend WP Rocket. You may want to check out this article - https://codex.wordpress.org/WordPress_Optimization/Caching
I suppose in theory I could investigate per-user caching for logged-in users, but given that BuddyPress and BBPress are important parts of the site, I think that might be an issue. Also, in the past, I’ve seen really problematic behavior with membership site caching. I’m already using SmushIt, and I have seen problems using Autooptimize with BeaverBuilder in the past, similar to this issue: http://forum.wpbeaverbuilder.com/support/q/page-builder-is-non-functional/. I am planning to set up a CDN, however, the images I posted up thread show specifically time to first byte delays from processing the BeaverBuilder php, which obviously a CDN would not impact.
What I’m trying to figure out here is if there are specific things in BeaverBuilder that might be causing a 2 second page generation time (as an example, if my pages are complex in a specific way or using specific modules) that I could change to improve performance. I’m testing two mirrors of a site, one on a shared BlueHost and one on a development VPS (that I just upgraded to try to increase performance). For example, it looks like calls to get_nodes, get_child_nodes, and _merge_mods are particular heavy in my site design (see pic above).
Can you provide temp admin access to your site, so we can take a closer look, please?
Interesting! Autoptimize is no longer listed on the known-conflicts page. Does this mean previous conflicts have been fixed now? I’m installing on my test server to see.
OK, playing around with different optimizations for BeaverBuilder and MemberPress, I can definitely see some changes I can make to optimize performance some. (In some cases, stripping BeaverBuilder code down to plain HTML/CSS for heavily-called code like a sidebar widget, or code with a lot of logic in it, such as nested modules.) It’s kind of a bummer, but I think I can tune it so that I don’t have to stop using it completely.
For what it’s worth, for the plain website, I was able to tune it/cache it so that it is just fine-- it’s the uncacheable membership site that I’m still struggling with a bit. Heavy BB code + heavy MP code + bbPress + buddypress = heavy site in need of optimization. If you take a look at it and see any other changes I could make to increase performance a bit, let me know. (The test site is a little hacked up right now, since I spent the afternoon turning plugins on and off and chopping up BeaverBuilder-generated code to try to get a bit more performance out of it.)
As a side note, one thing I’d love to see (on both BB and MP sites, honestly) is a few blog posts about how to optimize the system. You guys have SO much great info in the support forum, and not as much in knowledge base/blog posts.
Rather than making it so you have to do any optimizations, I’d prefer to get those calls optimized so you don’t have to do anything. It should just work if you know what I mean.
We’ve already done some optimization on the querying of global rows/modules based on another thread. I’ve filed a ticket to look into this one as well.
Thanks for the feedback!
You guys are awesome, thanks!
I think I have at least one gratuitous use of a global row that I could easily eliminate if that will speed it up a bit.