The brief
"Our store is slow." LCP was 4.8 seconds. The install was twelve years old, had 74 plugins, and the owner was adamant that we could not rebuild it because "the content is in there."
It never needed a rebuild. It needed an audit.
What we actually found
- 17 duplicate slider plugins loaded on the same pages. Eleven of them were unused.
- Object cache disabled, so every product page ran forty identical database queries.
- 72 unoptimised images at their original camera resolution, served as 4MB downloads.
- A cron job spawning a full product re-index on every page load.
- PHP 7.4 — three versions behind, with known unpatched issues.
What we changed
- Removed 11 unused plugins, consolidated the rest to 19.
- Enabled persistent object caching with Redis, warmed on deploy.
- Regenerated every thumbnail at the sizes the theme actually requests.
- Moved the re-index to a real WP-Cron schedule, not page load.
- Upgraded to PHP 8.3 with OPcache — and tested checkout thoroughly before going live.
Result: LCP 4.8s to 1.1s, zero lost orders, and the owner kept every single line of content.
The uncomfortable truth
Most "we need to rebuild in Next.js" conversations are a performance problem wearing a strategy costume. Audit first. Rebuild only when the audit genuinely says so.