Home » wordpress

Tag: wordpress

Quick SEO Setup for your WordPress website

SEO is a large and complicated subject. And it can feel challenging and overwhelming to get everything right.

However, it is essential to get it right because it affects the “first” impression that your potential customers have when they are about to click a link on Google or Facebook that sends them to you. Not to mention the amount of organic traffic that you will get.

The easiest way I know to add this to your WordPress site in a technically correct way, but a breeze to configure, is to use the YOAST SEO plugin.

I am not associated with them in any way, but I do recommend them as I used them on all my WordPress websites.

After the initial plugin install, it will guide you through a configuration wizard. You will answer simple questions, and in the end, everything is configured for you.

Every time you write a new post, or create a new page, take some time to inspect the Yoast block as it will have recommendations about how to improve your SEO for that particular content.

What I like most is the super-easy way to control the image and description that social media platforms will use with links to my websites. It takes the guesswork out of it, and you can even add different images for different platforms if that is important to you.

Subscribing to their free newsletter is another good way to get free SEO training and reminders to keep your website in shape.

Using WordPress as a Prototyping tool

Creating a prototype for your product or service is an excellent idea. It allows you to do some research before you commit to a specific solution. You can test various layouts, various interactions, and you also have something to show to your investors or your target audience to check with them if this is something they would spend money to buy. And the cheaper the prototyping, the more tests you can do, and the more information you will have when you want to build the real product or service. 

A prototype has only very basic functionality, and it is used to get an idea of what the user interaction will be like and what possible challenges may show up in future development. Because it is so simplistic, you can choose any technology you want to create your prototype. It does not have to be the same tech you will use for the real product. And this is important because you can choose something free, or something that you know how to operate.

In this article, we will focus on WordPress. Why? Because it is free, it is a common platform, it has a rich plugin environment, and the new block editor makes it ideal for quickly creating complex layouts. 

All you need to do to get a free WordPress site is to head to WordPress.com, create an account, and start a new website using their free plan, and now you are ready to begin prototyping. 

Go to your website’s dashboard and create new pages using the block editor. It is almost like using lego pieces to build something. 

You can create multiple layouts for the same test page; you can create links between pages, simulating a user interaction, you can test how it will look like on a mobile screen, play around with various font faces and sizes and so on. 

As a bonus, you can activate the comments feature and use that to document feedback on the pages you are putting together. 

Using the Free plan on WordPress has some significant drawbacks:

  •  you cannot use custom CSS to finetune your design
  •  you cannot install plugins 

Depending on the complexity of the prototype, you may not need either one of them, but if those are important to you, then you can install WordPress on a shared hosting plan and unlock the full power of the platform. 

Closing Notes

I know that WordPress is not a prototyping tool. For more advanced use-cases, you will find it limiting. In those situations, you are better off investing in some dedicated tools like WebFlow, or Sketch, or Figma.

But as a playground, when you want to get a feel for how your idea will look like, and you want to have something to show to your investors or your audience, give WordPress a try.

Finally, all prototypes should be discarded when you go build the real thing. There is a big temptation to use the prototype for the live product, but please don’t. When you need to make something that is production-ready, start from scratch and do it right.

SSO – Single Sign-On – One Ring to Rule them all!

I am sure you have noticed most of the software services today that require you have an account allow you to “Login with Google” or “Login with Facebook.”

That is very convenient for your potential users and customers as Facebook and Google are so ubiquitous. 

The process above is a form of Single Sign-On. The user logs in only once into Google and then uses that login to authenticate themselves into various other software services that accept Google as an “identity provider.” 

The term “identity provider” is what Google and Facebook do when they allow you to use their services to authenticate your users. 

I was reluctant to use an external identity provider before, because I had assumed that it would mean that you do not “own” your user base, but instead Google does, and they could cut access on a whim. But that is not the case. If you request and are granted access to the user email, you can still get in touch with them, even if Google or Facebook will refuse to do business with you anymore, for whatever reason. 

So it makes sense to add such a feature to your service because it will make it much easier to adopt. 

