Someone runs PageSpeed Insights on a WordPress site, sees a red score, and the first quote they get back is for a rebuild. Usually the site does not need one.
Four things account for most of the damage on a typical WordPress build, and none of them involve touching the theme.
Start with the image at the top of the page. This is the most common cause of a slow largest-contentful-paint, and it is nearly always a photo exported at 3000 pixels wide sitting in a slot that renders at 800. Resize it, convert it to WebP, and check it is not being lazy-loaded. Lazy-loading the first image on the page is a common plugin default and it delays the exact thing the score is measuring.
Fonts come next. If your text appears in one typeface and then jumps into another a moment later, that is layout shift and it counts against you. Add display=swap to the Google Fonts URL, preconnect to the font host, and cut the number of weights. Most sites load six and use three.
Then the plugins. A contact form plugin typically loads its CSS and JavaScript on every page of the site, including the ones with no form on them. Sliders, galleries and social sharing buttons do the same. Look at what is loading on a page that does not need it, then either restrict it or drop the plugin. Deactivating one thing nobody uses often beats a week of tuning.
Caching is the last one and the one most often half-done. Two things to verify: that pages are actually served from cache to logged-out visitors, and that the cache clears when you publish. A cache that never clears is worse than no cache, because you will lose an afternoon debugging a fix that went live an hour ago.
Two notes on measuring. Use the field data in Search Console rather than a lab score, because the lab runs on a fast machine on a fast connection and your visitors do not. And test a page that matters rather than the homepage, which is usually the most optimised page on the site and the least representative of the rest.
Sometimes a rebuild is the right answer. A theme that loads a page builder shipping forty kilobytes of CSS to render a heading will not be tuned into shape, and neither will a site carrying eight years of plugins nobody can account for. That is a real conversation worth having. It should follow the cheap fixes though, and anyone quoting a rebuild before they have looked at your image sizes has not looked very hard.