Recently we've seen a lot of WordPress websites with unexpected maintenance costs due to having a child theme. I'm writing this post to highlight the hidden costs of having a child theme. I hope this helps people to make an informed decision during the WordPress website development process.
What is a WordPress child theme?
A WordPress child theme is basically a sub-theme. It inherits the functionality and design of another WordPress theme, known as the parent theme. You can use a child theme to extend and customise the parent theme without making any changes to the parent theme yourself.
If you have a WordPress child theme then you would activate this in Appearance > Themes in the WordPress admin, instead of activating the parent theme. For example the Barn2 Media website uses a theme called Loom. We used a child theme to customise the Loom theme, making it more suitable for our company. If you go to Appearance > Themes then you will see that the Loom Child theme is active. There are 2 other themes installed but not activated: Loom (the parent theme) and TwentyFifteen (as it's good practice to always keep one default theme installed for troubleshooting purposes). This means that the child theme is the active theme, and is inheriting information from the Loom parent theme.
A child theme lets you have the best of both worlds. You can customise a WordPress theme to make it meet your exact requirements. But because you haven't modified the main theme, you can install updates that the original theme developer releases in future. This allows you to benefit from the bug fixes, new features and future-compatibility that these updates provide, while still having a customised theme. It sounds like a win-win situation.
So what's the downside of WordPress child themes?
Child themes are all very well and good, but there is a hidden cost for WordPress website owners.
In most cases, you can successfully update the parent theme without affecting the child theme. However problems arise when the original author of the WordPress parent theme releases an update that changes something that is referenced in the child theme. For example, the theme may use certain naming conventions which are used in the child theme. If the parent theme changes its terminology then these elements of the child theme will break when you update the parent theme.
In the past month or so we have seen several major WordPress themes making significant changes to their code. For example the popular Avada and DynamiX themes have had major rewrites, beyond what you would expect in a normal theme update. This meant that child themes needed a lot of redevelopment work to bring them in line with the new versions - a cost that the website owners had not expected or budgeted for.
Tips on avoiding child theme problems
Off-the-shelf or bespoke WordPress theme?
When you're planning a WordPress web design project, one of the most important decisions is whether to use an existing WordPress theme or to go bespoke.
Your choice will depend on a combination of the client's requirements and budget. Designing and developing a bespoke WordPress theme is usually a lot more expensive than using an existing theme because of the extra design and development work. However if the client has quite specific requirements then it can end up being cheaper than using an off-the-shelf WordPress theme. This is because major customisations of an existing theme can be very complex and expensive - both in the short-term and in terms of ongoing maintenance costs, as we have seen - making it easier to start from scratch.
If you have a bespoke theme then you have full control over it - there's no third party theme author who might randomly make changes that break your work. However changes may still be made to WordPress and any plugins installed on your website, any of which may affect your custom WordPress theme. Although there's no child theme to break, you still need to budget for the maintenance costs required to keep your theme compatible with the latest version of WordPress and the plugins. These costs could potentially be higher than fixing occasional problems to a child theme, as you're responsible for the entire theme.
Choosing a WordPress theme
If you decide to design your website using an existing theme then the ideal scenario is to find a theme that meets your exact requirements without needing customisation. A specialist WordPress web design agency such as ourselves is likely to work with this type of WordPress theme every day and be in the best position to recommend something suitable. It's best not to try to find a theme yourself because it requires some expertise to spot the few good ones from the many bad ones. And remember, choosing the right theme is the single most important factor that affects the quality, performance and future maintenance of your website.
If you've decided to use a theme but will definitely need to customise it - for example because you have a limited budget but some very specific requirements - then this might affect your choice of theme. If you're planning customisations, don't choose a hugely complex theme that's packed full with features. The more complex a theme is, the more difficult it will be to customise. Instead, look for a lightweight, well-coded theme from one of the authors recommended in my article This ain't a WordPress theme, it's an arms race. The simpler the WordPress theme, the simpler and safer it will be to customise.
Helping clients to make an informed decision about their WordPress theme customisations
There are lots of valid reasons to customise a WordPress theme by creating a child theme. The important thing is to do this in a well-informed way.
If you're a WordPress web designer or developer, bear in mind that when a client requests something that will require customising the theme, they're probably not aware of what they're asking. When they see the first draft of a WordPress website we have designed, our clients often request changes that will require customising the theme. Rather than making the changes without considering the possible implications, our policy is to explain the situation to the client.
Yes, we can customise the theme to achieve what they're asking. However they need to be aware that this will increase the cost of their website (our standard prices don't usually include customisations as our aim is to use a theme that meets the client's requirements as it comes) so we will re-quote at this stage. They need to be aware that future updates to the parent theme may conflict with our customisations in the child theme, increasing their future maintenance costs. We may suggest alternative ways to achieve a similar result without customising the theme - in my experience, the client is often happy with such compromises.
You are the WordPress expert, so don't blindly follow the client's instructions. Take the lead, communicate with the client and help them to understand the options. This will allow them to make an informed decision on whether to proceed with the customisation, or whether to compromise and work within the confines of the theme.
Keep WordPress theme customisations as minor as possible
It's quite simple: the more significant the customisations, the more likely a WordPress child theme is to break after an update. My article 5 reasons not to customise WordPress themes discusses this in more detail.
If you need a few simple customisations, create a child theme (with the client's informed consent) and make the changes as needed. If you need to rewrite major portions of the theme, think again - there's probably a better solution.
Set an appropriate budget for WordPress maintenance
Lots of people set a reasonable budget for developing their WordPress website, but expect it to cost little or nothing to maintain. This simply isn't realistic.
The problem is explained beautifully in Nemanja Aleksic's article WordPress Maintenance: Are You Worth Less Than a Cup of Starbucks Coffee? on the ManageWP blog. Nemanja quite rightly points out the true value of properly maintaining and supporting a WordPress website, which is so often overlooked.
This applies to all WordPress websites. The more complex the website, the higher the maintenance cost. A child theme is more complex than using a theme as it comes, so it's important to budget for higher maintenance costs.
This isn't necessarily a problem - it just highlights the importance of updating your WordPress theme in a professional and risk-free way, and accepting that some future redevelopment work may sometimes be needed. The overall cost of your website is still likely to be lower than if you developed the entire website from scratch, so child themes are still a good solution for many WordPress websites.