Home » support

Tag: support

Using WordPress the wrong way

I have been using WordPress the wrong way, and I have just realized it. 

I often wondered why anyone would want a website built with WebFlow or with SquareSpace when WordPress gives you the power to customize everything you want.

The answer is so simple and evident that it is a little embarrassing that I have not seen it before.

Most people don’t want that power. 

Most people want a website that will help them get closer to their business or personal goals. And if you are not a web developer, those goals do not include customizing every aspect of your site. 

I have watched a video presentation with a project hand-over where the client could only add new items on their site: new beer flavors. I am looking at this, and I am thinking: “wow, that customer is powerless. He is so limited in what he can do with the site. For every little change, he will need to hire the developer again.” 

But I was wrong. The client was not into doing minor changes on the site. He wanted a professional website that he could be proud of, and he only wanted to add more beer flavors. Being so limited in what he could do also meant there was no way he could make a mistake or break the site. He could relax into doing what was important to him. 

When delivering a website built in WordPress, it may not be a good idea to hand over the admin account. The administrator account can feel overwhelming with all the buttons available, and it is also very easy to break the site. 

What you should do instead is to create custom post types, custom fields, and custom capabilities and then set up an account that can only work with those and hand over only that account. This way, the client cannot break the site, and they can only customize and update the items they need to. 

Of course, you have to discuss a maintenance plan for the cases where admin access is needed, but that is a different discussion.

Would you be offended not to have administrative access to your site? Or would you be relieved? 

If you had to charge ten times as much

This is such an interesting question because it asks for ten times, not twice as much. 

Asking for twice as much can trap you into thinking: 

  • I will work twice as hard! 
  • I will double the quantity of whatever I am offering! 
  • I will simply increase my prices, lose a few customers but keep the premium ones. 

None of those strategies really work when you need to charge ten times as much. Something else needs to change.

I have not found the “right answer” to this one, just yet.

But somethings are obvious:

I cannot work ten times more hours or put in ten times the effort. With 24 hours on any given day, that is simple, not possible. 

Ten times the quantity may also not be possible, not to mention that the customer may not be interested in that much more quantity. 

So what can it be? 

On the same airplane, different people pay different prices. And yes, you can find a ten times difference in tickets. The same plane does not fly farther, does not fly faster, and does not land in a luxury airport for those who pay a premium. So what exactly do they pay for? 

In the software industry, given the same project specs, you can hire developers on a wide range of prices. The specs don’t change, so the end result should be the same, so why the different prices? Why is a developer more expensive than the other. And why would a customer choose to pay for someone who charges ten times the lowest price on the offer? 

A possible, but lazy answer is status. If you care that a “Google Developer” worked on your project, you will pay to be able to say that, even though a “less famous” developer may have done the job. Beyond status, this can be a marketing signal as well. When you sell this service, it may be worth it to your customers to know that a “famous” developer worked on it if that signals quality.

Trust may be a better answer. I don’t think you can trust someone “ten times more” than another person. Still, you do have a definite feeling that you can trust person A but not trust person B. 

And if trust is essential to my business, then person A can successfully charge ten times more than person B. What is the value-added to justify this increase? In the moment, probably none. But in an environment of clickbait and shady practices, person A has spent valuable time, resources, and emotional labor to prove trustworthy. Their reputation is their asset that you pay for. 

Going higher on the “better” scale, you may have to change the people you serve. If you are a high precision car mechanic, that will not matter if all your customers want from you is to fix their headlights. You may be fast at it, you may be precise, but it will not matter. You will not be able to ask ten times more for your services in that crowd. You need to find a different crowd, likely a smaller crowd, looking for that particular skill. To them, it will make sense to pay you ten times more, because the value they get out of your work is twenty times more. For them, you will still be a bargain.

On the same level with “change the people you are serving” can be “change your story.” In fact, the two go hand in hand and influence each other. If you sell a commodity, you have no choice but to join the race to the bottom. The alternative is to trade in emotions. To transform fear into belonging. For that, you need a story. You need to stand for something. To serve people at the edge, that everyone else has overlooked. 

For “regular” people, water is free. For someone stranded in the desert, water is priceless. A way to charge ten times more is to find people who are thirsty and then create the product or service that will satisfy their needs. 

Charging ten times as much is scary because it usually means you need to change and sometimes in dramatic ways. Letting go of the old clients is not easy. Letting go of the old product or service feels frightening. What if you are wrong? And we arrive at risk. Those who play it safe always find themselves in a crowded place. Setting out to sell water in the desert does not mean you will also find someone there. 

How about you? What would you change if you had to charge ten times more? 

Still not using Log Files in your app?

