Home » wordpress

Tag: wordpress

Does Joomla! 4 make sense for smaller websites?

If you’re in a hurry, the answer is “no,” but if you would like to know why then keep reading :).

When I began my journey into the CMS world many years ago, my first accidental choice was Mambo, leading me into Joomla. And I have been a Joomla fan until circumstances forced me into using WordPress long enough to get used to it and be able to appreciate the differences.

In August 2021, the stable version of Joomla 4 became available. I had no plans to look into it as the websites using the 3.x version work just fine and are stable.

But as I glanced over the one review article, a couple of keywords jumped at me because they are current pain points with both WordPress and Joomla 3.x: build-in SEO, smart search, lightning-fast, multi-language, and workflows.

Built-in SEO

Search Engine Optimization is such a vital item today that I am surprised it is not included in the core of a framework, and you have to install custom third-party plugins to manage it. Granted, becoming SEO experts may not be the priority for either WordPress or Joomla, but at least the very basics should be covered and leave only the advanced settings to the third-party tools.

So I was excited to see that with Joomla 4, you get built-in SEO capabilities. That being said, I could not find in the demo how exactly they accomplish this and if they enforce it with custom templates. But looking at the generated HTML code, it had all the expected meta tags that would previously require a third-party plugin.

Smart Search

Google has raised the bar way high when it comes to search results. I seldom use the internal search engine that websites provide because they return terrible results compared to simply using Google to search the site.

However, the content creators know much more about the content than Google can know, and with that knowledge, they should be able to provide more relevant search results. 

There is also the challenge of having your website behind a paywall. So a good internal search engine is valuable in some cases.

In the past, I would solve this problem with Elastic Search because neither WordPress nor Joomla would return effective search results.

Lightning Fast

This year has been the year of optimizing my websites for speed. And in this regard, WordPress has been a nightmare to work with. It works well if you install just the core, but as soon as you add plugins to it, it goes downhill really fast. The architecture design decision to load all the plugins all the time continues to plague the performance of WordPress. 

Joomla chooses a different route, and it has a way to only load relevant plugins, which dramatically reduces the potential of doing unnecessary work with every request.

In my experience, the Joomla websites I have created have always been fast and stayed fast, while the WordPress ones would require constant attention to make sure they don’t slow down.

Multi-Language built-in

I have built four multi-language websites so far. I am not very happy with either of them. WordPress has some good plugins for this, but they impact performance, and they don’t always play well with other extensions. Joomla 3 had a multi-language capability, but it left a lot to be desired.

The new multi-language feature in Joomla 4 is better integrated, and you can now associate together translations of the same content, which is important for SEO.

Workflows

Workflows was the most exciting feature to dive into. It is not very friendly to set up or understand, but it is potent, especially for large magazines that require a process to get from an idea to published content. Having a well-defined and enforced workflow always makes things easier.

Is Joomla for you?

If you don’t run a magazine with many content creators, WordPress will be better for you. As much as I like Joomla, WordPress is just much easier to use and get started on your website. And the new block editor set it apart from Joomla, where building custom layouts requires writing code or using a third-party extension.

But if you have a larger team and multi-language content, then Joomla 4 has the potential to speed up your processes and improve quality by using workflows.

One of my dumb moments – Fast Beats Free!

More than 15 years ago, a friend of mine pitched me this idea:

Let’s band together and create a CMS (content management system) app that people can use to build their websites.

My reaction?

That’s dumb! Why would you create a paid CMS app when you have WordPress and Joomla that are feature-rich and free? How are we going to compete with that? Why would anyone pay for using our app?

Time proved me wrong. 

My (no longer) friend moved on and partnered with someone else. They created the CMS, and they sold the service to lots of customers. 

Many years later, when I discovered this, I was confused. I could not understand who would pay money for a service that you could get for free elsewhere. I imagined that were regular users who were duped into buying this CMS app. 

But I was wrong again.

Eventually, I discovered on my own that I would pay for software that had a free alternative. Why? Because it saved me time.

“Fast Beats Free” – I’ve heard this line from Alex Hormozi, and it clicked so hard in my head as many puzzle pieces were falling into place. 

As a young person, when I had lots of time and no money, I would always go for the free stuff since I imagined I would have plenty of time to figure it out. But a paid service is for people who already realized that time is the most valuable resource, so they would gladly spend money to save time. 

So how do you compete with WordPress or Joomla!? You provide the same service faster and with customer support. And that is exactly what my friend did. And his customers were not duped, but they got immense value from building their website in hours instead of months. It was truly a win-win situation that I could not see.

I hope this story will challenge you to think differently about how you go around building your online presence. And to realize that if someone can help you do it in a few days, they are worth way more than someone who can help you do it in six months! Even though the six months person works longer and harder for you. 

It’s not about the effort; it’s about the results and how fast you get them. 

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