Admin-Ajax Ralentización web en WordPress RESUELTO

Seguramente, si usas el CMS WordPress, es posible que hallas sufrido problemas de ralentización en tu página web, algunos tendrán fácil solución, sin embargo otros harán que te tires de los pelos o incluso lances el ordenador por la ventana, si esto no os pasa, es posible que sea yo el rarito. Todo esto viene por que hace poco se produjo una ralentización en la carga de mi web considerable producida por un archivo llamado Admin-ajax.php. Inmediatamente me puse a buscar la solución al problema, en páginas tanto en ingles como en español y no encontré información al respecto. Al final conseguimos resolver el conflicto. Por esta razón quiero hacer esta guía para que lo tengáis un poco mas fácil que nosotros. Espero que os sirva de ayuda.

Qué es y cómo funciona Admin-ajax

heartbeatEn 2013 WordPress lanzó su actualización 3.6 en la que introducían varios cambios notables, entre ellos la API Heartbeat (latidos de corazón) la cual manda señales en periodos de 15, 30 y 60 segundos al archivo admin-ajax.php, situado en el directorio wp-admin/admin-ajax.php, lo que permite a WordPress comunicarse con el navegador del usuario. Esto habilita diferentes recursos dentro de WP como funciones de autoguardado en las entradas y las páginas, la posición de los widgets, los widgets de autentificación de usuario, etc… para que no sea necesaria la recarga de la web. Todo esto se produce en el Backend de WP. Muchos Plugins WordPress utilizan Ajax para su funcionamiento, como por ejemplo Visual Composer, Sliders, Woocommerce y un larguísimo etc. Por eso es importante tener claro cual es su función, como puede perjudicarnos y como podemos resolver este problema.

Si quieres mas información puedes entrar aquí: Raiolanetworks.

Problemas comunes con el tiempo de carga de una web

Conociendo qué es y como funciona Heartbeat y Admin-ajax, debemos saber si son los responsables cuando una web se ralentiza, ya que puede ser por motivos dispares. Vamos a utilizar una serie de herramientas para comprobar el tiempo de carga de nuestra web y ver qué repercute en ella.

Errores típicos que aumentan el tiempo de carga de una web:

  • Imágenes
  • CSS
  • Javascript
  • Servidor
  • Recursos Externos
  • Actualizaciones

La respuesta del servidor dependerá del servicio Hosting contratado, ya sea servidor compartido, VPS, o servidor privado. La carga de CSS y Javascript dependerá del tema que uses y si utilizas algún tipo de maquetador visual, Slider, etc. No menos importante, es tener las imágenes optimizadas, puedes utilizar diferentes plugins para ello.

Herramientas de comprobación de velocidad y errores

Para medir los tiempos de carga de tu web, lo mejor es contrastar los datos con diferentes herramientas. Ten en cuenta si tienes activado el caché de la página y las cabeceras que indican la caducidad al caché del navegador.

Tool.pingdom:

Pingdom Logo

Su funcionamiento es tan fácil como introducir la Url en el campo correspondiente, seleccionar la ciudad desde donde quieres que haga el chequeo y presiona Start Test. Una vez terminado, podemos ver el rendimiento de la página, velocidad de carga y tamaño de esta entre otros. Lo que realmente nos interesa es la velocidad de carga y qué recurso es el que produce el aumento de tiempo de carga. Hacemos Scroll hasta la sección File Request, donde aparece cada uno de los procesos, acompañado de una barra de colores a su derecha, el color que nos interesa es el amarillo que indica “Wait”, si este es muy alto, seguramente sea el motivo que retiene el proceso de carga de nuestra web. En la captura de pantalla más abajo, el archivo Admin-ajax.php aparece con un tiempo de espera bastante elevado. Esto no debería suceder, estamos ante un error que debemos solucionar.

 

Error Admin-ajax.php en WordPress

Giftofspeed

Giftofspeed-logo

El funcionamiento es tan sencillo como el de Tool.pingdom, escribe la Url, ciudad y pulsar “Check”. Abajo aparecerán datos parecidos a los de las demás herramientas, si ha salido bien, volverá a aparecer un “Wait” muy elevado en Admin-ajax, recordar que este archivo solo debería funcionar en el Backend de WordPress.

 

Gift of Speed - Error Admin.ajax.php

Gtmetrix

Gtmetrix-logo

Personalmente, esta es una de las herramientas que mas me gusta y mejores datos puede arrojar. El funcionamiento es similar, inserta la Url y haz click en “Analyze”. La diferencia que existe con las anteriores, es la cantidad de parámetros que muestra, superiores a las anteriores, aunque no permite seleccionar la localización desde donde se ejecuta la comprobación de la web.

