Rebuilt the front end
A custom WordPress theme: one stylesheet, one small script, self-hosted fonts, no jQuery except on the booking page where the plugin needs it. The homepage went from 238 KB to 33 KB of HTML.
Case study · client project
A mountain apartment in Janské Lázně, Czech Republic. It rents through its own site and through Booking.com, in four languages. The site worked — it was just slow, and the owner knew it. This is what I changed and what it measured, before and after.
The result first
Before: PageSpeed Insights on the live site, 16 August 2026. After: Lighthouse 12, medians of three runs on the same live site, 24 August 2026, after the rebuild, the server move and the CDN.
Before / after
Drag the handle. The content is identical — the owner's copy and the owner's photographs, moved onto a layout that gets out of their way.
What was wrong
"The site is slow" turned out to be three unrelated causes. Measuring first meant fixing the right ones, in the right order.
What I did
A custom WordPress theme: one stylesheet, one small script, self-hosted fonts, no jQuery except on the booking page where the plugin needs it. The homepage went from 238 KB to 33 KB of HTML.
The paid Booking Calendar plugin, the hourly Booking.com availability sync and the contact mailing all kept running untouched — a live site with real reservations is not the place to rewrite what already works.
Czech, English, Polish and German, each with its own text file. I audited every page for Czech leaking into translations, and the site now picks the visitor's language from their browser — cache-safe, so it works on cached pages too.
Migrated to a healthier server (5 minutes of downtime), put a free CDN in front so photos come from the nearest edge, and generated every photo at three widths so a phone never downloads a desktop-sized image.
Measured, not asserted
One honest note: the booking page scores 86 on mobile rather than 93. A live availability calendar can't be cached ahead of time, and the plugin brings its own jQuery. I left it that way on purpose — a working booking system beats two points.
I measure first, tell you what's actually slow, and rebuild only what needs it.