Have you ever had to contact support for a web app or a plugin to fix a problem, and the first thing they ask is for full access to your web server so they can “debug” the issue? 

This request frustrates me to no end. 

It is unprofessional, and it is lazy. 

The reason support asks for this is so they can run tests and inspect the results on your LIVE server. If that makes you nervous, it should! How can you know that they will not accidentally mess with your customers’ data? Not to mention all the privacy issues that crop up as soon as you hand your keys to a third party with no control. 

A proper way to deal with providing support for your app or your plugin is to add logs—a log file journals the activity and the data passing through your code. Inspecting a good log file will almost always let you know what the problem is and where the problem is. When a customer calls you for support, you only need to ask for the log files, not the keys to the server. 

In my experience, a good log file creates a breadcrumb trail that documents the data flow and the branching decisions in your code. Ideally, inspecting the log file alongside your code allows you to precisely follow along and determine what was wrong, without even having to run any code. 

A common mistake is to be unnecessarily verbose while at the same time not documenting the branching decisions. Silently discarded errors and exceptions are the usual pitfalls, and close second are if/else branches where only one of them leaves in a mark in the log. 

Security and Privacy

Now that you understand why log files are a must, especially in a client-server situation (like all the web applications), you need to be careful not to store sensitive data into the log file. Don’t store passwords or credit card numbers, and unless absolutely necessary, do not store emails. 

If sensitive data is required for you to be able to rebuild the data flow, make that available under a specific “log level” that is only activated on request. And in some cases, the entire log system can be activated only when trying to debug a problem. With this approach, however, you lose historical data that you need to fix the problem.

Always provide a way for an admin to flush the logs. 

Rolling Over

I am an overly enthusiastic user of log files. Simply because they work, and they speed up the process of solving problems. But there is a mistake that I kept doing for far too long. That mistake was no automatic rolling of the log files. What that meant is that the logs grew and grew until they would eat up all the allocated disk space. 

Oopsy! 

When using log files, decide when a log entry is too old and have an automated mechanism to remove those logs. Rolling the log files once a month (log1, log2, log3, etc.) and removing the very old files is a useful approach. 

If you don’t currently use log files, what is your strategy to support and debug your application while it is running on the customer’s LIVE server? I hope you will not say: “get root access and hack away until I find the bug” 🙂

The Importance of the Value Conversation

All too often, when a person contacts you for a job, you’re eager to say yes and get started! 

I now know that this is backward. 

Instead of being eager to get started, the first step should be to determine if you and the potential new client are a good fit. 

They have money to spend, and you need the work, so you are a perfect match, right? Well, not so fast! 

Here is what is going to happen if you and your client are not a good fit:

– communication will not be clear

– because of communication issues, the scope of the project will not be clear

– because the scope will not be clear what you will deliver will be all over the place

– customer will not be happy, will ask for endless changes

– you realize that what you get paid does not even cover the costs to have this project delivered

– you will be resentful and being to doubt your career choice

Sounds familiar?

At the beginning of a transaction, the only power you have is to say “NO,” so don’t give that up with a quick “YES.” 

Instead, try to dissuade this person from working with you. This way, you get out all of the objections from the start. 

Why did they call you specifically? Why didn’t they go to our competitors? Do they realize that you are likely the most expensive option they have? 

These questions will uncover some fascinating information that you wish you knew before you started the project. 

If they are still talking to you, they clearly value your expertise over your competitors, and they understand that you will not do cheap work. If they are not talking to you anymore, realize you were not a good fit, and you were able to determine this in minutes instead of months.

Now it is time to determine what kind of value you can create for your customer. 

The vital thing to notice here that I said “determine value,” and not “solution.” We are not thinking of solutions yet. And for me, this was a big aha moment. 

Unless you know what is valuable for your potential client, you will end up creating stuff that is mediocre in their eyes, or “OK” at best.

Another distinction to be made here is to understand that sometimes you will be talking with someone who will spend not their money, but their bosses money. And in that case, the question if their mind is: “will my boss approve of this and like me more or not?

Ask a lot of questions, take notes, and reflect back to them what you understood they value about what they want to achieve. 

Example: creating a website is not a “value goal.” Asking more profound questions, you may learn they have a product they want to promote and eventually sell. And today, there are ways to get into that without having to have a website. The solution you will end up offering will be very different than what they asked before. And you only know this because you asked about value first and only then you thought of solutions. 

But there is another less obvious benefit for having the value conversation. You will take notes, and you will agree to deliver on the value points discussed. So when you ship your project, they will be delighted with the result, or you will have to show them how the solution meets all the agreed-upon value points. And even if they “don’t like it” for whatever reason, if it delivers the value you agreed on, then you kept your promise, and now it’s time for them to keep theirs.

