We have created a common platform that all our WordPress plugins use which shares segments of code to reduce database lookups and calculations.
This in turn increases the website speed, reduces bandwidth expenses and increases the user experience.
This page will explain the concept and how we are using the platform including the problems of individual plugins as well as examples of how the platform is helping.
Over the years of creating bespoke products and WordPress plugins, we have seen for ourselves how plugins from many sources slow down websites or break them with incompatibility.
It is not uncommon for a WordPress website to have more than 20 plugins installed, it is after all the whole idea of plugins. Find one that you need and install it, job done!
But, when all these plugins need access to the WordPress database before performing their tasks it can slow down the website considerably.
A large percentage of WordPress plugins will at some point or another request information from the website's database. To show how this can add time to your page load I will perform one my basic school maths:
Lets say there are 20 plugins that request 3 times from the database before the page loads.
For this example I will say a request takes 0.05 of a second - obviously, there are other factors to how long a database request will take, so got this number from a few tests on this site.
20 x 3 x 0.03 = 1.8 seconds!
Many of these database requests are exactly the same too, but just from different plugins.
If you have done any reading on SEO - search engine optimization - in the past you will have most likely come across Google highlighting how important a fast website is.
In the past having a fast website made complete sense, give the visitor/customer the content/product as quickly as possible so they have less obstructions to buy your product.
But now, the importance of a fast website has other benefits. Google - and other search engines - want to provide the best search results, with websites that are fast and are of good quality. So much so having a fast website is a Ranking Factor.
That's right, a fast website can help your website rank better in Google.
So we have explained the problem, now the fun bit, the solution!
After seeing these figures for ourselves we decided to do something about it by making sure at least our WordPress plugins are as fast as they could be.
We thought if more than one of our plugins performed the same task, whether a database request - or any of the other multiple commands you can perform - we would share the data between the plugins.
We designed our plugins to share variables, arrays, lookups etc and pass the results from plugin to plugin.
The results were fantastic!
If you have a little browse through our WordPress Plugin shop you will notice that many of our plugins are in the same space. Meaning if our customers like one of our plugins the chances are they will most likely need and benefit from other plugins that we have created.
This isn't by chance, we purposefully designed and created plugins that would work particularly well with each other therefore helping us make a strong robust platform.
Below we have created a few favourite plugin pairings that work extremely well with each other, but, before you find out about those I wanted to showcase how the platform works for two of our plugins, so you can get an idea how they all talk to each other.
Exchange Rate Product Price Updates (ERPPU) and Monitor Woocommerce Product Updates (MWPU) are two of our plugins that both share lots of data.
ERPPU updates product prices depending on the purchasing country's exchange rate. If it costs $1 less to buy the product after a rate change, then the sale price will change automatically too. This ensures the online shop has the best possible price for the customer.
MWPU however monitors when the price of a product - among other fields - has changed. This allows a historical log of price changes and who changed them.
If ERPPU changes the price then it makes sense to update MWPU at the same time, therefore, saving MWPU from a job.