A CMS is comfortable for editors, but PageSpeed often pays for dozens of plugins, huge CSS, and deferred JS. For landings and catalogs with stable content, a static MPA is usually calmer and faster.
Why static wins
- HTML ships immediately — no PHP on every view
- No runtime plugins injecting scripts into <head>
- CDN or host caching behaves predictably
Vite MPA without bloat
Multiple HTML entries, shared React shell components, one lean bundle per page. Images get width/height and loading="lazy". Fonts stay on the system stack — or one file, not an eight-weight family.
Pre-ship checklist
Mobile Lighthouse, canonical + sitemap, one h1 per page, visible focus states. If you need a form — a small PHP file under public/api beats a heavy SaaS widget.