Step 1: Exclude jQuery
Open Settings → WP Rocket → JavaScript & CSS. Right below Load JavaScript deferred you’ll find the Excluded JavaScript Files field. Add this line:
/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js

Careful, there are two fields called Excluded JavaScript Files. The first belongs to Minify JavaScript files. You need the second one, right below Load JavaScript deferred.
Step 2: One-click exclusions, if you use Delay JavaScript execution
If Delay JavaScript execution is on, open the One-click exclusions below it, expand Plugins and tick Elementor, Elementor Pro and Elementor Pro – SmartMenus. If you use Elementor’s lazy loading for background images, also tick Elementor – Lazy Load Background Images.

Step 3: Save and test properly
Click Save Changes and Optimize. WP Rocket clears the cache as part of that. Then test on your phone, like this:
- in a private window, so nothing comes from the browser cache
- don’t scroll, tap the menu first
- reload several times and repeat
Several times matters. The bug doesn’t happen every time, see below.

Why this happens
Load JavaScript deferred moves all scripts to the end, jQuery included. jQuery then reports “ready” while the other scripts are still loading. Elementor starts right away and fires its start signal. If Elementor Pro hasn’t loaded yet at that moment, it misses the signal.
Menu, slider and popup come from Elementor Pro. They are then never activated. There’s no error message, the page looks completely normal, it just doesn’t respond.
It’s a race: sometimes Elementor Pro is fast enough, sometimes not. That’s why the bug is so hard to pin down. How often it went wrong in our lab, 24 fresh loads on a phone each (two rounds of 12):
| jQuery excluded | Enable for CSS background images | Menu and slider work |
|---|---|---|
| no | off | 23 of 24 |
| no | on | 6 of 24 |
| yes | off | 24 of 24 |
| yes | on | 24 of 24 |
With the jQuery line, jQuery loads normally again and only reports “ready” once all other scripts are there. That costs a little load time, 0.4 seconds on a phone for us. In return the page works on every load.
If it still doesn’t work
- Check that WP Rocket really is the cause: add
?nowprocket=1to your page address. WP Rocket then serves it without optimization. If the menu works that way, WP Rocket is the cause. - Turn off Load JavaScript deferred as a test. If the menu works then, an exclusion is missing. If you use Elementor add-ons (menu add-ons, for example), their scripts may need their own exclusions. Many of them are already in the One-click exclusions.
- Delay JavaScript execution without exclusions: in our test the menu only opened about a second after the first tap, and the slider only started after the first touch. The option didn’t make the page any faster. We leave it off with Elementor.
- Server or CDN cache: if your host or a CDN caches as well, clear it there too.
All numbers and the full setup are in WP Rocket for Elementor: every setting measured.
For the technically curious: how we checked
- Lab: WordPress 7.1.4, PHP 8.4, Elementor 4.3.6, Elementor Pro 4.3.2, WP Rocket 3.24 with “Remove Unused CSS”, “Load JavaScript deferred”, LazyLoad and fonts. Reference page with burger menu (Elementor Pro Nav Menu), testimonial slider and popup. Methodology
- Test: two rounds of 12 fresh browsers per variant, phone view, load the page, wait 1.5 seconds, check the slider, tap the menu, check after 1 second whether it is open.
- Proof of the cause: we recorded when
elementorFrontend.init()is called and whenelementorProFrontendexists. In 14 of the 19 failing loads, Elementor demonstrably started before Elementor Pro, for example after 1,828 and 1,849 milliseconds. In the other 5 our measurement showed no difference in order; the jQuery exclusion helped there too. There were no console errors. - The exclusion:
exclude_defer_js=/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js. jQuery and jQuery Migrate then no longer getdefer. - Raw data: raw data of the second round with all loads and timestamps (the first round was only recorded as totals). Checked on November 7, 2026.


