One of the features that make WordPress so appealing as a CMS platform is the ability to quickly stand up an installation and get your new website online. This is partly made easy by the fact that WordPress has so many themes to choose from. Each install comes with the base theme, which is typically updated with each major release. But, on top of that, there are literally tens of thousands of pre-designed themes that you can license for minimal cost and be online shortly after some customizations.
Of course, there are certain use cases where this makes sense. Those who want to utilize WordPress, and have no design or development chops, or are just looking to save money would be well served with this approach. However, there are a ton of negatives to the method, such that at this point, I'm not so apt to recommend it even to those who are budget conscious. This post comes from a few experiences both with my own projects as well as customers who have used themes to varying level of success (and frustration!). Most recently, I had started two side projects. One utilized a custom theme that I had designed and developed, and another, I licensed an off-the-shelf theme to get online quickly. Spoiler alert: the theme that I licensed, which is one of the most popular out there, is now being redeveloped into something that's customized. It just proved too painful to work with.
So what were the pain points? Let's dig in and have a look at some frustrations that off-the-shelf themes can present to users.
Difficult to Customize
First, do not be confused and think that an off-the-shelf theme is easy to customize. This is not a hard and fast rule. In many cases, it's harder to customize these themes because of the architecture of how they were assembled. Typically, an off-the-shelf theme is going to be laden with all sorts of other software. This can be via proprietary plugins or other required software packages that must be integrated to make them work. You'll need to learn how all these packages work, and even worse, you'll have to understand how they work TOGETHER to power the theme. This means that in most cases, advanced customizations aren't easy. For the most part, you'll be customizing within the framework the theme already made possible for you with the provided templates.
What's worse is that hiring a pro isn't necessarily a suitable pathway either. Most professionals hate working with these things. And by a professional, I mean a developer or someone with advanced technical knowledge. Undoubtedly, the theme revolution has created a ton of "themers" who are people you pay to configure these things. But, they aren't developers. This is why you so often hire a "web guy" who gets stuck when their abilities to customize meet a requirement that may need actual development. Trained developers find these systems to be bloatware, incapable of making customizations in the elegant way that coders prefer.
This is an interesting problem. If it's too difficult to learn for the layman, yet also frustrating because of lack of control to a professional, then who benefits from a theme anyway? The critical point here, as I've swayed from it a bit, is that all the promises of customization don't really always result in something that is easily modified as advertised.
As I said earlier, these themes pack a large amount of ancillary software to complete their mission. This can mean that a theme comes with a cacophony of software packages and plugins. This is in addition to the amount of functionality the theme has from its own requirements to satisfy as many use-cases as possible. After all, for a theme to sell well, it needs to have enough workflows and functionality to appeal to the masses. It's worth considering that some of these themes are attempts by third-party companies to compete with other CMS packages, so they introduce a variety of functionality to expand upon what WordPress can already do off-the-shelf. This means editing plugins, base templates, and all sorts of other stuff which ultimately results in a vast code base.
Why is heavy bad? Well, a few reasons. First, it means the codebase is complex, and this can introduce performance issues. Secondly, large codebases indicate more security risk – the more code, the larger the possibility of cracks through which malicious actors can introduce their wares to your server. Finally, it means that there is just so much more to worry about from a maintenance perspective.
Also, it's worth considering that frequently, these themes are literally broken off the shelf. I had installed a theme recently, and the editor routinely crashed on one part of the homepage. I had no way to edit it, and the support team was non-existent. The only way to get around it was to dump the template and start over. That took way more time than it should've to rectify.
You'll Be Disappointed.
Someone told me that expectations are the foundation of future resentments. Well, with themes, that's almost assured. Since themes are sold to us as simple, effective ways to have customizable experiences for all types of users, we automatically assume they are going to work great and allow us to do everything from day one. Fact is, they don't. It takes a lot of "massaging" to get things right, and that often results in frustration. Themes will never give you 100% of what you want because they simply can't do everything. And, since they are sold to you as being all-encompassing, this will eventually lead to disappointment.
By the way – when you hit rock bottom and are really fed up, good luck migrating away from them…
Debugging Issues is Difficult
Because of the complexity of the themes, the fact that they are often interdependent with other software packages and plugins, and they are supported by small businesses or independent designer/developers, debugging themes is challenging unless you really know what you are doing. The amount of time configuring and editing themes takes often means that you can spend as much money during the customization of your theme as you would have if you just custom designed something and built on the base WordPress theme.
In many cases, the best fix is to simply work around whatever is wrong. And, as the days go by and updates are happening, it becomes the case that you'll be reliant on more and more workarounds until the software becomes unstable and reinstallation is required. Themes are hard to work with, and when things go wrong, they can be nearly impossible to pinpoint and fix.
Hard to Specify and Estimate
As an agency and web development professional, I can attest that estimating work effort for customizing themes is very difficult. First, projects that require theming are hard to specify. You can really just define a project by the number of pages. However, since it's not a custom design, you can only determine the items that go on the page, and then edit the pages over and over until they reach a level of satisfaction for the client. Design is actually a much easier project, and you can somewhat predict what will go into it a bit better than editing a theme.
Estimating the amount of time it'll take to craft a series of pages to a client's requirements is nearly impossible, such that our agency doesn't even try. We only work with themes on an agile or accrual basis. Each theme is different, every client is different, and it's just too risky to propose fixed costs on something that is meant to be agile from the get-go.
I understand the appeal of themes. Everyone assumes they need to use WordPress because it's "the best" (debatable!). And, people don't always see the value of custom design. However, I want to impart a few closing thoughts:
- As I outlined, themes are no picnic.
- The ongoing maintenance will be crucial for both the theme plus WordPress and its plugins.
- You have to be prepared to spend time and money getting things right.
If you are not aligned with each of those thoughts – and you still want a budget-friendly and easy-to-use approach – consider the hosted solutions such as Wix or Square Space. Yes, I've said it – you'll be better served to go that route versus investing in bloatware over time.