For larger companies that manage multiple applications and services, it is possible, and it makes sense to implement their own Identity Providers to create the Single Sign-On capability.

Potential Pitfalls

A big challenge that I found with using Identity Providers is “session management,” which means keeping track of the “logged in user.” For example, if the user logs out of Google and logs in with a different account, your application needs to be able to spot this and create a new session for the new account. Otherwise, you risk exposing private data to the wrong person.

The Technical Side

Implementing Identity Providers and consumers it is relatively easy now because they are standard, so you can find ready-made libraries that will make the connection a breeze. 

The libraries I have worked with that I can recommend are:

For Php Composer:

– The PHPLeague / OAuth2-Server 

– The PHPLeague / OAuth2-Client 

WordPress Client Plugin:

– OpenID Connect Generic Client (this required some modification as it was not implementing all the requirements out of the box.)

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. 

Make good use of your Analytics data

Some people love looking at numbers, and some people don’t! Which kind are you?

That was a trick question because it does not matter. You have an online business, so you have to look at the numbers period. It is that simple.

I am surprised that even to this day, there are website owners who are not using Google Analytics. So by using it, I mean actually using it, not just having it installed. If you don’t have Google Analytics installed yet, this article is not for you 🙂

If you don’t like looking at the numbers, think of it as listening to their story.

What story can you learn by listening to your analytics data?

The most basic story could be: your site is broken! A sudden drop in numbers or an unexpected spike in errors is an excellent indicator that something is not working. The sooner you learn about this, the faster you can fix it.

Another story can be the “unexpected audience.” You may be assuming that a specific demographic or geographical region is visiting your site, but you may be wrong. Sometimes you may discover that it makes business sense to translate your offer to a different language, or to promote a page to a different demographic. Without analytics, it is challenging (if not impossible) to adapt to the changes in the market.

However, the most useful way that I am using analytics is to predict the future by looking at the past. Instead of guessing how many sales are you going to generate this month, you can use the past data to get a reasonable estimate of the monthly revenue. This allows you to plan ahead and to budget for your growth. It enables you to think long term, to strategize, instead of just surviving.

The second most useful way to use analytics is for tracking the success of your actions. Meaning: how will you know if the changes you have implemented have helped your business or not? This kind of tracking requires a bit more time to set up, but it is worth it.

It is an excellent idea to have the analytics code installed, even if you don’t know how to listen to the numbers yet. By the time you learn, there will be a story in your analytics data for you to interpret.

Installing the code

Google Analytics has good documentation about how to install their code. Also, most WordPress themes allow you to configure Google Analytics in their options. If a theme does not allow you to do this quickly, maybe it was not the right choice for your website.

For the more advanced users, I recommend using this plugin: PixelYourSite (https://www.pixelyoursite.com/)

How are you using your analytics data? Have you made any breakthroughs? Have you learned any hard lessons :)? Let me know in the comments below.

Keep your site up to date – good advice, but only in theory?

“Keep your software up to date!”

I am sure you have heard this saying many times, and in general, it is good advice.

However, let’s take a WordPress website, for example.

A WordPress site is made from the WordPress core and usually many plugins. You have many pieces in your puzzle. Not all of them are updated at the same time or in the same way.

In my experience, it happened more than once that an updated piece no longer fit with the rest of the puzzle. Auch!

Most update processes do a good job warning you that you need to do a backup first and to ensure the other plugins (components of the puzzle) are compatible with the update.

This approach puts the responsibility of “making sure that things still work” with the user. And not everyone can make that assessment. Also, let’s admit it, sometimes we are in a hurry or just plain lazy :). Ideally, a piece of software should not rely on a human to do the right thing.

I too used to be overconfident in the automatic updates process, and I would apply those every time there was a new update. Click, click, and I was done! What could possibly go wrong?

One time, I updated the store. We had a newsletter scheduled that we expected to generate much interest and I thought I wanted to offer the best and latest shopping experience for our customers. So I updated the store and was on my way. The next day I opened the email to a ton of complaints from our subscribers that the checkout is not working! A full email campaign wasted, not the mention that we looked totally unprofessional — that hurt both my ego and the sales.