Resultado admin-ajax en GTmetrix

Mejora de rendimiento mediante plugins

Hecho el análisis, si has detectado el conflicto, tienes la opción de optimizar tu página mediante plugins. Si te encuentras ante un problema sencillo con admin-ajax, esta puede ser la solución definitiva y la más rápida. Los siguientes plugins son completamente gratuitos  y los puedes descargar desde el propio WP.

Ajax Heartbeat tool

Esta opción, es de las mas utilizadas por los usuarios de WordPress, es menos configurable que Ajax Heartbeat Tool. Simplemente desactiva la Api Hearbeat.

Heartbeat control

De las dos opciones, esta es mi preferida, ya que deja diferentes opciones de configuración, por ejemplo:

Decidir donde quieres que actúe o simplemente desactivarlo por completo.

Control hearbeat locations

Puedes elegir cada cuanto tiempo quieres que envíe los pulsos de la Api Heartbeat en intervalos de 15 a 60 segundos, elige según tus necesidades, ya que depende si tienes comercio electrónico, maquetadores, etc.

override heartbeat frecuency

Prueba los dos, experimenta y utiliza el que te de mejor resultado.

 

Código para deshabilitar Admin-ajax.php

Si después de utilizar los plugins y chequear las páginas sigue apareciendo un “Wait” elevado en los medidores de velocidad, no te impacientes, aún tienes opciones. La siguiente es deshabilitar el archivo mediante FTP. Entra en el archivo admin-ajax.php, dentro de la carpeta wp-admin y pega el siguiente código.

add_action( ‘init’, ‘stop_heartbeat’, 1 );
function stop_heartbeat() {
wp_deregister_script(‘heartbeat’);
}

Con esto verás como la velocidad de carga de tu web mejora, cuando hagas los test seguirá apareciendo Admin-ajax.php pero esta vez no cargará. Ejemplo:

 

Errores producidos por deshabilitar Admin-ajax

Estarás contento, has mejorado considerablemente el tiempo de carga de tu web, pero no todo lo que reluce es oro. Como sucede con los plugins que desactivan la Api Heartbeat, puedes perder funciones de WordPress y sus plugins. En mi caso, dejó de funcionar la función de “Guardar” en el maquetador visual y en el plugin del Slider.

Encontrar una solución “a medias”, puede ser muy útil para estabilizar un proyecto mientras seguimos buscando resolver totalmente un problema.

Lo que tienes que hacer en este caso es, una vez desactivado, comprobar todos los elementos internos de tu página web y su funcionamiento. Con suerte, no afectará a la funcionalidad de tu editor. Si es así, problema resuelto. En el caso contrario, hay que seguir buscando una respuesta.

Plugin que acapara los recursos de tu WordPress

Llegados a este punto, posiblemente el problema sea un plugin mal configurado o que simplemente entre en conflicto con tu WordPress. Puede ser provocado por un nuevo Plugin, o incluso por uno antiguo que te funcionaba perfectamente pero falla con alguna actualización. Notaras un consumo elevado de la CPU de tu servidor, acaparando un gran cantidad de recursos de tu CMS. Para saber que plugin está causando el problema, volveremos a recurrir a Gtmetrix. Recomiendo que antes de realizar el siguiente paso, borres el caché de tu página y del navegador.

GTmetrix es la clave

Como bien he dicho antes, esta herramienta puede aportarnos la solución. Para ello, escribe la URL en el campo correspondiente y selecciona “Analyze“. Terminado el análisis, aparecerán cinco pestañas, selecciona la que pone “Waterfall“, en ella, haciendo scroll, saldrán las respuesta del servidor. Admin-ajax.php debe estar entre las que empiezan por “POST”,  quedando la respuesta como “POST Admin-ajax.php“. A la izquierda aparece el botón “+”. Púlsalo para  que aparezca el desplegable con tres pestañas mas.  Entra en “POST“, en la pestaña debe aparecer el plugin que colapsa Admin-ajax.  En mi caso como veis el fallo es producido por el plugin KK Star Ratings.

Gtmetrix-analyze

 

 

Error en WordPress por Admin-ajax.php

Una vez encontrado el problema, dirígete al panel de control de tu WP, desactiva el plugin que causa el error y elimínalo. Ahora debemos comprobar que el fallo se ha resuelto. Una vez mas, borramos caché de la web y caché del navegador, abrimos la ventana de incógnito y repetimos los test. Si todo esta correcto, no volverá a aparecer el error.

[Total:8    Promedio:4.1/5]

Deja un comentario