Buenos días
Me gustaría saber si existe algún tipo de herramienta que pueda simular visitas en mi web con múltiples usuarios/visitantes navegando por la web.
¿Existe algo así? ¿Qué me sugieres?
Gracias
Contenido solo visible a usuarios registrados
Buenos días
Me gustaría saber si existe algún tipo de herramienta que pueda simular visitas en mi web con múltiples usuarios/visitantes navegando por la web. Quiero saber cómo se comporta mi web ya que no se si se debe a algún plugin (estoy buscando el problema pero me cuesta encontrarlo), pero tengo momentos de consumos excesivos en la CPU de mi hosting.
¿Existe algo así? ¿Qué me sugieres?
Gracias
Hola Jose Luis.
La mayor carga que veo es hacia admin-ajax
Si reviso en Gtmetrix veo que la mayor carga es del plugin WooCommerce
Revisa esta entrada del blog y realiza lo que se recomienda:
-> ¿Lentitud en el carrito de compra de WooCommerce? ¡Optimiza!
Revisa también esta entrada donde se explica un poco que es Admin-ajax y como optimizarlo:
Mejora la carga de tu WordPress: admin-ajax.php
Un saludo
Gracias @pepesoler, lo revisaré.
Otra cosa, no estoy seguro pero creo que esos picos ahora me están apareciendo cuando estoy logueado en la web, según unas pruebas que estoy haciendo si no estoy logueado, esos picos no aparecen.
¿Le da esto que comento más sentido a lo de woocommerce que me dices?
Gracias
Hola Jose Luis.
Heartbeat funciona mediante pulsos, es decir, cada cierto periodo de tiempo WordPress envía una petición o “pulso” mediante el admin-ajax.php (esto quiere decir que se ejecuta el admin-ajax.php).
Para entenderlo mejor piensa que Heartbeat es nuestro corazón y si estamos relajados los latidos son menores pero que pasa si estamos realizando ejercicio, los latidos son más frecuentes y nos cansamos, pues eso es lo que pasa con Heartbeat, si son muchas las peticiones que tiene de plugins los latidos serán más constantes con lo que causa unos picos altos de rendimiento.
De forma predeterminada WordPress realiza una petición al admin-ajax.php cada 15 segundos y apenas causa ningún uso de recursos, el problema viene cuando son varios usuarios los que ejecutan procesos PHP con peticiones al admin-ajax.php y varios plugins utilizan de forma intensiva el API de Heartbeat realizando peticiones continuas cada 15 segundos.
Imagínate que tenemos una instalación de WordPress con 30 plugins de los cuales 20 utilizan de alguna forma el admin-ajax.php y vamos a imaginar que uno de los plugins es WooCommerce, uno de los que más utilizan el admin-ajax.php.
En este caso, se estarían ejecutando peticiones al admin-ajax.php continuamente causando un consumo de recursos altísimo y si tenemos tráfico, el consumo de recursos podría ser insostenible llegado a cierto número de visitas.
Por eso es importante mantenerlo más o menos controlado e intentar que esas peticiones no sean constantes aumentando el tiempo en el que realizan.
Un saludo
Muchísimas gracias @pepesoler,
Da gusto leer tus explicaciones.
A ver si consigo solucionarlo con esos artículos que me pasaste. Espero que no requieran de conocimientos técnicos avanzados ya que no soy programador como tú ya imaginarás 😓
Muchas gracias por todo.
Saludos
Hola de nuevo @pepesoler,
Tengo instalado WP Rocket y leyendo el artículo que me comentaste " https://www.webempresa.com/blog/lentitud-carrito-compra-tienda-online-woocommerce.html ", hay algo que no estoy seguro de entenderlo.
Dice " ¡Aviso! Si estás usando algún plugin caché en tu sitio WordPress recuerda que tienes que vaciar la caché para que los cambios se apliquen y al analizar tu web de nuevo te dé resultados fiables. También revisa si tienen la opción de desactivar esta opción de WooCommerce ya que W3 Total Caché y WP Rocket sí lo incorporan."
No entiendo a qué se refiere lo de "También revisa si tienen la opción de desactivar esta opción de WooCommerce ya que W3 Total Caché y WP Rocket sí lo incorporan".
He visto que wp rocket tiene una opción que dice:
Nunca poner en caché estos URLs
¿NECESITAS AYUDA?
Las páginas confidenciales como los URLs de inicio/cerrar sesión deberían ser excluidas de la caché.
Las páginas del carrito, pago y ”mi cuenta” establecidas por WooCommerce serán detectadas automáticamente y excluidas de la caché.
Especificar los URLs de las páginas o de las entradas que no deberían ser copiadas en la caché (uno por línea)
¿Qué debo hacer con eso? ¿A qué se refiere? ¿Que no necesito ni el plugin Code Snippets ni seguir esos pasos?
Bueno, ya me dirás.
Muchas gracias
Hola Jose Luis.
No entiendo a qué se refiere lo de "También revisa si tienen la opción de desactivar esta opción de WooCommerce ya que W3 Total Caché y WP Rocket sí lo incorporan".
Si accedes a las opciones de WPRocket verás que tienes un apartado Heartbeat, revisa que lo tengas seleccionado:
¿Que no necesito ni el plugin Code Snippets ni seguir esos pasos?
Añade también el Snippet que indican en el artículo:
/** Deshabilitar las llamadas Ajax WooCommerce **/ add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11); function dequeue_woocommerce_cart_fragments() { if (is_front_page()) wp_dequeue_script('wc-cart-fragments'); }
WooCommerce ejecuta la función de fragmento de carrito AJAX en cada página del sitio web para actualizar el widget del carrito. Esto se ejecuta incluso cuando no hay productos en la página como pueden ser la página de contacto, blog, etc... Pero claro en esas páginas no nos hace falta no hay ningún producto para añadir, no es posible agregar productos a un carrito de compras en una página específica, como Nosotros, Contacto....
Este código lo que hace es deshabilitar las llamadas Ajax de WooCommerce en esas páginas.
Un saludo
Hola Jose Luis.
Nada, gracias a ti.
Dejo el hilo abierto por si necesitas retomarlo.
Un Saludo
Buenos días @pepesoler,
Ayer leí los artículos que me pasaste y llevé a cabo algunos cambios los cuales me han dado buen resultado en cuanto a puntuación en pingdom, pagespeed y gtmetrix, pero me temo que continúo teniendo esos picos de consumo en la CPU.
Si no me equivoco, ya no aparecen esos consumos de admin ajax que me comentabas, pero como ves en el pantallazo, he tenido picos durante la noche a unas horas en las que no había nadie trabajando en la web.
¿Podrías echarle otro vistazo para ver qué localizas ahora e intentar buscarle una solución?
Muchas gracias
Saludos
Hola de nuevo @pepesoler,
No se si son cosas mías o es simple casualidad, pero "creo" que hay dos situaciones que provocan esos picos de consumos:
Cuando edito páginas con Elementor
Cuando estoy logueado y navego a través del escritorio del usuario en el front end donde los usuarios pueden ver sus reservas, pagos, perfil, etc.
No se si puede servir de algo esta info o tal vez haya sido casualidad.
Muchas gracias
Saludos
Hola José Luis.
En esas horas lo que veo son acceso al Login:
Desde que hicimos la del Heartbeat tuviste alguna caída de la Web ?
Si que es verdad que el tema que estás utilizando consume muchos recursos. Lo que haria, si tienes suficiente espacio en tu cuenta de hosting, es clorar la web e instalar por ejemplo la plantilla Storefront y revisar si con esa plantilla el consumo de recursos disminuye:
-> https://woocommerce.com/storefront
Un Saludo
Hola @pepesoler,
¿Accesos al login? Supongo que serán intentos de fuerza bruta ¿verdad?
Creo que desde que hicimos lo de Heartbeat no he tenido ninguna caída de la web, pero la verdad, no estoy seguro. Creo que no.
Lo que me comentas de probar con otro plantilla, ¿Es solo para ver si es la plantilla? Porque como habrás visto, mi plantilla es de alquileres, con motor de reservas, etc y no me valdría cualquier plantilla estandar.
Ya me dirás.
Gracias
Hola Jose Luis,
Accesos al login no necesariamente son accesos a fuerza bruta, pueden ser clientes que intentan iniciar sesión en su cuenta.
Con respecto al tema sí, es probar si el tema puede ser el que genere el consumo, para ello como comenta Pepe si tienes suficiente espacio en tu cuenta de hosting puedes probar clonar el sitio web y dentro de este clon realizar las pruebas que necesites sin afectar tu sitio web activo.
→ https://www.webempresa.com/blog/clonar-wordpress-en-3-clics-sin-perder-tiempo.html
Un Saludo