What did I learn from it?

1. Updates can potentially be very painful

2. You never change the system right before a big promo campaign. (This feels like common sense now.)

3. You need to be extra careful when you update the part that generates income: the store, the “pay now buttons,” and the subscribe boxes.

4. After you update you need to test at least the critical functionality: add to cart, checkout, subscribe.

5. You better have good backups, in case you need to roll back.

It was not all bad, because I did have backups, so it was relatively easy to go back to the previous version. Moreover, I sent another email campaign with an apology and a second invitation to check out the offer. If I hadn’t had backups that would not have been possible to do.

Another thing I decided to implement is to write automatic tests for the website that can run in the background and make sure the critical processes are still working.

In conclusion: stay up to date, but be smart about it 🙂

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.

Versioned Backups – A form of Insurance

What are version backups and why should your online business care?

Allow me to share a story with you. One morning I get a call for a client of mine. A website they were maintaining had bad been hacked. The service they were providing was not working anymore and they were losing the trust of their customers. They were asking me to fix it for them.

Fixing a hacked website is very difficult and time-consuming and it can mean a lot of downtime. The better option was to restore the site to a previous state when everything was working.

Thankfully this client understood the value of backups so he had one. Took me an hour to restore the backup. And when we checked the site…

Surprise!

It was still looking bad and the browser was still issuing security complaints. Auch!!

It became clear that the hack had happened a more than a week ago, so restoring the most recent backup did us no good.

And here come the versioned backups. Which is a fancy name for backups that go back in time. You don’t have only the latest backups, you have a daily backup for the last 30 days or a weekly backup for the last 10 weeks.

Because we had those I was able to discover when the hack took place and restore the backup before this. Another 2 hours spent, but now the website was working again.

After one more hour, I discovered that one of the plugins installed had a security flaw that had been exploited. I had to disable and delete that plugin or the site would have been hacked again shortly.

Versioned backups are snapshots of your website across time where you keep more than just the last one.

As you can see, this allows you to reach back in time to when “things were working” and restore your data in case of trouble, even if you discover the issue a few days after the fact.

Why should your online business care about versioned backups?

If your website is mostly static and you don’t offer any services online then you don’t need versioned backups. Just an old backup from last year will do the job.

But let’s be honest. Most websites are in fact web-applications. Meaning they are not just static pages. There is content that is updated, products that are promoted, customer lists, fulfilled orders, and invoices. And if you are doing well, these get updated at least once a day. So a backup from last year will help, but you will still lose a lot of your data.

Depending on how you run your online business and the amount of online activity you will have to decide how often to backup and for how long to keep a backup history.

In my experience so far, with small and medium-sized businesses, doing weekly backups and keeping only the last 4 works very well. This means that in the worst-case scenario you can go back a month, and in the best-case scenario you lose a week of your data: new posts, customers and sales.

But I am paranoid and what I usually do is daily backups that I keep for 2 or 3 months.

Lots of backups and a long history sounds good a reassuring. But there is a cost to that in time and resources. Your server needs to work (sometimes hard) to generate the backup, and then you need the storage space to keep al that history. That is why you need to strike a balance between your real business needs and your peace of mind.

The Take-Away

Versioned backups are a good form of insurance because sometimes the ‘latest backup’ is just as bad as the live website.

Facebook ads? Love them or hate them?

Let me start by saying that I am not a big fan of ads in general or social media for that matter. In fact, I used to dislike the word “marketing” altogether. It seemed that marketing would be something that only con-artists would do to get a sale :).

But that was because of all of my bad experiences with ads and marketing in the past. However, it turns out that there are good ads and good marketing!

Here is a definition of marketing that I like (probably by Seth Godin):

“Marketing is generously solving other people’s problems”.

So marketing in this sense is serving not only selling.

