Home » wordpress

Tag: wordpress

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? 

Design is Not Everything

When building a website, you may think that all you need is the web design, which is all you may be willing to buy.  

And this is understandable because it is what you see and what your customers see. 

It is also why page builders like Divi and Elementor are so popular with WordPress. You can quickly and visually set up how your website will look. 

But once traffic this your site and the business takes off, you realize other things are just as important if not more important than design:

  1. Is the site functional? Does it do what it is supposed to do for the user? Is the sales process working smoothly? Does the contact form send you all the messages? 
  2. Is it fast? With the Google update in May 2021, site speed is a factor in their ranking system, which means that slow sites will get a penalty and fast sites will get a boost. But that is not all. From a user experience point of view, if they have to wait 10 seconds for the cart page to load, they will abandon the purchase process. 
  3. Is it clear? This item is where design can shine when it focuses on clarity first and aesthetics seconds. It doesn’t matter if your site is beautiful if your users have no clue how to navigate it or what they should do on the page that just loaded. 
  4. Is it responsive? Does it work perfectly on mobile? Today’s data suggest that you should develop the site on a mobile view first and then check the desktop view. 
  5. Does it handle well spikes in traffic? You don’t want to have your site crash in the middle of a successful marketing campaign. 
  6. Is it secure? Is your customers’ data safe? Is your site well insulated against hacking attempts? Are you using the best security practices?
  7. Do you have a recovery plan in place? What happens in case of a hardware failure? Or if you get kicked out by the hosting company?

If you still think your site needs a stellar design to bring in revenue, look at Google.com or Amazon.com. Most designers would argue they can do a much better job. But how many can create a much better revenue stream? Or handle that level of traffic? 

I suggest you start your website by investing in a solid foundation, don’t just buy a “pretty picture” of a website.  

Send email reliably from WordPress

I am getting close to 20 years of putting together websites for myself and other people, and I have seen a shift happen with email, both in what is possible and what the expectations are. 

In the “old days,” you would get a hosting account for your site, and the email would magically work every time you would need to send one. 

This setup worked because the email protocol itself is very open and interoperable, so it is straightforward to send an email to someone, as long as you have their address.

This openness also invited spammers, who abused the system, making it harder for everyone to send and receive genuine and relevant communication. 

Today, most people expect that email will work “like it used to,” but what is more likely to happen is that all the emails you send out of our WordPress site will not reach their destination. You will not notice this problem unless you specifically test for it. Instead, you will see a lack of engagement or customers complaining they did not get their download links. 

There are a couple of solutions to this problem that are free, but I will present the most effective one: buy a paid email delivery service. 

When you pay for your email delivery service, there are some significant advantages over a free solution:

  • you immediately set yourself apart from the spamming crowd that is using the free solution
  • you have dedicated tools and reports to monitor that your email is delivered and reaches its destination
  • you get support with configuring the email sending process correctly, which is not trivial
  • you get analytics – which is essential for a business owner
  • someone (the service provider) is directly responsible for delivering your email and making sure the process works as expected

Unfortunately, I have seen a lot of people shy away from paying for email. Put your business hat on and think of it this way: how much money and (more importantly) how much time are you wasting with lost emails, with dealing with un-happy customers, with the uncertainty that your outbound messages reach their targets? I bet that the numbers you come up with more than make up for the cost of a paid email service. 

What email service should you use? 

In the past, I have worked with SendInBlue, SendGrid, and Mandrill. Today, my favorite one is MailGun. I am not an affiliate; I recommend them because (as I write this) they offer the best value for money. 

To connect WordPress to Mailgun, the plugin to use is WPMailSMTP.

How much for a website?

There is no such thing as the right price for a website. You can have something for any amount you budget. 

It may be better to shift your question to “Why do I want a website in the first place? What do I expect to accomplish?” Once you find your answer, it will be much easier to assign a budget that makes sense for you. 

A quick example: 

Say you want to build an eCommerce site that will bring in $200k in revenue per year. In that case, it makes total sense to invest $20k to $50k to have it built professionally.

Another example:

You are just starting, you don’t have an audience yet, and you need to test an idea. The expected revenue from this project could be as low as ZERO. Paying 20k for a test doesn’t make much sense now, does it? Perhaps this is a good situation where you need to look at some free options first. 

How to think about website costs, price, revenue?

A common misconception that I see is to think that all that you need is the web-design, which means a page on the Internet that looks like the picture in your head. There are plenty of tools to help you build that pretty picture for free, but once you have it, what will you do with it?

The most significant investment in building something is in marketing—finding the right people and presenting the right message for them. Once you figure out what you want to create, for whom and what it is the best way to engage with the audience, the web design part is super easy: mostly fill in the blanks. 

To better illustrate this, let’s have a look at some options.

The Free Website

With today’s tools, you can have a professional-looking website for free. This approach is an excellent way to test your ideas with no dollar investment. Use this to build up your writing skills, get some feedback on an idea you have in your head, start a conversation about the thing you want to create and get a feel for what it means to manage a website. You may discover that you are sitting on a gold mine or that nobody cares.

The $250 Website

