WP Rocket

El menú de Elementor no funciona tras WP Rocket: la solución

Imagen de portada: el menú de Elementor no funciona tras WP Rocket

Paso 1: excluir jQuery

Abre Ajustes → WP Rocket → JavaScript & CSS. Justo debajo de Cargar archivos JavaScript de manera diferida está el campo Excluir archivos JavaScript. Añade esta línea:

/jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js
WP Rocket, Archivos JavaScript con jQuery en Excluir archivos JavaScript
JavaScript & CSS → Archivos JavaScript: la línea va en el segundo campo «Excluir archivos JavaScript», justo debajo de «Cargar archivos JavaScript de manera diferida»

Ojo: hay dos campos llamados Excluir archivos JavaScript. El primero pertenece a Minificar archivos JavaScript. El que necesitas es el segundo, justo debajo de Cargar archivos JavaScript de manera diferida.

Paso 2: exclusiones con un clic, si usas Retrasar la ejecución de JavaScript

Si Retrasar la ejecución de JavaScript está activado, abre debajo las Exclusiones con un clic, despliega Plugins y marca Elementor, Elementor Pro y Elementor Pro – SmartMenus. Si usas en Elementor la carga diferida de imágenes de fondo, marca también Elementor – Lazy Load Background Images.

WP Rocket, Exclusiones con un clic con Elementor y Elementor Pro
JavaScript & CSS → Retrasar la ejecución de JavaScript → Exclusiones con un clic → Plugins

Paso 3: guardar y probar bien

Haz clic en Guardar Cambios y Optimizar. Al hacerlo, WP Rocket vacía la caché. Después prueba en el móvil, así:

  • en una ventana privada, para que no se use nada de la caché del navegador
  • sin desplazarte, toca primero el menú
  • recarga varias veces y repite

Lo de varias veces es importante. El fallo no aparece siempre, mira más abajo.

Dos móviles con la misma página de Elementor después de tocar el menú: a la izquierda el menú sigue cerrado, a la derecha, con jQuery excluido, está abierto
Nuestro laboratorio: a la izquierda sin la exclusión, a la derecha con ella. Misma página, mismos ajustes, solo cambia la línea de jQuery.

Por qué pasa

Cargar archivos JavaScript de manera diferida lleva todos los scripts al final, también jQuery. jQuery avisa entonces de que está «listo» mientras los demás scripts siguen cargándose. Elementor arranca al momento y lanza su señal de inicio. Si Elementor Pro aún no se ha cargado en ese instante, se pierde la señal.

El menú, el carrusel y la ventana emergente vienen de Elementor Pro, así que nunca se activan. No hay ningún mensaje de error y la página se ve normal, simplemente no responde.

Es una carrera: unas veces Elementor Pro llega a tiempo y otras no. Por eso cuesta tanto encontrar el fallo. Con qué frecuencia falló en nuestro laboratorio, 24 cargas nuevas en el móvil en cada caso (dos rondas de 12):

jQuery excluidoHabilitar para imágenes de fondo en CSSEl menú y el carrusel funcionan
nodesactivado23 de 24
noactivado6 de 24
sídesactivado24 de 24
síactivado24 de 24

Con la línea de jQuery, jQuery vuelve a cargarse de forma normal y solo avisa de que está «listo» cuando todos los demás scripts han llegado. Eso cuesta algo de tiempo de carga, en nuestro caso 0,4 segundos en el móvil. A cambio, la página funciona en todas las cargas.

Si sigue sin funcionar

  • Comprueba que la causa es WP Rocket: añade ?nowprocket=1 a la dirección de tu página. Así WP Rocket la sirve sin optimizar. Si el menú funciona de esa forma, la causa es WP Rocket.
  • Desactiva Cargar archivos JavaScript de manera diferida para probar. Si el menú funciona entonces, falta una exclusión. Si usas complementos de Elementor (por ejemplo, complementos de menú), puede que sus scripts necesiten exclusiones propias. Muchos ya están en las Exclusiones con un clic.
  • Retrasar la ejecución de JavaScript sin exclusiones: en nuestra prueba, el menú tardaba alrededor de un segundo en abrirse tras el primer toque y el carrusel no arrancaba hasta el primer toque. La opción no hizo la página más rápida. Con Elementor la dejamos desactivada.
  • Caché del servidor o de una CDN: si tu hosting o una CDN también guardan caché, vacíala allí también.

Todas las cifras y la configuración completa están en WP Rocket para Elementor: cada ajuste medido.

Para curiosos de la técnica: cómo lo comprobamos

  • Laboratorio: WordPress 7.1.4, PHP 8.4, Elementor 4.3.6, Elementor Pro 4.3.2, WP Rocket 3.24 con «Eliminar el CSS no utilizado», «Cargar archivos JavaScript de manera diferida», LazyLoad y fuentes. Página de referencia con menú hamburguesa (Nav Menu de Elementor Pro), carrusel de opiniones y ventana emergente. Metodología
  • Prueba: dos rondas de 12 navegadores nuevos por variante, vista de móvil, cargar la página, esperar 1,5 segundos, comprobar el carrusel, tocar el menú y comprobar al cabo de 1 segundo si está abierto.
  • Prueba de la causa: registramos cuándo se llama a elementorFrontend.init() y cuándo existe elementorProFrontend. En 14 de las 19 cargas que fallaron, Elementor arrancó de forma comprobada antes que Elementor Pro, por ejemplo a los 1828 y 1849 milisegundos. En las otras 5 nuestra medición no mostró diferencias en el orden; también ahí ayudó la exclusión de jQuery. No hubo errores de consola.
  • La exclusión: exclude_defer_js = /jquery-?[0-9.](.*)(.min|.slim|.slim.min)?.js. Así jQuery y jQuery Migrate ya no reciben defer.
  • Datos en bruto: datos en bruto de la segunda ronda con todas las cargas y marcas de tiempo (de la primera ronda solo se guardaron los totales). Comprobado el 7 de noviembre de 2026.

Ben Marten

Ben Marten testet WordPress-Plugins im eigenen Labor auf Shared Hosting und schreibt auf, was die Messungen zeigen: mit Zahlen, Einstellungen zum Nachbauen und einer ehrlichen Empfehlung.
Menú

Temas

Benchnode

Legal

Elegir idioma