And out of this definition follows a good ad. A good ad is one that is more of a training than a sales pitch. It adds value to your life just because you paid attention to it. You have learned something and if you are ready and willing to go deeper, then yes, you can buy the product, service or training.

I cannot say that I am an expert with Facebook ads, but I have run ad campaigns on Facebook for a couple of years so I have learned a thing or two.

What I like best about them is that you can really focus on your target audience. That is very useful when you are looking to reach people who are interested in what you have to share.

The next thing I like is the format. At least on Facebook, it feels organic and if crafted correctly it looks like a regular post and not like an ad.

Next is the way you can control your budgets so you have a clear picture of your spending.

There is one thing that I don’t like, however. That is tracking the results.

Maybe I am still doing something wrong, and I still have to fine tune my processes, but I have not yet figured out a reliable way to determine which ad is performing better, especially when it comes to converting into sales.

The setup I have worked most with is a WordPress site with a WooCommerce store. On top of that, I have used the “Pixel Your Site” plugin to integrate all of it with Facebook.

If you know of a good resource about conversion tracking with the Facebook pixel, drop a link in the comments below!

Why use Facebook ads?

After testing this for some time, it is clear to me that Facebook ads are a good way to reach new people, or just to send reminders to your current audience. Ideally, new prospects would find you through word of mouth. What you have to say is so remarkable that it has to be shared with other people! But when that does not happen, you can test out ads and look for a new audience. (I am assuming of course that what you have to say or offer is indeed really good, but you did not find the right audience yet).

WordPress and the Email Problem

Have you ever had a WordPress site and your outgoing email was just getting sucked into some kind of black hole, never to be seen again?

I have discovered through experience that this is very common. And the problem is not with WordPress, it is actually with your hosting provider.

The only reason WordPress seems to be the most affected it is because it is so widely supported by hosting environments and that it is free. And not all of the hosting providers do a good job with delivering your email.

When your website is using what is called a “shared plan”, this means you share the server resources with other websites as well. And those websites may not be as friendly and ethical as you are. In fact, because it is free and so easy to use, there are many people who abuse the email feature of WordPress to send spam.

The easiest solution for the hosting providers, in this case, is to just block the outgoing email capability for everyone, including you!

This does not only affect shared plan users.

After 10 years or running an online business, and keeping an email quality score of 9+ out of 10, our email got suddenly dropped. We had a dedicated server, so we were not sharing our IP with anyone else. And we only found out of this problem because of our customers complaining about not getting their orders delivered. Yaiks!

Contacting support did not help. There was just a general reply that all outgoing email was now routed through a different grid and they were very strict in their rules. The problem was that everyone was treated the same: spammer or genuine business! And of course, the common rules were those applied to spammers. The good history and reputation of our business did not matter anymore.

Complaining did not help so I had to look for

Alternative solutions

There are two that I found:

1) Move to a different hosting that knows how to manage outgoing email well. At the moment of writing, the only one I can recommend is SiteGround.

2) Buy an outgoing email service.

I will focus on the second one because there are some mistakes I made and lessons that I learned.

Since we were used to having free outgoing email with our server, it did not make sense to me to get a paid service. So I just looked for companies who offered free email delivery if you stayed under a certain quota.

This plan backfired big time. Most of our email was sent all right, but it was going straight into the spam folder of most of our customers.

Out of the Spam Folder

The problem was that the free plan was again shared with other people who were in fact spammers.

It was time to do the math and it became obvious that we were losing a lot of customers because we could not communicate with them any longer. At this point paying for a high-quality outgoing email service began to make much more sense. Once I took the leap I had no regrets. The kind of tools you get with a paid service, and most importantly the deliverability, generated more than enough customers to cover the costs.

For an online business where it is important to stay in touch with your audience, it makes sense to have a paid email solution.

I have used SendGrid in the past and I was very happy with them. But I have moved to MailChimp because of their better automation and better integration with WordPress.

Some Technical Details

Correctly setting up outgoing email involves some technical details about DNS, MX records, DKIM, SPF and others. These are beyond the scope of this article, but if you need some guidance ask me in the comments section.