Most beginners customise a WordPress theme directly because it feels faster. You tweak a template, add a little CSS, maybe change a function, and everything looks great. Then the theme updates. Suddenly, those changes are gone.
That is exactly the problem child themes solve. A child theme lets you keep your custom work separate from the parent theme, so you can update the parent safely without wiping out your edits. If you are building a site you want to maintain long term, this is one of the first things worth learning.
What is a WordPress child theme?
A child theme is a theme that inherits everything from another theme, called the parent theme. Think of the parent theme as the original house. The child theme is the renovation built on top of it. The house still exists underneath, but your changes live in the renovation layer.
That means the child theme can use the parent theme’s layout, styles, and features while still letting you override only the parts you want to change. When the parent theme gets updated, your child theme stays intact because it lives separately.
Why you should never customise a parent theme directly
Direct edits to a parent theme are risky because theme updates overwrite files. That can erase custom CSS, template edits, and function changes in one update.
The real consequence is not just inconvenience. It can break layouts, remove tracking code, undo design work, and force you to rebuild changes from memory. If you ever plan to update a theme, customising the parent directly is a bad long-term habit.
What a child theme actually contains
At minimum, a child theme usually contains two files: style.css and functions.php.
The style.css file includes a header comment that tells WordPress which parent theme the child depends on. The functions.php file usually loads the parent theme’s styles and can also hold custom snippets. You can add more templates later if needed, but those two files are the core.
How to create a child theme manually
Creating a child theme by hand is straightforward.
- Create a new folder inside
wp-content/themes. Name it something clear, likegeneratepress-child. - Create a
style.cssfile and add the required header comment. - Create a
functions.phpfile to load the parent theme stylesheet. - Upload the folder to your site if you created it locally.
- Go to Appearance → Themes and activate the child theme.
Here is a simple style.css example:
/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.0
*/
The Template line must match the parent theme folder name exactly. If it does not, WordPress will not recognise the child theme.
And here is a basic functions.php example:
<?php
add_action( 'wp_enqueue_scripts', function() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
} );
That is enough for a simple child theme. From there, you can add custom CSS, templates, and PHP overrides as needed.
How to create a child theme using a plugin
If you do not want to build one manually, a plugin is the easier route. Child Theme Configurator is a popular option for beginners because it walks you through the setup and creates the child theme files for you.
This is a good choice if you are nervous about code or want to avoid missing a required file. It is also useful if you want to clone an existing theme setup and then customise it safely.
How to add custom CSS to your child theme
The safest place for custom CSS is the child theme’s style.css file. That keeps your styling in versioned theme files instead of relying on the Customizer, where changes can be harder to manage later.
You can also add CSS through a custom stylesheet loaded by your child theme if you prefer to keep design rules separate. The main point is simple: keep your custom styles inside the child theme, not scattered across parent files.
Can you use Elementor with a child theme?
Yes. In fact, using Elementor with a child theme is a very common setup. Elementor handles page design visually, while the child theme gives you a safe place for site-level code and template tweaks.
If you use Elementor for most of your layout work, you may not need many template overrides. But a child theme is still useful for custom functions, extra CSS, and small PHP changes that should survive updates.
Which themes work best with child themes?
Lightweight parent themes are usually the easiest to work with. GeneratePress, Astra, and OceanWP are all popular because they are flexible, fast, and built to be customised.
Among these, many beginners like GeneratePress because it stays lean and does not fight you when you want to build on top of it. A clean parent theme makes child theme work much easier.
When you do NOT need a child theme
You do not always need a child theme. If you are using a block theme with Full Site Editing, some customisation happens differently through templates, patterns, and the Site Editor. In those cases, the child theme model is less central than it used to be.
That said, if you are working with a classic theme and making code-based changes, a child theme is still the safer default. When in doubt, use one.
Final thoughts
If you plan to customise WordPress beyond the basics, a child theme is not optional. It is the simplest way to protect your work from theme updates and keep your site maintainable.
Start with a lightweight parent theme, create a child theme early, and make all your meaningful changes there. Future you will be glad you did.
Build your WordPress site on a solid foundation.
Kinsta’s managed WordPress hosting makes it easy to develop safely with staging environments, automatic backups, and one-click restores so you can experiment without fear.
FAQ
Does a child theme slow down my website?
No. A child theme adds almost no overhead on its own. Performance depends more on the parent theme, plugins, and your overall setup.
Can I create a child theme for any WordPress theme?
Most classic themes can use a child theme. Some block themes use a different workflow because they rely on Full Site Editing.
What happens if I delete the parent theme?
The child theme will stop working because it depends on the parent. Keep the parent theme installed even if you are not editing it directly.
Do I need a child theme if I only use Elementor?
Not always, but it is still recommended if you plan to add custom code or CSS that should survive updates.
Can I switch child themes without losing my content?
Yes. Your posts and pages stay in WordPress. You may need to reapply some styling or template settings after switching themes.
This post contains affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.


I wish I had read this six months ago. I customised my parent theme directly and when the update came through I lost everything. Took me a whole weekend to redo it. Setting up a child theme right now.
That is such a painful lesson Emily and unfortunately almost every developer has gone through it at least once. The silver lining is you will never make that mistake again. Setting up a child theme from scratch now is the right move. Going forward any customisation you make will survive updates and you will have a proper structure to build on. Future you will be very glad you took the time.
I always used to edit the parent theme directly and then wonder why my changes disappeared after updates. Wish I had read this a year ago.
Thanks for reading, Remy Fontaine. On WordPress Child Theme Explained Beginners, I would start with the basics and then tighten things up once you see how it behaves in practice. If you are already testing it, the main thing is to keep the setup simple enough to debug quickly.
I use Elementor for all my page building. Do I still need a child theme or does Elementor handle all my customisations separately?
Elementor stores its page designs in the database rather than in the theme files, so your Elementor layouts will survive a theme update regardless. However you still need a child theme if you want to add custom CSS, custom PHP functions, or make any changes to template files outside of Elementor. A child theme also protects you if you ever decide to switch page builders or use theme-level features. The short answer is that Elementor reduces how often you need a child theme but does not eliminate the need for one entirely.
Does creating a child theme affect my site’s loading speed? I want to make sure I am not adding unnecessary overhead.
No noticeable impact at all Mei. A child theme is just a small folder with a style.css file and a functions.php file. The performance overhead is essentially zero. If anything a well-structured child theme can make your site slightly more maintainable which means you are less likely to end up with bloated code from quick fixes directly in the parent theme. Speed is determined far more by your hosting, caching, image sizes, and plugin count than by whether you are using a child theme.