Two children walking down a path

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!

If you’re a regular reader of this website, you may already know some of our battles. Like that time when another plugin broke our style. Or when I had to work wonders until I found a third-party JavaScript breaking the installation of a client that had one of our plugins installed. And there are many more stories, believe me—but not everything can be explained publicly! ?

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….

Sometimes you have to investigate some pretty freakish problems.
Sometimes you have to investigate some pretty freakish problems.

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:

Message on Facebook with correct information but whose image returns a 404 error and therefore does not appear.
Message on Facebook with correct information but whose image returns a 404 error and therefore does not appear.

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 FacebookNelio 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.

Making your clients understand that you are not guilty of what happens to them can be complicated.
Making your clients understand that you are not guilty of what happens to them can be complicated.

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.

Sometimes you will receive support tickets that have nothing to do with your services.
Sometimes you will receive support tickets that have nothing to do with your services.

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.

Final Thoughts

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 ?.

The life of the WordPress plugin developer is hard.
The life of the WordPress plugin 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 ?.

Featured image by Annie Spratt via Unsplash.

4 responses to “The Limits of the Support You Provide for Your WordPress Plugins”

  1. Collins Agbonghama Avatar

    As a WordPress plugin author myself, I can totally relate with all what you said Antonio. We’ve even had customers who black mail us in the free plugin repository with a one-star rating and will only make it 5 star if we solve the problem they are having which in most cases is caused by another plugin and are unwilling to ever upgrade to PRO to get email support.

    Weird WordPress world we live in.

    1. Antonio Villegas Avatar

      Thanks for the comment, Collins. With respect to the one-star rating, it’s more common than we think…

  2. Katie Keith Avatar

    Some really interesting points. You’re right that any plugin business will receive support requests unrelated to their plugin. The trick is to respond positively without becoming a martyr and making your business unsustainable. Too many customers are abrupt and defensive about stop support in an effort to protect themselves – but as you say, the customer doesn’t know that the problem isn’t caused by your plugin, as all they can see is that it’s not working on their site!

    But at the same time, when you discover that the problem is outside of your plugin, you need to helpfully and positively point them in the right direction. Personally I think you go above and beyond on actually contacting third party developers, I usually just leave that to the customer!

    The final point is that sometimes, it’s not anyone’s fault because the two pieces of software simply weren’t designed to work together, eg. People might want to display content from a third party plugin in our WooCommerce Product Table plugin, when this isn’t a feature we have developed, would be a lot of work, and isn’t something we have prioritized because no one else has requested it. Where this happens, neither developer is obliged to make the two plugins work together. We always suggest possible workarounds, but sometimes there’s no reasonable solution. I agree that every support request is a business opportunity – but as with any business opportunity, you need to be prepared to say when something’s not possible when the most profitable outcome is to provide a refund rather than a fix. And in most cases, the customer is willing to live with the limitation and keeps using our plugin!

    1. Antonio Villegas Avatar

      Thanks for sharing your opinion, Katie. We try to contact other developers when some problems arise because we’d like to be contacted if our plugin breaks others (not the case ?). Sometimes that’s impossible because the developers do not have a contact form or a public email. So we do not lose a lot of time contacting them.

      That’s true, sometimes two pieces of software are not designed to work together. We do the same here: propose workarounds or even issue a refund when there is no more to do. As you say, that’s all we can do.

Leave a Reply

Your email address will not be published. Required fields are marked *

I have read and agree to the Nelio Software Privacy Policy

Your personal data will be located on SiteGround and will be treated by Nelio Software with the sole purpose of publishing this comment here. The legitimation is carried out through your express consent. Contact us to access, rectify, limit, or delete your data.