You have now moved to a paid hosting company and under your own domain name. 

The advantages you get are:

  1. you are signaling that you are taking this more seriously – if you invest in hosting and a custom domain name – that will set you apart from everyone using the free places. 
  2. you begin to build your brand – as people will now use your domain to get to your content.
  3. you get more customization options and more flexibility.

You may still not make money from the site, but the $250/year investment is not too big, and you are learning a lot. 

The $1,000 Website

At this point, you have an audience that trusts you and visits your content, and you believe you could help them with a paid solution. You deploy an e-commerce software on your site: a shopping cart (like WooCommerce), a payment gateway integration (like PayPal), a newsletter service (like AWeber), and maybe video content (on YouTube).

If your content is engaging and consistent, you may recoup your money in one year, so you are on to the next level. 

The $5,000 Website

At this price point, you already have customers, you know what they like, you know what they would like improved on your website, so it makes sense to buy a custom design to solve these specific challenges. 

You are also doing much better automation and integration of your tools. You will make regular backups of your content and customer list because now a loss of data will be costly. You are building up your analytics to help you make better decisions in the future.

You do expect to make somewhere between $30k to $60k per year in revenue.

The $10,000 Website

At this stage, you begin to optimize your site. You think about speed, caching, search engine optimization, user experience improvements, tracking your metrics. You are doing tests with your design and your messaging to see what works best for your audience. You may also choose to move away from platforms like WordPress and into dedicated software that better fits what you and your audience want to do. 

The revenue expected is between $80k – $120k. 

The $50,000 Website

Here we are usually talking about a major overhaul of your online presence. You will do much research and many tests, and studies about your audience and with your audience to make sure this next level is a perfect fit for them. You may hire a branding agency to fine-tune your online identity and create a unified feeling experience for your users, regardless of where they find you. Things like your logo and color scheme become very important. 

You will get automatic publishing and tracking tools to update your content across social media. You will build a managed community for your audience, where they can connect and learn from one another. You will have a team of people around you, helping you manage all the systems. 

A big part of this investment goes into research and marketing. If you get that right, then choosing the correct technology is very easy. Choosing the wrong technology can be very costly at this stage. This is why it makes sense to research first and build later.

The expected revenue is over $300k.

Conclusions

You can use the value you expect to create with your website and form that work out what kind of a budget makes sense to invest in getting there. 

The bulk part of that investment will go into marketing:

  • Understanding your audience.
  • Making you a better communicator.
  • Spending time engaging with your community.
  • Finding better ways to help. 
Spiritual Software Engineer

Improve your website performance by separating concerns

The problem

I have a slow WordPress site that will resist all optimization attempts.

What is the most common advice you get for speeding up a WordPress site? 

  • remove unused plugins
  • update all the software
  • use the latest version of PHP 7
  • install a caching plugin

This list is all good advice and things to reach for first, but what do you do when your WordPress install still takes 13 seconds to load a page, even after all the optimization is done?

In my case, the problem was that the website was trying to do too many things. And the optimizations above did not help much. 

Here is what I mean:

  • the website had multi-language support
  • contact forms done with Contact Form 7
  • subscribe popups using NinjaPopus
  • animated sliders on the homepage
  • hundreds of blog posts
  • a WooCommerce store 

Because of how WordPress works, all items were loaded, regardless of the page you were looking at. The multi-language setup was not working well with the caching system. And I could not uninstall any of the plugins because all of them were needed somewhere. WordPress does not do selective plugin loading.

It drove me crazy that I would need to wait 13 seconds to open up a blog post that would request hundreds of resources (CSS and JS) that it did not need. It was a page with one image and some text but a truckload of “invisible add-ons.” This page should load in milliseconds!

Some have suggested writing yet another plugin to remove the unnecessary scripts from the pages that don’t use them. I understand how that would improve the loading time, but on principle, I don’t want to have code that adds stuff, so then I can immediately remove it a few microseconds later. That’s just bad practice

I came up with the solution to split the site into two: one for the simple blog and one for the store. I also dropped multi-language support. 

The Pros

  1. The blog is made up of static pages – so you can deploy very effective and aggressive caching.
  2. I could also split the plugins – there was no need for the blog to load all the WooCommerce code.
  3. The store site could focus better on selling and keeping the buying experience smooth. 
  4. The improvement in performance was dramatic, as I could now optimize each part independently, without conflicts
  5. A bonus side effect is that I can now work on the blog and not worry that the store will be affected and vice-versa.

The Cons

  1. There are now two websites to maintain and think about.
  2. They need to look the same in design, so they feel part of a whole.
  3. The search function is now limited – it either returns post or products – depending on where you are using it.
  4. Tracking the user activity is more complicated.
  5. Adding multi-language support means adding a new site for each language – which does not make business sense right now.

There is an obvious trade-off here. There are more pieces to take care of, but you get to optimize each one individually and fine-tune them for their specific purpose. 

In Conclusion 

If the common performance tunning is not doing much for you, maybe the structure you have is too complex, and your website would benefit from being spit up into smaller but more effective pieces. Of course, this effort only makes sense if having fast loading pages is essential to your business. 

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.