01
The theme is a second CMS nobody owns
Once a page builder lands, the layout becomes content — but content nobody can version, test or roll back. The design system lives inside a vendor plugin, and the marketing team can break the checkout flow with a drag and drop.
Every front-end change needs a plugin licence, a CSS override and a prayer.
02
Plugin sprawl is a supply-chain risk
The average commercial WordPress site runs forty to sixty plugins. Each one is code with database access, running on the same origin as checkout. Two of them are usually unmaintained and one is quietly sending newsletters.
A patch cycle you cannot complete and an incident surface you cannot enumerate.
03
The origin sits in front of every request
PHP renders the document, then plugins inject stylesheets and scripts, then the browser discovers there is more to download. Time to first byte is whatever your host feels like. There is no cache in front of the origin because the page is personalised by assumption.
Traffic on launch day is a capacity incident, not a growth story.
04
Editorial and commerce cannot share a page
A long-form feature about a product has to live in one template and a product listing cannot carry an argument. The compromise is always the same: the story becomes a PDF, the product becomes a set of bullet points, and the argument lives in a widget nobody trusts.
The most valuable content on your site earns the least attention.
05
The migration is treated as a rewrite
Platforms get sold as clean-sheet builds, which means the eleven thousand URLs, the accumulated redirects and eight years of accumulated SEO equity all have to be re-earned from nothing. The business case quietly assumes you were starting from zero.
You pay for a new website when you needed a new front end.
06
Nobody owns the rendering strategy
Some pages should be static HTML. Some need to be fresh every request. Some sit in between. Without a decision recorded per route, the default wins — and the default is server-rendering everything through WordPress.
You pay for a database round trip on every page view, forever.