Share:

Notes on the phone (night, WordPress, WoodMart, WP Rocket, PageSpeed and some beer)
22:31
Visited on mobile PageSpeed. 56/100.
Of course. Great. I love pain.
22:38
I ask AI: what to do with WoodMart?
He confidently answers:
— “Enable Galaxy Mode in WP Rocket → Performance → Experimental.”.
Me: Where? There is no such thing.
— “Yes, there, next to Instant Warp.”.
I look at the monitor, the monitor looks at me. The beer looks at all three of us.
22:47
Ok, let's go another way.
The AI says: “In WoodMart, disable Mega Defer Styles in Theme Settings.”.
Invented button #2 for the evening.
23:02
Decided to "get serious":
insert some kind of “lightweight” code into functions.php that “automatically removes all unused CSS that contradicts the dignity of your site.”.
The AI adds: “100% is working.”

After “update file,” the admin breathes like an asthmatic on a climb.
The site is alive, but it's hurting. Me too.
23:19
A heroic voice in my head: “let’s write our own plugin — rocket-boost-super-critical.”.
File created. Activated.
The plugin doesn't do anything, but it sounds awesome. But the site started loading worse.
Magic.
23:33
I'm taking it all back.
The AI says, “Oh, you’re doing great! That’s how it should have been.”
Thank you, Captain Obviousness.
23:48
WoodMart: enable “Disable Gutenberg CSS”, “Disable emoji”, “Load Google Fonts Locally”...
The AI says: “Be sure to enable HyperBoost Ajax Killer.”.
I wipe away a tear. This doesn't exist.
00:06
WP Rocket.
— “Enable Remove Unused CSS.”
Turning it on.
— “And also Delay JS.”.
Turning it on.
— “And Preload to everyone, everything and everywhere.”
I don't turn it on. I still love life.
00:21
CLS jumps through the WoodMart slider and product swatches.
AI: “Just add min-height: auto-important;”

auto-important sounds like a shamanic spell — but unfortunately, it's not CSS.
00:37
I came up with my own checklist with a trigger:
— If the item sounds like “space regime” — don’t touch it.
— If the AI gives a 100% guarantee — don't touch ×2.
— If you want to insert code into functions.php at 00:37 — go get a beer.
00:52
I do normal things that aren't trendy, but work:
— I disable unnecessary WoodMart widgets (ajax search live, if not needed)
— I remove the carousel, put a static image for the mobile hero
— in WP Rocket I add an exception to jquery.min.js, wc-cart-fragments, woodmart-theme.min.js from Delay JS
— I collect critical CSS of pages (not the entire site with one knife)
— fonts locally, font-display: swap
— preload on the main font and main image of LCP
01:11
Mobile PageSpeed jumped to 84.
AI writes: “I told you so.”
You didn't say anything, buddy. I just stopped believing you.
01:28
I look out the window — the moon, the Lexus, silence.
And I think: sometimes the best optimization is to turn off non-existent checkboxes and return to what really makes an impact.
01:44
Tomorrow I'll finish the LCP on the hero picture, and it will be 90+.
Today is Heineken and sleep.
Shi, don't write to me until morning.

After going through all this agony, non-existent modes and AI advice, I realized one thing: only basic, proven things work. Here is my final, proven WoodMart and WP Rocket optimization plan that took me from the “swamp” of 56 points to the clean PageSpeed zone. No magic and “Hyper Turbo Mode”

Why PageSpeed is poor on mobile at WoodMart

  • Too heavy a hero (slider, video, large images) → bad LCP.
  • Default Google Fonts with blocking loading → FOIT/long display.
  • WooCommerce/theme JS interfering with caching and causing delays.
  • CLS via sliders, carousels, missing width/height or aspect ratio.

Optimization plan (WoodMart + WP Rocket) — short and to the point

