A theme that contains its builder behaves differently to one that does not
This is the distinction that decides most of what follows, and almost nobody is told it when they buy. With YOOtheme Pro, and with Divi when it is run as a theme rather than as the standalone plugin, the thing that renders your layouts is the theme itself — change the theme and the layouts do not travel, because the software that understood them has gone. With Elementor, WPBakery or Beaver Builder the builder is a plugin sitting on top, so the theme underneath can be swapped with far less consequence. Neither arrangement is better. They fail differently, they cost differently to leave, and being clear which one you are in is the difference between a theme change being an afternoon and being a migration.
Child themes are where your customisations should live, and usually do not
On a site we are handed, custom CSS and PHP have almost always been written into the parent theme, into a plugin sold as a code snippets manager, or into the WordPress customiser where nobody will ever find it again. The first of those is destroyed by the next theme update, which is why so many sites are running a theme three years out of date: somebody learned once that updating breaks things and stopped. Moving the customisations into a child theme is unglamorous work that turns updates back into a routine rather than a risk, and it is usually the first thing worth doing on an inherited site.
Block themes exist and are not automatically the answer
WordPress has spent several years moving toward block themes and full site editing, and the official advice is that this is where everything is going. For a new content-led site with no builder history, that is fair and we will build it that way. For an existing site with two hundred pages laid out in a builder your team knows, converting is a genuine project with no immediate return, and the honest recommendation is usually not yet. We would rather tell you the boring answer than sell you the current one.
When a custom theme is cheaper than another licence
A builder earns its keep when people who are not developers edit the site regularly. When nobody has touched a page in two years, the licence, the update burden and the page weight are being carried for nothing, and a small purpose-built theme is both faster and cheaper to run. The test is not technical taste, it is how often somebody actually opens the editor. Where the answer is rarely, a custom build typically starts around $2,500 and removes a recurring cost rather than adding one.
Speed on a theme-led site is mostly about what the theme loads
Themes that carry their own builder, framework, icon library and slider tend to load all of it on every page whether or not the page uses any of it. Caching hides that on a second visit and does nothing for the first. The work that moves the number is unregistering what a page does not use, loading heavy components only where they appear, and cutting font and icon sets down to what the design actually references. That is true of a theme-integrated builder and a plugin one alike, but there is generally more of it to find on the former.
Updating a theme that renders everything
On an ordinary site a theme update is among the safer things you can apply. On a site where the theme also renders every layout it is one of the riskier ones, because it can change every page at once. The practical answer is the same in both cases and only matters in the second: apply it on a copy first, look at the templates that carry the most traffic, then promote it. Our care plans do this as a matter of course rather than as an extra.
What theme work costs
Discrete pieces — a child theme, a custom template, a speed pass, moving customisations somewhere they will survive — start at $300 and are quoted fixed once we can see the site. A purpose-built theme is typically around $2,500. Blocks of hours run at $750 and $1,400, or $165 hourly, and a first review is $249 and credited against the work. Ongoing care starts at $159/mo. Same published rates as everything else here.