Know the feeling? You build sites for clients, polishing every detail, and then you look at your own site and… well. „I’ll fix it later”, „It kind of works”, „No time right now”.
That was me for the past few months. Desktop looked great – 98/100 in PageSpeed. But mobile? 67/100. Ouch. And since I build sites for others, I could not keep ignoring my own – my potential clients browse mostly on their phones too. So I decided to fix it. Here is what I did.

The starting point – not pretty
Mobile 67/100. When I saw the details, I felt sick:
- First Contentful Paint: 4.2s (should be under 1.8s)
- Largest Contentful Paint: 5.8s (should be under 2.5s)
- Cumulative Layout Shift: 3.2s
That last one was the worst. CLS measures how much the content „jumps” while loading. 3.2s meant a user aiming for a button would suddenly see the whole content shift – and click who knows what. Not what a good site is about.
Step 1: swap the cache – from W3 Total Cache to WP Fastest Cache
I had W3 Total Cache, but… honestly, I never configured it properly. Tons of options, complex settings – „turn it on and forget”. The result? The cache barely worked.
I started over: removed W3 Total Cache and installed WP Fastest Cache – a simpler plugin that „just works”. I enabled cache, HTML and CSS minification, CSS file combining, a separate cache for mobile (important!) and disabling emoji. I did NOT enable JavaScript minification or combining – Elementor does not like such experiments.
Step 2: Kadence has hidden treasures
I have used the Kadence theme for a long time, but only now did I check the „Performance” section in the settings. So many options! I enabled the optimized group block, local Google Fonts (faster and GDPR-friendly) and disabling the duplicate sitemap (Yoast does its own anyway).
Result: the score jumped to 86. Then dropped to 82, back to 84… PageSpeed has moods and results swing plus or minus 5 points. That is normal.
Step 3: fixing CLS
The biggest problem was CLS – 3.2 seconds of jumping content. After a little detective work I found the culprit: the avatars in the Google reviews. They had no set dimensions, so the browser did not know how much space to reserve – content loaded, then the avatars, and boom, everything shifted.
The fix? A few lines of CSS in Appearance → Customize → Additional CSS:
.wprevpro_t1_IMG_4 { width: 50px; height: 50px; }
.wprevpro_t1_outer_div_0 { min-height: 250px; }
Result: CLS dropped from 3.2s to… 0. Zero. Perfect. Well worth it.
Step 4: Google Analytics – do I really need it?
PageSpeed was screaming about 126 KB of unused JavaScript. Most of it was Google Analytics. I asked myself: when did I last open GA? Cannot remember – for basic stats I mostly use Google Search Console. I disabled GA via Complianz (I had set it up there once and… forgotten). Result: minus 75 KB of JavaScript, the site loads noticeably faster.
Step 5: plugin cleanup – less is more
I went through the plugin list and threw out what I do not use. The main one: Akismet – why keep comment-spam protection when comments are off? I also removed a plugin I cannot even remember installing. What stayed is what I actually use: Polylang, UpdraftPlus and a few other essentials.
The results – it was worth it
BEFORE: mobile 67/100 · FCP 4.2s · LCP 5.8s · CLS 3.2s (a disaster!)
AFTER: mobile 79-84/100 (avg ~82) · FCP 2.3s (45% better!) · LCP 4.0s (31% better!) · CLS 0 (perfect!). Desktop stayed at 98-99/100 – it was already good.

What I learned
- Site builders often forget their own sites. We focus on client projects and our own sites wait „for later”. Only when I finally sat down did I see how easy it was to fix.
- Cache is a must-have, not a nice-to-have. Plus 12 points in 30 minutes? The best time investment in optimization.
- CLS is a silent conversion killer. Nobody says „hey, this site has high CLS” – people just get annoyed that content jumps, and leave.
- PageSpeed is not constant. Results swung between 79 and 86. That is normal – the trend matters, not a single score.
- 84/100 is a great score for a real site with reviews, fonts and all the features. You do not have to chase 100 at all costs.