And a trustworthy business or one that delights gets referrals. Everybody wins! 

Credit where credit is due: These ideas are a shameless steal from Blair Enns – Win With Pitching. I sincerely believe that the more businesses adopt the value discussion midset, we will all be better off. We will charge more for our services, but the client will be happy to pay because they get the value they were looking for, and now that is crystal clear to them. 

I am ending with a quote from Seth Godin: 

“Yes, you will pay more, but you’ll get more than you paid for.”

The criteria I use when choosing a web hosting company

When choosing your web hosting company, it is useful to have your list of criteria well defined. 

You need to have this list before you start shopping around, or else you will be sold features you don’t need and, worse, missing business-critical ones. 

Below are my prioritized list and some notes. Keep in mind that as a developer, I prioritize flexibility over ease-of-use. 

  1. Enough disk space for what the website needs. When starting, 20GB+ will work.
  2. MySQL database – I don’t think there is any hosting without this, but make sure you have it.
  3. Speed – this usually translates into have SSD drives on the server.
  4. SSH access – I need this for automated backups and for the flexibility to add automatic maintenance script on the server. 
  5. Ability to send email – be careful with this; some hosting do give you this feature on paper, but it is not actually working because the email gets discarded on its way out, and there is no back reporting on it. If you have an online store and you need to send out order confirmations, lost email can be very frustrating to you and your customers. 
  6. cPanel access – I need this as a developer because I manage many websites, across many servers, and it is faster for me to work with a familiar piece of software. When cPanel is an option, I know I can set-up things quickly, and there are also plenty of diagnosing tools. Even if you are not a developer, you will likely hire one at some point, and it will be easier for them to help you with cPanel access. There is one more reason to have cPanel. And that is, you can quickly move to another hosting company, by simply exporting your cPanel data from the current hosting and importing it on the new one. Without this option, moving to a new hosting company can be troublesome and time costly. 
  7. Let’s Encrypt feature for automatic HTTPS – this important to have, or you will need to pay additional hundreds of dollars for it. 
  8. On-demand backups; You need to be able to do a full account backup at any time and do this for free. Backups are a form of insurance, don’t underestimate them. 
  9. Excellent support – this is close to the last option because if I have the ones above, I can usually sort out any issues by myself. But you may want this much higher on your list.
  10. Unlimited (or alt least 3) subdomains. Subdomains can be used for testing something out of sight from the main website. They can be used for multi-language websites. For memberships set-up. And in advanced cases for performance reasons. So make sure you can have some.
  11. And finally, there is price. I’ve learned my lesson well: cheap web hosting will cost you more in the long run, in lost business, frustration, and customer satisfaction.

If you plan to use a WordPress site, the hosting I am recommending right now is SiteGround. It meets my criteria as a developer, but it is also friendly enough to recommend it to non-developers, because of their fantastic support. 

Contact forms done right!

What is worse than nobody contacting you for business? It is having to deal with a lot of Spam. Spam takes away from your attention, and it can potentially drown a valid contact request or a genuine request for support. 

I will be talking here about WordPress and specific plugins, but the general principles apply to other technologies as well. 

The contact form is an essential part of your business. You can get both feedback about how you are doing, but also it is a way for customers to quickly reach out to you, or for leads to ask presale questions. 

The easiest way to get a contact form in WordPress is to use Contact Form 7

But just installing and activating the plugin is not enough. There are two extra steps that I suggest you do:

First: get rid of SPAM. 

Yes, I know, in the first few weeks or months there will be no problems, but as soon as a script bot discovers you it will send a ton of Spam, and that will also affect your server reputation and your ability to send out email. Don’t wait for that to happen. 

To get rid of Spam activate and configure the CAPTCHA test. The one from Google works best, and I choose it most of the times. (If privacy is a big concern from you, I don’t know if Google can be trusted, so shop around!)

Second: Safeguard against email failure.

The way a simple contact form usually works is to accept the submitted message and then email you (the website owner) with the contact message. 

This way used to work well, but with the ever-increasing Spam problem, there is a chance that the contact email will never reach you. When and if this happens, you will never know. Unless…

Unless you also save the messages on the server where you can review them later. For this, I use the companion plugin Flamingo. Aside from making sure you don’t lose your messages, this collection of data can become a treasure when it comes to customer research: most common questions asked, or problems in interacting with your products and so on.

Bonus: Integrate with an auto-responder.

When you begin to get more messages than you can quickly respond to, a nice touch is to use an auto-responder to provide some quick tips or to reassure your visitors that you will get back to them as soon as you can.

When you do use Flamingo or an auto-responder, make sure you update your privacy policy to inform your users about that and be GDPR compliant.

A look into the (not so distant) future.  

