WordPress is a hostile environment. After several years of developing plugins for this platform, I have no doubt about this. If you don’t follow the development guidelines and skip the good practices, you’ll make a mess. But worst of all, even if you’re careful and do things right, there are a lot of problems out there that can affect the quality of your product. And most of them, in an open source environment like WordPress is, are out of your control. Welcome to the web development world!
Are we getting older and like to look back on the past? It’s possible. But I hope these posts will help you and other developers to avoid making the same mistakes. That’s the reason we share our experience. And, trust me, what I’m about to tell you today is pretty interesting too.
Customer Support: A Daily Challenge
One of the most important aspects of a business like ours (small team selling WordPress plugins) is the support you provide to your users. This is where you really gamble it all. If you’re not able to help someone who pays for using your WordPress plugins, it won’t be long before they abandon you and run away to fall into the arms of your competition (which will likely have more resources than you do). So keep in mind that every support ticket is a business opportunity and don’t screw it up!
Thanks to support you can win those users/clients who have a problem by helping them as they deserve and solving the conflicts they may have with your product quickly and effectively. But it’s not always possible. Allow me to illustrate it with a recent example….
A few days ago we received a support ticket from a customer explaining that she had problems with Nelio Content. If you don’t know it yet, this plugin allows you to share content from your WordPress site in the most popular social networks. The ticket went as follows: when content was shared on some networks, such as Facebook or LinkedIn, the message displayed on those networks did not show the featured image of the content. Therefore, the result ended up being something like this:
We had faced this specific problem on other occasions. Usually, this occurs when the client’s website does not correctly define the Open Graph metadata (Ruth wrote a post about it a while back). Given our past experience, this was the first thing we checked… but all meta tags were there. What was wrong?
When sharing content on Facebook, Nelio Content, like other similar tools, only shares the URL of said content—that is, it’s Facebook who accesses the URL and tries to extract the title, description, and featured image out of it. In the case of our client, both the title and the description were correct, and only the image failed.
After much research, it turned out that the cause of the problem was a server module that was activated in certain requests and returned a different URL for the images. Apparently, this module served a reduced and optimized version of the image that improved the loading of the web… Unfortunately, the server wasn’t properly configured and alternative URLs of your images were only served occasionally. And, even worst, they resulted in a 404 error!
How Far Can I/Should I Help You?
In a case like the one described above, helping to solve the problem involves managing, monitoring, and administering the client’s hosting in order to avoid incorrect configurations that affect the behavior of your plugin. And also of external services that access your website, such as Facebook or LinkedIn. This is what requires the typical maintenance contract that any web developer will offer you to ensure that your web remains alive and updated over time. At the cost of a monthly fee, of course. But this isn’t our business.
The problem here is how to explain the situation to the customer. Why you can’t help them. On such technical issues, the client doesn’t care if the problem occurs because the server is configured incorrectly—after all, it’s your plugin that’s not sharing content well on social networks. That’s what happens to them and you’re not fixing it. Even if you explain it in detail, this is often the case.
But your plugin works perfectly! It passes the proper URL to social networks. And these are the ones that can not access your website correctly and extract the appropriate data to show it on their platform. But this is not true either, as social networks access this information accurately. The problem is that such information is incorrect. And the cause is your customer’s server, which isn’t properly configured and returns invalid URLs from time to time. So who’s to blame? Is there really anyone? 🤔 Truth is, it doesn’t really matter.
When such a problem occurs, what really matters is your customer—they don’t know what’s happening, they just want the issue gone. If you don’t help them, they’ll get a bad impression of both your product and your support service, and you may lose them. But if you agree to go in and try to fix his problem, if you provide support outside your area of responsibility, your business might suffer.
How many times have we had to fix problems in WordPress sites of clients that were apparently caused by our plugins but were not? More than we’d like to say.
In situations like this, as in everything else, sincerity is essential. We always try to help in everything we can, explaining the technical details as well, without hiding anything. If we are guilty of something, we assume it. We’re not perfect and we don’t intend to be. Our code has errors, like everybody else’s. So when we fail, there’s nothing left but to apologize and fix it.
But it’s also important to set limits on the support service you provide. If the problem is caused by a third-party plugin, we contact the developer directly and advise the client to do the same (the higher pressure, the higher the chances of receiving a response). But if what happens is out of reach, unfortunately there’s little we can do.
As I said at the beginning, WordPress is a hostile environment. As a business, we don’t have the resources to defend ourselves against plugins of dubious quality or incorrect server configurations. The number of different variables that can affect the correct performance of a WordPress plugin is so big that being resilient to all this is almost impossible.
So, even if it sounds like resignation, we do what we can. Sometimes even more. But this is not very comforting, since many times we are left with somewhat bitter feelings because of how everything works and not being able to help more. How many users have we lost over the years due to problems beyond our control? Better not think about it 😫. The life of the web developer is hard 😅.
What can we do to improve the situation? Will there be a day when all you have to worry about is your code? Where are the limits of the support we provide to our customers? What do you do when your plugin doesn’t work, but the cause of the problem is beyond your responsibility? None of these questions has an easy answer, but I would love to know your opinion. How do you manage support for your users? Leave a comment below 😉.