You will always achieve the best performance in WordPress with custom themes.
The easiest way to design custom themes is by establishing a theme development workflow based on so-called starter themes.
However you can also simply use a starter theme as-is in some cases, although it might look a bit bland.
Besides this approach, the next best option is to choose a lightweight, well-coded theme that is updated regularly for bugs, patches, and new PHP compatibility. Most WordPress users don’t know how to identity a theme that falls into these categories, which is why we launched the below list of recommendations.
If you choose a well-coded theme, in most cases there should be no need for a page builder plugin, which add a ton of code bloat to your website, hurt performance and security, and make future web design changes much, much more difficult. It can also lead to content lock-in and other related problems.
At the very end of the line you have the worst types of themes — these are extremely heavy themes or “all purpose” or “multi purpose” themes like Avada, Divi, X, and so forth that come pre-bundled with hundreds of features and code snippets. While this can look attractive to newbie users, later on it nearly always becomes a problem for performance, security, or otherwise.
If you really love page builder plugins, make sure to choose a high quality one that offers a free-tier to avoid the worst lock-in situations. Then pair your favorite page builder plugin with a lightweight theme to help reduce some of the code bloat and performance issues.