I build with Elementor, Divi and Oxygen regularly, so this is not an argument that page builders are bad. They are fine for a large share of websites. But they have a specific breaking point, and once you reach it no amount of optimisation gets you back under it.
You have reached it when you publish often enough that rebuilding layouts by hand is eating hours, when your load time is measurably costing conversions after the cheap fixes are done, or when your design has outgrown what the builder can express without a fight.
A theme built specifically for your site: your components defined once in clean semantic HTML, then exposed to you as labelled editable fields. Not a canvas with seventeen styling options per element, but fields named for your business. Hero headline. Service area. Price from. Before image. After image.
The consequence surprises people: this is usually easier for a non-technical editor than a builder, not harder. There is no layout to accidentally break, because the layout is structural rather than something you reassemble each time.
Where you need behaviour rather than layout, that becomes a plugin: a booking rule, a quote calculator, an integration with the software you already run the business on. Kept as a plugin rather than buried in the theme, so changing your design later does not put the functionality at risk.
Audit first. I want to know the builder is genuinely the constraint before you pay to remove it. Most slow builder sites I am asked to rebuild are slow because of oversized images, missing caching, twenty-eight plugins and cheap hosting. If that is your situation I will tell you, and fixing it costs a fraction of a rebuild.
Convert templates, not pages. Where a rebuild is right, we start with the templates that repeat: the blog post, the service page, the location page. Converting one template fixes many pages at once, which is where the return is clearest. URLs stay unchanged, so there is nothing to redirect and nothing to lose.
Keep the builder during transition. It stays installed until every page that needs it has been converted. Campaign and landing pages are often best left in the builder permanently, because they change constantly and benefit from you being able to edit them yourself at short notice.
Plugin work is rarely about adding features for their own sake. It is nearly always about removing a manual step that someone in your business is currently doing by hand every day.
Built as plugins rather than theme code, so redesigning the site later does not put any of it at risk. That separation is unglamorous and it is the difference between a site you can evolve and one you have to replace.
This is what I build most often and it gets discussed far less than it should. Custom theme for everything structural and repeated, since those pages carry your traffic and must stay fast and consistent. Builder kept available for the experimental surface: seasonal offers, campaign pages, anything that has to exist by Thursday.
You get performance where it matters and autonomy where that matters. The one cost is that two systems live in one site, so we agree a clear rule about which pages belong to which.
Yes, and you should insist on it with any developer. You edit labelled fields for every piece of content. What you cannot do is rearrange the underlying layout, which is exactly why the design stays intact.
A fair question. I use standard practices and ACF rather than a proprietary system, document the components, and you hold the code. Any competent WordPress developer can pick it up. Work you cannot leave is not work you chose.
Typically four to eight weeks depending on how many distinct templates you need. Converting an existing site template by template is often better, because it spreads the cost and you see the benefit on your highest traffic pages first.
If your site feels slow or your publishing workflow is painful, send me the site. I will tell you whether a custom theme is genuinely the answer or whether something much cheaper will fix it.