Today, we will delve into how to debug WordPress performance issues and the tools and strategies to help you solve problems. Although each case like this is quite unique, the troubleshooting workflow usually remains the same. Hopefully, the next time you find yourself experiencing a performance problem with WordPress that is beyond your understanding or control, you can use it. The
WordPress performance list (when things happen)
this performance checklist is a little different. Instead of sharing how to speed up the WordPress site, it focuses on what to do the next time you find yourself in trouble. And there will be next time, you can count on it. Maybe your host has reached out and said that your site is overloading the server. Or you may have noticed that something is dragging down your site, such as the very popular admin-ajax.php request. Before raising your hands and announcing your exit,
should follow the following advice. There is an answer to everything, but sometimes it is difficult to find an answer.
- implementation performance monitoring
- leverages tools such as New Relic
- to take advantage of the test environment-for good reason
- invests in a better server
- WordPress maintenance service
- Don’t be afraid to ask developers questions
- you can always hire WP developer
1. Implement uptime and performance monitoring
when it comes to these types of issues, you are never fully prepared. One of the best things you can do to ensure that you know about site failures before visitors do is to implement uptime and performance monitoring.
uptime monitoring
in fact, thanks to New Relic Synthetics and APM, we can also monitor multiple different data points about WordPress sites when needed:
- end user load time
- application server load time
- error rate
- throughput
- success rate (uptime)
- Apdex score
Apdex score
which is related to uptime and performance monitoring.
sometimes, this may involve third-party developers, especially if the error code is the root cause. Or it may mean that you need to add PHP worker. Finally, it may be something that can be easily repaired.
We wish you success and providing a fast website for your visitors is always one of our top priorities. If we can find out that plug-in A caused your website to shut down, we want you to know. In general, we tend to see many performance problems caused by poor plug-in updates, poor code, or not supporting the latest version of PHP.
Uptime and performance monitoring tools
you can also use many third-party tools to remind you of uptime and performance. Here are some things you might want to see:
- Updown.io (uptime Monitoring)
- Pingdom (uptime and performance monitoring)
- Uptime Robot (uptime Monitoring)
- StatusCake (uptime and performance monitoring)
- ManageWP (uptime and performance Monitoring)
2. Take advantage of tools like New Relic (they are priceless)
tools like New Relic are not only ideal for monitoring uptime and performance, but also for solving performance problems. Or you can try using a free plug-in like Query Monitor. There are several areas in
New Relic that can help quickly narrow down performance problems. The first is the WordPress → plug-ins and themes tab. On the woorkup website I used as a case study today, I could immediately see that the problem I encountered was probably from the “gp-premium” plug-in I was running. But why? All right, we’ll do that.
New Relic plug-ins and theme
Note: the above sections in New Relic are not always 100% accurate. In this case, it is. But it’s always recommended to at least check there first.
so I have a good feeling or a hunch after seeing it that it is something in my “gp-premium” plug-in (which is an extension of my GeneratePress WordPress theme). Knowing this, I went to the transaction Transactions tab. We can immediately see that the number of admin-ajax.php transactions ranks first!
New Relic monitors admin-ajax.php problems
for those who do not have New Relic, be sure to check out our tutorial on how to diagnose high admin-ajax usage on WordPress sites. You can also see persistent admin-ajax requests in the WordPress log. The next step for
is to delve into admin-ajax.php transactions and look at the database queries that consume the most time. You can click the “Trace Details” or “Database queries” tab.
database query tracking
sometimes the query itself will indicate the problem, but in this case it is not. Something else, but immediately something stood out: the/gp-premium/
folder. Remember, from the above, we see that “gp-premium” should be the plug-in that caused the problem. In general, if you see it in both the plug-in / theme section and the tracking section, this is a good starting point.
...s/gp-premium/library/image-processing-queue/includes/wp-background-process.php
stack trace
the next step is to go to Google! Yes, in this case, Google can actually help a lot.
, so I searched “Image Processing Queue”. The first result returned is the Image Processing Queue plug-in for Delicious Brain. After reading the instructions, I can see that this is image processing for WordPress themes. In essence, the image size is quietly generated in the background using WP Queue.
Image Processing Queue
A quick search for the same term and “GeneratePress” causes their most recent update log to appear. Yes, I recently changed the image adjuster from Aqua Resizer to Image Processing Queue in GeneratePress. When I updated the theme, there were no other changes on my website. This is why the change log is so important! They can be like breadcrumbs for troubleshooting. The puzzling thing about
GP updating
is that I have other sites running GeneratePress that don’t have this problem. So while I may have a good understanding of what’s going on, I’m still not 100% sure. So the next step is to create my temporary environment to start debugging WordPress.
3. With the test site
, you can use plug-ins such as WP Staging to build the test environment without involving production. The first thing
does when the development site is up and running is to bulk disable all my plug-ins. I notice that many people tend to ignore this simple step. It’s almost like thinking that restarting the computer won’t solve the problem. The important thing for
is to always disable all plug-ins first. This is by far one of the easiest ways to narrow down the problem. Just go to the plug-in, select all plug-ins, and then select deactivate from the batch option.
disables all WordPress plug-ins
does this in New Relic, and the response time on my site immediately returns to normal. So I know this is a plug-in that causes problems. And since I’ve done some troubleshooting on it, I have a hunch that it’s still a “gp-premium” plug-in.
normal response time
so I re-enabled the “gp-premium” plug-in to verify that I could replicate the problem. Yes, the load time (network transaction time) rebounded immediately.
has a long response time again,
, so I can confirm that 100% is a plug-in. But what now? It doesn’t help to solve my problem. Well, since it seems to come from the image processing queue, the next hint is to check for CRON jobs and transients. Whenever you have any type of queue, be sure to check these areas. In fact, I always suggest checking them. Automatically loaded data is another common culprit.
recommends reading: how to fix WordPress Missed Schedule errors (2 ways).
transients are a simple form of WordPress caching with expiration times attached. To quickly check out my transients, I installed the free Transients Manager plug-in from Pippin Williamson. When it was launched again, there was something that immediately caught my attention: a transient project calledwp_image_processing_queue_process_lock
. ” In addition, it is set to expire after 1 minute, and new ones keep popping up.
transient
although the plug-in itself does have a way to remove transients, it doesn’t work. So it’s time to check the database. So I logged in to phpmyadmin. The transients are stored in thewp_options
table, so I did a quick query from the “Search” tab to find any rows that contain the name of this option.
SELECT * FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
turns out that 695846 lines use%wp_image_processing%
.
wp_image_processing
this is where the test environment comes in handy. Since there is no harm in breaking or testing something, I continue to manually delete all lines that contain it. I run the following query from the “SQL” tab to delete all lines that contain the name of this option:
DELETE FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
deletes the line
like magic, and after deleting the row, the response time of my site immediately returns to normal.
Note: if you are operating in a production environment, you need to back up the database first to avoid problems.
fixed WordPress performance issues
as I said earlier, this didn’t happen on other sites where I used GeneratePress. They also don’t have those extra temporary rows in the database. Maybe something was not deleted as expected when it was upgraded. So it looks like it’s not the developer’s fault, but it’s probably just a temporary cache corruption. This can happen to any plug-in or theme in
. In fact, GeneratePress is one of my favorite WordPress products of all time. Are you scared? Well, these are some of the joys of WordPress!
if you don’t understand any of the above, I strongly recommend that you review the following remaining steps when resolving such issues.
4. Investing in a more advanced host
, unlike what some people might make you believe, there is no architecture or host that can magically fix the error code. Small things such as bad plug-in updates, or in this case, broken transients, can bring WordPress to its knees! Excellent hosts should have automatic backup, staging environment, New Relic integration and so on. These features and tools help protect your site and resolve problems quickly.
WordPress support
recommends that you choose to use any host to ensure that their support team can provide timely and professional services!
, of course, infrastructure is really important in terms of performance, not buckling under load.
5. WordPress maintenance Service
in the past five years or so, a new type of company has emerged in the industry: WordPress maintenance service provider. These companies can take over all your tedious WordPress tasks in some cases. Here are just a few examples:
- Google search console setup
- Google Analytics Integration
- Weekly keyword ranking report + Analysis report
- Social Media Analytics Application
- phone + tablet Optimization
- plugin to develop
- unlimited editing (yes, some even do some small tasks, such as updating your logo, adding WooCommerce products, etc.)
Yes Many of them provide daily or weekly uptime and performance monitoring. Here are some WordPress maintenance companies you should check out.
SkyrocketWP
SkyrocketWP provides WordPress maintenance services, support, and hosting solutions designed to handle WordPress for people who want to grow their business.
SkyrocketWP
WP-Tonic
WP-Tonic provides real quality concierge support and maintenance services for busy business owners. No time to solve your WordPress problem? Let WP-Tonic handle it for you. They also run a popular podcast in which they interview WordPress business owners and developers to understand what is going on in the industry.
WP-Tonic
WP Buffs
WP Buffs offers WordPress care programs for serious website owners and white-label agent partners.
WP Buffs
6. Don’t be afraid to ask questions to developers
Don’t be afraid to ask developers questions after determining the causes that may cause WordPress performance problems! In many cases, developers are very happy to help, in fact, they want to know what’s going on in the event of a failure so that they can launch fixes for everyone.
I contacted Tom, a developer at GeneratePress, and he responded as usual. We throw this problem to the problem of destroying the transient, but as you can see, he will actually switch their image queuing method (partly because of this). Therefore, your feedback as a user can definitely help developers make higher-level decisions about what is best to implement or change in their plug-ins or themes.
response from WordPress developers
we also have plans to launch a special question and answer area for WordPress, please look forward to it!
7. You can hire WordPress developers at any time
if the worst happens, you can always hire WordPress developers to solve your problem. Maybe you find that the plug-in you use does have some bad code, and the creator can’t or won’t fix it. The difficulty in hiring developers for
is how to find people who have a good reputation and are good at their work.
strongly recommends Codeable, whose developers are pre-screened before being allowed to join the service, and Codeable employees personally review the resumes of the technical staff. They have more than 25000 clients, but only 300 WordPress experts. Only 2% of applicants are accepted. They only want the best, as customers, which in turn can save you a lot of time and frustration. The WordPress developer position at
Codeable is
. They are committed to providing WordPress outsourced services and are completely focused on matching talented developers with customers.
other resources
has written some additional resources to help you solve some WordPress debugging performance problems:
- uses New Relic to find WordPress performance bottlenecks
- uses query Monitor
- to eliminate blocked rendering JavaScript and CSS
- how to repair browser cache warning
- how to fix 500internal server errors
- how to fix 504 gateway timeout errors
- how to fix 502 errors Wrong gateway error
summary
whether you are proficient in technology or not When it comes to solving WordPress performance issues, there are always solutions available. The first obvious advice is to prepare yourself for success by choosing a managed service provider that has not only a rock-solid infrastructure but also a world-class support team. The last thing you want is for your WordPress site to go down or run fast, because you don’t know what steps to take next.
takes advantage of tools such as New Relic, which can save you time when debugging problems. In the final analysis, it is also a good idea to turn to a large number of talented WordPress developers in the community, even to hire one directly (if conditional).