We’re sure that when you read the title of this post you’ll think it’s sensationalist. The good folks at WeFoster HQ are going for the BuzzFeed titles now?! All performance related tips and tricks must be covered by now.. And if it really was such a big issue there must be hundreds of articles on the web about this..
Below is a breakdown of the symptoms, causes and cure for a serious WordPress condition we call:
Third Party Plugin Update Check Syndrome (TPPUCS™)
How do I know if my beloved WordPress Install is suffering from TPPUCS?!
Thanks for asking! To answer this question we brought in WeFoster CTO and WordPress Doctor, Bowe Frankema. He’s here to answer your burning questions about TPPUCS.
What is TPPUCS?
Third Party (Premium) Plugin Update Checks
The risk of a slow WP admin due to severe performance issues related to the (unnecessary) checking for updates of your (premium) third party plugins and themes.
Should I be worried, Dr. Bowe?
Let me explain who should be worried about this..
- If you are running one or multiple Premium plugins or themes.
- If you are occasionally dealing with SLOOOOOOOOOOW WordPress Admin page loads (Stage 1)
- If you are constantly dealing with slow WP Admin page loads. (Stage 2)
- If your WordPress Admin is not loading at all. (Stage 3).
When you recognize the above symptoms there is a high probability your installation is suffering from ThirdPartyPluginUpdateCheckSyndrome (TPPUCS™)
I never heard about this before.. I’m going to need some proof.
Sure thing! Here’s an example of an extreme case of TPPUCS (Stage 3) from one of our customers here at WeFoster.
So just to be clear, here’s what’s going on in the video.
- When WordPress Plugin Update Checks are enabled the WordPress Admin does not load.
- When Plugin Update Checks are disabled we get a two-second page load on a pretty heavy WooCommerce/WP installation. Sweet!
Now obviously our customer was not thrilled to see that the fastest WordPress Community Hosting on the planet (shameless link to our services, it’s our blog, we can do whatever we want!) can’t even load the WordPress Admin properly!
Sadly TPPUCS™ is completely unrelated to your host and it’s incredibly frustrating for our customers and our speed-obsessed CommunityCare team when we diagnose another community suffering from it.
So why is this happening? Can the entire WordPress Admin become unavailable by something completely outside of the control from your host?
The Cause of TPPUCS
TPPUCS is caused by a malfunction in the WordPress central nervous system called “Render Blocking HTTP GET Requests”.
In English Please, Doctor Bowe!
Every time WordPress needs to check for updates to a plugin or theme, a request is made to an external source (a website). Most commonly this website is the super reliable, always available WordPress.org. WP.org even checks for all available updates for all your plugins/themes in one single request so usually this external request is hardly noticeable since it’s so fast!
WP.org update checks cause a slightly slower page load every 12 hours (WordPress checks for core, plugin and theme updates just twice a day).
So what’s the problem then?
For third party (commercial) WordPress plugins and themes this update check procedure can quickly dissolve into something that can absolutely kill performance for your WordPress Admin area.
Here’s a breakdown of where things go haywire….
In order to understand why TPPUCS can become a very serious issue, we’ll have to understand where things fall apart.
The WordPress Plugin Update Checker makes an external “request” to see if there is an update available for your 3rd Party plugin. It’s a bit like how we simple humans use a browser. We type in “https://puppies.com” and as a response our browser shows you a cute little doggo.
The WordPress Update Checker makes an external GET request behind the scenes (for example to https://3rdpartypluginname/update-check.php) and then waits for that page to send back a response like “Yup, Update Available” or “NOPE, Got Nothing”.
Now the problem with the above method is that this happens for every. single. third-party. plugin you have installed. Every. single. time. WordPress checks for updates.
All of these update checks are blocking. Which means they don’t run at the same time but they each have to complete before the next one can start. So if you have 10 external plugin/theme checks running and it takes about 2 seconds for the external website to respond with a “YUP” or “NO” you’re looking at 20 seconds of update checks. And during that time your WordPress Admin page will not load.
And to make things worse.. if one of those external websites is down/unavailable you’ll end up with a WordPress admin page that takes ages to load or never does at all.
Your WordPress installation is now officially suffering from TPPUCS
Give it to me straight Doc, How bad is it?
There’s three stages of TPPUCS.
Stage 1: Occasional Symptoms of TPPUCS.
This is a mild case and simply inconvenient.. WordPress checks for updates once every 12 Hours and every time it does you’ll have to wait until all of the checks have completed. This is no biggie and your WordPress installation can live a happy and fulfilling life.
Stage 2: Constant TPPUCS leading to severe slowness.
This is what we see surprisingly often and can turn your lighting-fast admin into something that you absolutely dread spending any time in.
When your WordPress site is in Stage 2 you need to take action and figure out what is causing your WordPress installation to keep checking for updates over and over again. (spoiler alert: It’s probably related to a poorly coded plugin or theme!).
Stage 3: RIP WordPress Admin
It’s possible that your WordPress Admin could become completely unavailable simply because the update check never completes. The update checker keeps waiting and waiting but the 3rd party website never responds. Because the check never completes, at a certain point your PHP process will give up and show you a white page or error message. On the next page load WordPress will run the update check again. It will keep trying and trying without ever getting anywhere…
It’s like that cutie you met once at that party, who added you on Facebook but then never acknowledged your existence ever again.
(Note: During this point in the interview Dr. Bowe falls silent and stares through the nearby window for an awkward amount of time.)
There is hope – How to (temporarily) cure TPPUCS™
If you’ve read this far chances are that your WordPress installation is affected. So where do you go from here? Below we’ve outlined a couple of ways to speed up your admin considerably.
Recommended Method – Use a Plugin To Block Update Checks
There are a couple of plugins available that allow you to block outgoing HTTP requests in the WordPress admin. By doing this the third party plugin checks will be blocked and thus you won’t be suffering from TPPUCS anymore. This is our recommended solution; simply follow the steps below to implement this.
- Go to Plugins > Add New and Search for “Disable All WordPress Updates”
- Install and Activate this plugin
You should notice an immediate improvement in WordPress Admin loading time on the next page load after you’ve enabled this plugin. We especially recommend this plugin because it only blocks plugin update and theme checks but does not seem to affect any other functionality that might be crucial to your WordPress install.
As mentioned before there are other plugins available like “AirPlane Mode” but these plugins usually block ALL outgoing HTTP requests and could break functionality on your site.
Gotcha #1 – You will not be notified of plugin, theme and core updates if you use this method.
Perfect right? Almost! Because there is one very important thing you need to keep in mind:
We recommend that you disable the Disable Update Check plugin at least twice a week to let WordPress check for plugin/theme updates.
Additionally you should subscribe to the WordPress Updates blog so you’ll be notified of important security updates.
Are You A Premium Plugin/Theme Developer? Read this..
You might not be aware that your plugin could have such a drastic impact on the performance of your customer installs, but you are obliged to make sure that your update checks are performant and scalable. This could be as simple as caching the results of your update checks and spending just a couple of bucks a month on a proper hosting setup. We’re planning a follow-up article to further outline methods you can take as a developer to ensure that you’re not causing TPPUCS™ for your customers. Stay tuned!
Final Words – WordPress Really Needs to Address This In Core
We’d love to hear your thoughts and suggestions in the comments below!