1) LCP: Make the first screen easy

  • On mobile — static banner instead of slider (seriously, this is half the battle).
  • Fix the height of the hero container: minimum ~min-height: 60vh; or ask aspect ratio.
  • Hero image in WebP/AVIF, without “giants”: 900–1200px on the long side for mobile.
  • Add a preload to the LCP image (only one, the main one):
    <link rel="preload" as="image" href="/path/hero.webp" imagesrcset="/path/hero-900.webp 900w, /path/hero-1200.webp 1200w" imagesizes="(max-width: 600px) 100vw, 600px">

2) WP Rocket: Safe Settings That Give You + Points

  • Cache: Mobile cache is enabled.
  • File Optimization → CSS: Minify. Remove Unused CSS — test. If something breaks, it's better to provide critical CSS manually (example below).
  • File Optimization → JS: Minify + Delay JS. Add exceptions (so as not to break the thread/topic):
    • jquery(.min)?.js
    • wc-cart-fragments
    • woodmart-theme(.min)?.js
    • Payment/analytics scripts that should work immediately
  • Media: Lazyload for images and iframes. Not LCP picture.

3) WoodMart: turn off the unnecessary, take the useful

  • Performance: local download of Google Fonts, font-display: swap, minimize the number of outlines (2–3 weights).
  • Disable modules you don't use (live search, wishlist/compare, heavy carousels).
  • For a mobile header, there are fewer elements and animations.

4) Fonts: fast and without “blinking”

  • Put woff2 locally and add a preload to the main file:
    <link rel="preload" as="font" href="/fonts/Inter-regular.woff2" type="font/woff2" crossorigin>
  • CSS connection with font-display: swap (so that the text does not disappear):
    @font-face{  font-family:"Inter"; src:url("/fonts/Inter-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap;  }
    

5) WooCommerce: Little things that save seconds

  • Add a Delay JS exception for wc-cart-fragments (the basket and mini-basket will breathe evenly).
  • Disable features that you don't need (quick view, comparison, unnecessary widgets).

6) Images, CDN and lazyload

  • Convert to WebP/AVIF, control the size (no more than 2–5 MB on mobile).
  • Check srcset/sizes, so that the phone does not drag desktop images.
  • Lazyload for everything except LCP. For banners/placeholders, add transparent stubs to avoid jumping.

7) Anti-CLS: stable layout without jumps

  • For images - required width/height or aspect ratio.
  • Sliders/carousels: set container height, disable autoplay on mobile.
  • Fonts — only from swap and close in metric fallback.

8) Critical CSS: point by point, not “knife all over the site”

Create a short critical CSS for the main (hero, header, first screen) and add it to :

/* приклад мінімального критичного шару */
header{min-height:64px}
.hero{min-height:60vh; display:grid; place-items:center}
.hero h1{margin:0 0 .5rem}
.btn{display:inline-block; padding:.8rem 1.2rem}

All other styles can run asynchronously. This way you save LCP and visual readiness.

9) What exactly not to do at midnight 🙂

  • Do not insert untested “magic” snippets into functions.php.
  • Do not enable “Remove Unused CSS” + aggressive combinations at the same time if the site is large and heterogeneous.
  • Don't believe advice about non-existent toggles in plugins (yes, AI sometimes fantasizes).

A small pre-release checklist

  • LCP on mobile < 2.5 s on the main templates (main, category, product card).
  • CLS < 0.1 (static dimensions, no “jumping” carousels).
  • Delay JS with exceptions for critical scripts (jQuery, cart fragments, theme scripts).
  • Fonts locally + preloaded + swap.
  • Image grid works, but LCP doesn't not lazy.

In short, in human terms: less magic — more control. We calmly remove everything unnecessary, fix the first screen and let the page “breathe” without heavy scripts. Yes, sometimes you want to click on the non-existent “Hyper Turbo Mode” checkbox, but it’s better to double-check LCP and Delay JS exceptions.


Need a helping hand? If it's hard to figure out all this, just contact us for a free consultation - they will explain in detail, and if you wish, they will do everything for you to make your website really fly:
https://speedwppro.com/uk/bezplatnyi-audyt/