Let me preface this post by saying there are many ways to accomplish the same goal, especially when it comes to WordPress. I’m not calling out any particular person or saying anyone who disagrees with me is wrong, so please don’t send angry emails or leave trollish comments.
Want to start a debate that will continue until all parties are too exhausted to keep going? Ask about methods or reasons for updating Genesis child themes. Preferably in a public place like the Genesis Facebook group.
Days later, when you crawl out of the fray – bruised, broken, and determined never to ask a question again – you may still be looking for a recommendation. Here’s what works for me.
Why is this even a thing?
Most WordPress themes update periodically. You see a notification in your site’s dashboard, you go to the Update screen, you update the theme to the latest version. Pretty easy.
Except that doesn’t always work, because sometimes you’ve made changes to your theme files. Maybe you edited some CSS or added a custom function to make the theme do something it didn’t do out of the box. So now you can’t update for fear of breaking something.
Issues like those are exactly why I started building sites using the Genesis framework exclusively. Genesis uses a parent/child theme system to make sure people can update the parent without ever worrying that their work will be ruined.
Genesis child themes do not send you notifications saying there is an update available. That’s because they aren’t meant to be updated as long as you keep Genesis itself up to date. That would defeat the whole purpose of using a child theme.
Updates are important…
Choosing not to update your theme at all isn’t a good idea. Developers frequently release security patches, compatibility fixes, etc. via theme updates, and those updates are meant to be applied. Otherwise you risk being hacked or waking up one day to find that your site looks wonky.
Take it from me, kids: Keep your stuff up to date.
…But don’t go overboard
All that said, updating Genesis works a bit differently. Remember a second ago when I said there is a parent/child theme system with Genesis? Let’s break this down:
Genesis framework: This is the parent theme. It contains all the files (bunches of them) needed to work with WordPress, and it updates periodically when changes are needed to maintain compatibility or fix bugs. These updates need to be applied to keep Genesis sites working properly.
Genesis child theme: This is a “skin” to change how Genesis looks. It will usually only contain a few files, as only the things you’re changing need to be included. It doesn’t update because it doesn’t need to – there’s nothing in it that would need to be altered.*
*Within reason. You can’t use a child theme for ten years and not expect changes in the way websites function. But for at least 2-3 years after installing a child theme, it’s going to work just fine.
How this works for child theme updates
Let’s pretend your website is a house. You install some awesome double-paned windows (Genesis) in your home to make it more efficient. You also buy some fancy Roman shades (a child theme) to make the windows look more stylish.
Now let’s say a neighbor kid throws a baseball into a window and it breaks. You get a new window, because obviously the old one isn’t working anymore. Do you need to change the shades as well? Not really, unless you just prefer a different look.
This is exactly how Genesis updates work. The framework updates every now and then to make sure Genesis still follows coding standards and functions as it should. That doesn’t mean you need to do anything at all to your child theme! It will still work just as it always has.
But what about new versions of my child theme?
Sometimes StudioPress (or a third party developer) will roll out a new version of a child theme. Here’s how that usually goes.
Person in support forum: Hey, I just noticed that this bit of CSS code makes the welcome widget look weird in Firefox.
Theme developer: Oh, crap. Let me test that out. Okay, you’re right. I’m going to fix it, then I’ll roll out a new zip file for anyone who downloads it from this point forward.
Do I need to panic if I’m using that child theme? Nope. I have several options, but none of them involve panicking:
- I can do nothing. So the welcome widget looks weird in Firefox. Maybe I’m not even using that widget, or maybe mine has different content that doesn’t look weird. So the issue that caused the new child theme version may not even apply to me.
- I can apply the fix manually. Maybe I have the same problem with the welcome widget and I haven’t fixed it yet. In that case, I might want to compare the original stylesheet with the new one to see what code was changed, then make the same edits on my site.
- I can update the child theme IF I haven’t made changes to it. If I’ve installed a child theme exactly as is with no edits to the theme files, I can replace it with the updated version. Problem solved.
But I made customizations!
Now, let’s say you have a child theme that has been customized heavily, either by yourself or by a designer or developer. You might have started with Executive Pro, but the final product likely looks nothing like Executive Pro because it has been altered to fit your brand.
Your “skin” or child theme may have started out as Executive Pro, but it has now become something unique. If your site looks normal and everything works, it’s unlikely that whatever small issue resulted in a version bump has anything at all to do with your theme.
Going back to the window thing, if your Roman shade manufacturer releases a new type of shade with a different cord to open and close them, that doesn’t mean your shades suddenly stop working. Yeah, the changes may be nice or useful, but that does NOT make replacement a must. You’d probably only replace your shades if they stopped opening/closing.
Again, as long as the Genesis framework is up to date, your child theme does not need to be updated. There is simply no reason for it.
What if I want to update my Genesis child theme?
If you really feel you may implode if you don’t update your child theme, by all means, update away. You can spend tons of time taking all kinds of precautions to make sure your child theme is not directly edited and can be updated when those tiny version bumps happen. More power to you!
If you build sites for clients, your primary job should be providing a solution that does not hinder or endanger that client’s business, even if you’re no longer available or involved.
Activating a new theme should wipe out all evidence of the old theme. That’s why people use themes. So if a client can’t get rid of the ad code you stuck in Simple Hooks or the link color you added via Jetpack’s CSS module, you’ve succeeded in making WordPress even less intuitive for an end user. Party foul!
Please don’t underestimate the potential issues you create when you ignore best practices. Here are a few examples:
Plugins Can Be Dangerous
Let’s say I’m building a site for a client and I make a bunch of theme-specific changes to a child theme via a custom CSS plugin or a functionality plugin. (See this article for more about using functionality plugins, which should be used for changes that are not specific to your theme.)
Now let’s say my client has some kind of site issue and deactivates or deletes that plugin. Suddenly the client is calling me, frantic, because the site looks insane.
Alternately, let’s say the client has decided to switch to a new premade child theme from StudioPress. The client activates the new theme but doesn’t realize s/he should remove the plugins I used. Suddenly the client is calling me, frantic, because the site looks insane.
Notice how both of these scenarios involve spending time and energy, both on my part AND the client’s, that could have been saved for something more important.
Clients Sometimes Move On
If a client hires someone else to work on his/her site, is that person going to understand why you ignored StudioPress best practices? Will s/he be able to do what the client requests without spending unnecessary time hunting down where the changes live or figuring out why direct edits are being overridden?
Ask any seasoned developer and they’ll almost always agree – it’s cheaper to build something new than to work on something another developer built. Why? Because it takes ages to decipher what the other person did and how s/he did it.
If we all used the same methods and standards, clients wouldn’t have to dread hiring someone else or making changes to their websites. Best practices are called that for a reason, and we shouldn’t hold clients hostage by making things hard to manage.
Fears (and Bad Habits) are Contagious
Your clients pick up on a great deal from their interactions with you. If you are constantly stressing about child theme version bumps or miniscule CSS changes, the Genesis framework (which you touted as being easy to use) sounds intimidating and finicky.
If you are freaking out about an update like you’re preparing for war, your client will walk away thinking all updates are bad and should be avoided. This is how you find sites running WP 3.0 (released in 2010) in 2016.
If, though, you build quality child themes – whether your own custom ones or modified versions of others – and follow best practices in updating the Genesis framework only, your client will see (correctly) that updates are nothing to worry about and using a child theme makes good sense.
Just say NO to Genesis child theme updates
As I’ve said, if you just really want to update your Genesis child theme, you can. But I hope this post gives you an overview of the reasons not to do so, as well as the potential problems that can arise if you do.
WordPress makes life so much easier than the days of static HTML sites where every single element had to be coded manually. Genesis makes it even simpler. But that still doesn’t mean a website doesn’t require care and maintenance to continue functioning.
Since Genesis themes do not update in the dashboard (because they aren’t supposed to), trying to force them to be update-ready adds an unnecessary layer of complication.
By setting up your sites (or your clients’ sites) properly – which means everything that should be updated can be updated within the dashboard without breaking anything – you are keeping those sites as frustration-free as possible. This benefits everyone and makes the web a better place.