WordPress Hosting

Cómo controlar el uso y abuso de admin-ajax.php

Algunos plugins utilizan solicitudes AJAX para iniciar una wp_query personalizada y mostrarla en la página sin una recarga completa, lo que es un buen método para mostrar contenido dinámico en una página almacenada en caché.

¿Qué es admin-ajax.php?

Esta solicitud se envía a un archivo AJAX específico de WordPress para realizar este tipo de consultas: https://dominio.com/wp-admin/admin-ajax.php

Como te digo, está bien, pero en ocasiones estas consultas aumentan significativamente el tiempo de carga, especialmente cuando hay varias simultáneas, algo normal, pues son muchos los plugins que usan este método para actualizar elementos de una página en WordPress, como por ejemplo…

  • WooCommerce es un ejemplo muy claro de este uso masivo de admin-ajax.php:
    • Al añadir un producto al carrito
    • Al modificar cantidades de producto
    • Al seleccionar variaciones
    • Al cambiar de método de pago
    • Al introducir la dirección de envío para calcular los costes de envío
    • … un largo etc.
  • Otros plugins:
    • Mostrar comentarios sin recarga de página.
    • Actualizar contador de valoraciones.
    • Mostrar desplegables o acordeones.
    • Carga de contenidos a partir de filtros de taxonomías.
    • … un largo etc.

El resultado es que el consumo de este recurso, de admin-ajax.php, puede dispararse, provocando efectos indeseados en tu sitio web:

  • Carga lenta de todo el sitio.
  • Alto consumo de recursos del servidor.
  • Caídas completas de la web en los peores casos.

Pero ¿cómo controlamos qué y cómo usa admin-ajax.php?

Lo primero es saber quién lo está usando, y en qué medida…

Cómo saber qué elementos usan y/o abusan de admin-ajax.php

Lo mejor para saber qué plugins, o incluso si el tema o WordPress, usan admin-ajax.php es usar la misma herramienta para desarrolladores del navegador, las Developer Tools a las que puedes acceder haciendo un clic derecho en cualquier parte vacía de una página y luego haciendo clic en la opción de Inspeccionar.

Una vez en la herramienta ve a la pestaña denominada Red (Network si está en inglés) y haz una búsqueda por admin-ajax.php.

admin ajax wordpress consola developer tools navegador

En los resultados ve haciendo clic en los distintos posibles culpables y, desde la pestaña de vista previa, respuesta o iniciadores, identifica si es posible qué plugin o recurso está cargando admin-ajax.php.

Otro método que puedes usar para detectar el uso de admin-ajax.php es usando algún servicio online de medición de optimización, como GTMetrix, pero no te dirá qué recurso interno lo está usando.

¿Cómo reduzco el abuso de admin-ajax.php?

Una vez tengas una lista de posibles sospechosos la secuencia de acciones podría ser la siguiente:

  1. Si es un plugin desactívalo y comprueba si se reduce la carga de admin-ajax.php. Si detectas un plugin que haga un consumo excesivo revisa sus ajustes a ver si hay opciones que puedan reducir el exceso, y en caso contrario contacta con el desarrollador o, si todo falla, busca un plugin alternativo que haga lo mismo pero con un consumo más reducido de este escaso recurso.
  2. Si es el tema revisa sus ajustes y desactiva – si procede – toda opción de carga dinámica sin recarga de página. En caso de no encontrar solución contacta con el desarrollador, y si todo falla, busca un tema que no use tanto el admin-ajax.php.
  3. Si es WooCommerce desactiva la carga de scripts y AJAX en las páginas donde no sea necesario.
  4. Si es WooCommerce desactiva los fragmentos de carrito por AJAX.
  5. Si es WooCommerce, en los ajustes de producto, puedes probar a desactivar la opción de «Activar botones AJAX de añadir al carrito en los archivos»
  6. Reduce el uso de la API Heartbeat de WordPress usando un plugin de optimización para WordPress como WPO Tweaks, que lo hace automáticamente, o desactívala completamente.
  7. Contacta con el desarrollador del plugin o tema para hacerle saber el problema y para pedirle que aplique alguna solución.
  8. Si todo falla, y ni puedes prescindir de los plugins, el tema o los ajustes que reduzcan el uso de admin-ajax.php siempre queda la opción de contratar más recursos en tu empresa de hosting, y así poder servir todos los recursos dinámicos de tu web mediante AJAX.

Como verás, no hay una solución mágica, sino varias posibles estrategias de identificación del problema y posibles acciones correctoras, porque en realidad el uso de admin-ajax.php no es algo malo tampoco, no es un fallo, es una funcionalidad, pero en este caso es una característica que consume recursos, y al menos hay que medir, controlar, y optimizar en lo posible.

Ahora bien, no llegues al extremo de que, por optimizar a la brava, termines ofreciendo una web estática, difícil de navegar, que sea incómoda de usar para tus visitantes.

Hay veces que la única solución viable y profesional es aumentar los recursos del alojamiento y que tu web esté a la altura de las prestaciones y experiencia de navegación que debe ofrecer si quieres ser competitivo.

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 4.9 / 5. Total de votos: 8

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio