Hafen

A Theme Switch in Numbers: A Real WordPress Site Moves to Hafen

On 1 September 2026, flirtuniversity.de switched its theme from Neve to our block theme Hafen. We measured before and after on the same day, with the same method. Here are all the figures, including the ones the switch alone did not improve.

There are plenty of marketing claims about theme speed, and few measurement series from real migrations. So here we document a complete one: flirtuniversity.de, a dating coaching site with 17 years of content, a members area, consent management, video embeds and everything else that accumulates on a WordPress site grown over time, switched from Neve to Hafen on 1 September 2026. No lab setup, no freshly installed demo site. That is exactly why the figures are conservative, and exactly why they are worth something.

The starting point

Neve is not a bad theme, quite the opposite, it is rightly considered one of the faster classic themes. With it, the site sat at mobile Lighthouse scores of 56 to 59, with a First Contentful Paint around 4 seconds. The reason is not carelessness but construction: a classic theme ships its own CSS framework, its own scripts and its own settings layers, which load on every page whether they are needed or not.

Hafen comes from the other direction: a block theme in which layout, colours and typography live in theme.json and WordPress itself generates the CSS it needs. In terms of payload, that means two requests and 7 kilobytes over the wire. The question of this case study was how much of that survives on a real, fully loaded site.

The method, so the figures can be verified

Measurements were taken with Lighthouse 13.4.1 in headless Chrome, on the same machine, on the same day: Neve at midday before the migration, Hafen straight after going live with a freshly cleared and rewarmed cache. Three runs per page and device category, with the median of each metric counted. Four page types cover the site: home page, blog overview, an article and a course page with a video hero. These are lab values, not field data, but they were collected under identical conditions, and that is all that matters for a comparison.

What the theme switch alone delivered

On mobile, where it hurts, the pure switch looked like this, Neve against Hafen in each case, same day, same plugin stack:

Page (mobile)ScoreFirst Contentful PaintJavaScript
Home page56 → 713.9 s → 1.3 s621 → 382 KB
Blog overview58 → 763.8 s → 1.3 s599 → 396 KB
Article59 → 774.1 s → 1.3 s638 → 398 KB
Course page57 → 713.9 s → 1.4 s599 → 359 KB

On top of that come 22 to 38 per cent fewer requests, a Total Blocking Time cut in half on the home page and a Largest Contentful Paint that fell by 29 to 44 per cent. Layout stability stayed at 0.00. Desktop was already green under Neve and stayed green, with 23 to 34 per cent less page weight.

The most important figure is the First Contentful Paint: around 4 seconds became 1.3 seconds on every page measured. That is the moment visitors first see something instead of waiting on a white screen, and it depends almost entirely on how much CSS and JavaScript the theme pushes in front of rendering.

The honest part: what the switch did not solve

The remaining 360 to 400 kilobytes of JavaScript come almost entirely from the plugin stack: members area, consent management, analytics, video embeds. A theme switch does not clean up that layer, it merely reveals that it carries the real weight. And the Largest Contentful Paint still stood at 4 to 6 seconds on mobile even under Hafen, because the largest element on the most important pages is a video poster that was only fetched later via JavaScript. A light theme does not rescue heavy content, we have written that down before, and this measurement confirms it.

Round two: what was still possible on the new theme

The switch was therefore followed by a second round, this time focused on the content and the loading behaviour, all things that only work cleanly on the tidied-up foundation:

  • Poster preload for the video heroes: the preview image of the largest element is loaded via preload with high priority and shown immediately as a CSS background, instead of waiting for the embed script.
  • Early connection setup to the analytics hosts via preconnect, which saves the DNS and TLS handshake in the critical path on mobile connections.
  • content-visibility for sections below the fold: the browser only renders what comes into view.
  • A script diet: a reviews widget now loads only on the home page, where it is actually embedded, and the auto ads scripts of a deactivated advertising account were removed from the site entirely.

The result on the course page, the hardest case with its video hero: mobile score from 71 to 86, with the Largest Contentful Paint falling from 5.2 to 4.0 seconds. The article rose from 77 to 86, the blog overview from 76 to 80, and the home page held its score while improving its loading path and weight. JavaScript dropped noticeably once more, to 215 to 254 kilobytes per page. Across both stages together, that means mobile scores of 56 to 59 under Neve became 71 to 86, with the content unchanged.

What flowed back into the theme

For us, the migration was two things at once, a client project and a stress test of our own product. A handful of findings from the migration went straight into theme development and ships with the upcoming version Hafen 0.9.0: the blog overview gained a magazine grid with a featured card, posts without a featured image received a designed fallback, and the pagination got touch-friendly targets. What used to be patched with CSS on the client site becomes standard for everyone who installs the theme with the next update. That is how dogfooding is supposed to work: the case study improves the product, not just the one site.

What you can take away from this

If you are considering a theme switch, three things from this migration carry over. First: measure before, measure after, same method. Without before figures, you will not know afterwards whether the effort paid off. Second: the switch improves the foundation, not the content. Heavy images, video embeds and plugin scripts come along with you, they simply stand out more on the fast foundation, and that is exactly when the second round pays off. Third: content stays, layouts move. Header, footer and overview pages have to be rethought, while the texts and images themselves remain untouched in the database. How to speed up a slow site independently of the theme is covered in our ten-step guide.

The theme from this case study

Hafen is our free block theme in the official WordPress directory: two requests, 7 kilobytes, no external calls. The improvements from this migration are on their way into the next update.

Hafen on WordPress.org

Frequently asked questions

Is any content lost when switching to a block theme?

No. Posts, pages and images live in the database and remain untouched when the theme changes. What does need to be rebuilt is everything the old theme handled through its own settings: header, footer, menu assignments and layout defaults. In this case study, that meant the footer, the blog overview and a handful of template assignments. The content itself was not touched.

Do these figures apply to my website as well?

The direction yes, the magnitude not automatically. The effect depends on how much CSS and JavaScript your current theme loads and how heavy your plugin stack is. The site measured here kept a large plugin stack, so the comparison shows the pure theme effect. On leaner sites the jump is bigger: in another migration to Hafen, JavaScript dropped by 97 per cent.

Why is the First Contentful Paint the most important figure in this case study?

Because it measures when visitors first see something, and because here it depends almost entirely on the theme. The Largest Contentful Paint on this site hangs on large video posters, in other words on the content. The drop from around 4 seconds to 1.3 seconds for the first visible content is the share the theme contributes, and that is exactly what a theme case study should focus on.

Is a fast theme enough, or do I still need to optimise afterwards?

The theme lays the foundation, nothing more. In this case study, the switch lifted the mobile scores by 14 to 18 points, and the second round on the new theme added a further measurable gain with poster preload, early connection setup and content-visibility. Images, embeds and plugins remain your responsibility, no matter how light the theme is.

Back to blog A post by hafenstudios