Soon contact forms will be replaced with virtual agents/assistants. This is already happening, and it will be a game-changer — more about AI in a different article.

The Challenges of an WordPress Online Store

Having an online store is a good idea. It allows you to make revenue from your website and your offering. That is obvious.

What is not so obvious is that some challenges come with it :).

I believe in being prepared! So, if you’re looking to start an online store, or to improve the one you already have, read on!

This article will focus mostly on WordPress powered websites and add some general principles as well.

Shopping cart or no shopping cart?

It depends. I much prefer the experience of a one-click purchase. And in some cases that is precisely what you want to offer to your customers. When you have a lot of products in your offer, and it makes sense for people to buy more than one product at a time (like three books for example), then you need to use a shopping cart. For WordPress, I recommend WooCommerce, and some custom work on top of that to make it more user-friendly.

Coupon or no coupon?

Coupons are an excellent way to reward loyalty and to get attention for your promotion. A one-click experience does not lend itself well to using a coupon. There are other tools in this case, like custom links. But a shopping cart (like WooCommerce) can easily use coupons. Just make it obvious where to expect a coupon code. The default user interface is sometimes confusing for people.

Guest checkout?

In most shopping experiences, you are required to create an account before you can place an order. And there is a good reason for that. It allows for later access to your purchase history and the downloadable files you may have lost.

But sometimes creating an account can be seen as too complicated and unnecessary. I prefer this method of purchase. If guest checkout is essential for you, make sure the tool you are using allows for it. Again I have to recommend WooCommerce as they provide for this feature.

Keep the conversation going

Depending on the kind of business that you have and your offer, it may be a good idea to keep the conversation going with your customers or to hold their hand as they discover your product. To allow them to grow by making a more advanced offer, and, why not, to learn from them. The tools to use in this case is WooCommerce integrated with MailChimp. I am personally not happy with what is on the market today, so I have had to create my own plugin that would add specific tags for specific products. This approach allows me to segment the audience or to trigger campaigns based on the product that was purchased.

Also beware, that for bigger stores, the official MailChimp plugin does not work anymore as you would expect. There are a lot of timeouts and missed notifications. Especially true for when you have a significant influx of orders (for example you’ve just sent an email blast to your audience).

Provide support

Providing support should be common sense, but not everyone is doing this right. Your customers need a reliable way to ask for assistance.

I used to think that this would be too much work. But in fact, it is an excellent way to learn about your audience, what they need, what they like, and what is broken with your sales or delivery process. Do not ignore the support requests :). The “Contact Form 7” is an excellent plugin to use for this.

The Refund Policy

Buying things online is risky. Your order customers trust you, but the new ones don’t know you. To me, it makes total sense to make it risk-free for them and offer a full refund policy. Yes, some will abuse it. But for every abuser, there will be more people who end up trusting you more and making the purchase. The refund policy is also a strong statement of confidence in your products or services. Yes, they are that good!

And I agree, in some cases, a partial refund makes more sense. And in others, it is OK to offer no refund if the customer had plenty of chance to change their mind and did not. Like selling tickets for an event, and someone wanting to cancel the day before. In these cases, you have to make it crystal clear in the purchase process what the refund policy is and when it expires.

International clients

I still struggle with this one.

You may discover that you have a big audience in a country that speaks a different language. Say, French. You invest in the resources and process to translate your products and sales process into French to help your audience get to our product. But what you also need to be careful about is providing support in the same language. If the product is in French, and the purchase process is in French, the support cannot be in English. To me, that would not feel genuine. Like you did not go all the way with your offer, and you stopped right after the sale.

If I cannot offer support in French, I prefer to keep the sales process in English. This way, those who buy the French product will know that that is the only French part about it, just the product itself. But the shopping experience and support will have to be in English.

As I’ve said, I still struggle with this, and I cannot say I have found a solution that I am delighted with. As tools, for WordPress, I am using the PolyLang plugin.

The Mobile Screen Experience

Have a look at your analytics data, and you will likely notice that the mobile users are a big chunk, if not the most significant piece of your audience. Your store needs to be mobile-friendly. And again, I have to recommend WooCommerce here, but with some custom work to make it even more usable on the small screens.

Order fulfillment

Don’t forget about the second half of the shopping experience. Don’t stop at just getting paid :). Make sure your customers can get to their files.

You may have to use different tools for different products. Small files can be sent as attachments. For videos, you may be better of emailing links to a platform where the video is hosted (YouTube, Vimeo, Wistia). And for huge files, there are yet other tools to help, like Amazon S3 services.

Use this information to decide what kind of shopping experience you want to create and what tools you should use. And if you struggle with some challenges that I didn’t write about, let me know in the comments below.