To WordPress or Not to WordPress. Is That Your Question?

Then read on.

You’ve been hearing a lot of negative things about WordPress from your computer-savvy friends but then everyone around you is using it. What should you do? True, most programmers hate WordPress, especially those who are highly educated in computer science. Well, that is not without valid reasons. So, let me start with listing some of the problems associated with WordPress.

What’s so bad about WordPress?

WordPress has been around for a long time (about 13 years) and it has always kept its backward compatibility (or upgrade-ability), which means it carries over many engineering techniques and concepts that are now outdated. It is also bloated with features that most people do not need which makes the platform heavy and slow. If you wrote from scratch only the features you actually need, you would probably end up with less than 10% of the code. To make this problem worse, WordPress is popular among those who only dabble in programming (or not at all), so they try to solve everything with plugins. A typical WordPress site (that I’ve personally come across) has about a dozen plugins. The menu bar for the administration site has a long list of tabs to sift through which makes it hard to use. Managing their compatibility and dependencies becomes a headache too. You might not be able to upgrade your WordPress because some of the plugins might not be compatible with the latest. And, not being able to upgrade is a serious problem with WordPress because WordPress (or any popular applications) is a magnet for hackers.

So, what is good about WordPress? When and why should you use it?

Sometimes the value of a product comes strictly from its popularity (like Windows or the English language). Popularity means a lot of people already know how to use it. You can save time and money in training the users. Furthermore, when something is popular, people question it less. As a developer, even if you deliver a product simpler and easier to use than WordPress, your users will always run into some problems. When that happens, if your product is not popular, you get blamed quite unfairly (because you made it!). In contrast, with WordPress, you can just shrug off and say, “Well, sorry, WordPress can’t do that.” Your clients can take it up with the most popular content management system on the planet. In other words, if you are going to deliver something custom when there is a popular alternative, you’d better make sure there is a damn good reason for going custom. Only exception to this is when your client is capable of appreciating the finer points of content management system.

The popularity is also beneficial for the clients who do not want to be locked into a particular vendor to maintain the site. Since there are so many developers who know WordPress, finding a different vendor to manage your site should be relatively easy.

WordPress is great if what you need is strictly content management, and you see no reason to expand beyond it. Computer science majors tend to love using complex solutions to solve simple problems. If what they need to build is a blog or online magazine, then they should swallow their pride and use WordPress. They should save their talent and intelligence for a more meaningful problem. Also, keep in mind that no website should be expected to last longer than five years. So, just think about what is necessary for the next five years. A beautifully and thoughtfully designed system can last ten or more years but is that what you really need for your project?

So, how should you use WordPress?

If you or your clients are happy with the way any template/theme looks, then use it as it is intended. By that, I mean, don’t try to make it do what it is not designed to do. Most WordPress themes allow you to customize colors and fonts, add or remove features, choose different layout options, and insert your own logos and artworks. If what you want can be all achieved through the interfaces provided, then using a theme is a good idea. If you want the power to control beyond that (e.g., you want to make this column wider, or this line thicker, or change the color of just this element), then forget using a theme. It would be a frustrating and time-consuming endeavor. Because you would want to avoid modifying the code directly (for future upgrade-ability), you will feel like you are playing one of those coin-operated crane machines to get plush toys; you want to reach in and grab the toy with your hands but you can’t. Even if you decide to modify the code, most of these themes and plugins are rather complex because they need to accommodate everyone’s needs, and also need to interface with WordPress. Trying to sift through the source files and deciphering what’s going on is time-consuming. It ends up taking longer than if you wrote your own theme or plugin from scratch.

If you deeply care about design and want to control all the details, then don’t use any themes even if some of them look very similar to what you want. Sooner or later, you will get stuck, and feel frustrated that you cannot move this element a few pixels to the left.

We generally start with almost nothing in the theme directory. (Just index.php, functions.php, and style.css) We then add only the features the client needs. Most of the features can be added by surgically copying and pasting (transplanting) from one of the default themes of WordPress.

And, we avoid using plugins unless they are absolutely necessary. We typically end up with a few in the end. (We almost always use Super Cache because, otherwise, WordPress is too slow.) By writing your own theme, you would have much less need for plugins. This makes the admin site easier to use and maintain. In addition, because plugins are where a lot of security vulnerabilities are found, using less makes the site more secure.

I hope I provided some answers to solve your conundrum. Don’t be embarrassed by using WordPress. What matters is using the right tool for your job.