If there's one skill that I've improved on greatly over the years is troubleshooting website issues. Not by choice, but by a requirement. There's no site in the world that isn't going to have issues at some point in time.
As a WordPress theme developer, it plays a big role as well. It's essentially the software, right? And you can't expect the first version of anything to be 100% bug-free. Or to be 100% bug-free forever.
Issues might arise in a wide variety of ways.
- Browser or OS specific.
- It could be a conflict between WordPress plugins.
- It could be a library is updated and old code breaks.
- Back-end or Front-end
Nothing is static! The web is always changing and it's not a matter of *if*, but *when* something needs bug fixing.
First identify what's broken, of course.
Then try to identify and define what could be affecting your issue. But that might be reliant on experience. For example, the other day I had a client asking if a particular plugin would help the site speed if we removed it; he wasn't using it. But the scope of the plugin was only in the admin.
Still said we should delete it though. 😉
As silly as it sounds. Break it.
Now, take note, this is not something you do in a live environment (unless it's low impact). haha
This is instead something you do in a staging or local development environment.
But what you want to do is literally remove ‘stuff'. That can be an entire file, an HTML section, a plugin, a script.. almost anything.
One of the first things to try is to remove a plugin. Anyone can do this. If I have a customer coming in and they are having issues with a Hexater theme, I'll ask if they tried deactivating their plugins (or if they recently installed a plugin before they started seeing the issue).
As a side note, the nice thing about WordPress is you can deactivate plugins and it'll list them under ‘Recently Active'. It's easy to reactivate them!
So you can deactivate plugins you think are most likely to affect this issue.
But go all out! Deactivate ALL of them and see if that fixed the issue.
It didn't? Reactivate them.
It did!! Congrats! Now slowly reactivate the plugins until your problem reappears. Maybe a couple at a time.
WARNING: In some instances deactivating a plugin can break your entire site — eg, throw a global PHP error. This can happen if a developer has hooked or used a function inside the theme that calls a particular plugin function or class. It won't find it and .. you're done.
Depending on how your theme was developed and whose hands it's touched, you'll be able to determine the risk. If you are using something like WooCommerce, this would be more common.
Always be prepared with a backup. And, again, ideally perform this testing on a staging site (not live!).
This does require FTP access and a little development experience, but breaking the code is a similar process.
You can cut out any amount of code or HTML in a theme template, save and see if it fixes an issue.
All these things can help you sniff out what the issue was by revealing it through the process of elimination.
Yep.. guess what, sometimes the problem is the theme. You'll quickly find out if you switch to a default theme. I can't tell you how many times I was able to start zeroing in on an issue just by this exercise.
It rules out that the theme developers didn't do something that's causing an issue.
OR.. it could lead to finding out a plugin isn't playing nice with your theme.
The Process of Elimination Works!
It works in so many situations.
As one last example, a few weeks back I learned that a particular plugin was adding a couple of thousand DOM items and having a huge impact on that page's speed' (at least 5 or 10 points) by removing code in the template.
I removed all of it… speed improved.
I re-added half of it.. speed has still improved.
And then, I re-added the code that added all those DOM items and speed crashed.
I went back to the client and we now enjoy a new plugin (it was embedded as a shortcode) that's way lighter and gives them the same benefits.
So, break it! You never know what you'll uncover!