Cómo optimizar y reducir el impacto de admin-ajax.php en WordPress

Fecha: 21/04/2025
Como ya sabrás, en Raiola Networks estamos especializados en WordPress, y unos de los aspectos más importantes en este CMS es disponer de una buena velocidad de carga y de un consumo de recursos lo más reducido posible.

Para conseguir esto, lo idóneo es realizar una optimización completa en nuestro sitio web, aunque para ello, es necesario conocer cómo funciona WordPress y cada parte de él, y hay que tener muy claro qué funciones utiliza y necesita nuestra instalación, y si podemos permitirnos prescindir de alguna de ellas.

Normalmente, para optimizar WordPress suelen realizarse ciertas configuraciones estándar, por ejemplo, la implementación de un plugin de caché, la desactivación del WP Cron, la configuración de un CDN como Cloudflare, etc., no obstante, hay que tener en cuenta que cada web es un mundo y dependiendo de la configuración y funcionalidades que disponga, puede valorarse la realización de otro tipo de procesos.

Qué es el archivo admin-ajax.php y para qué se utiliza

En este post, hablaremos de un archivo de WordPress que suele provocar un consumo muy elevado de recursos en ciertas instalaciones, el "admin-ajax.php", explicaremos qué es exactamente este archivo, cuál es la función que tiene y qué maneras tenemos de optimizarlo para que no nos ocasione unos consumos excesivos en nuestro hosting y ralentice nuestro sitio web.


Índice del artículo
  • ¿Qué es el archivo admin-ajax.php y para qué se utiliza?
  • Cómo funciona el API Heartbeat de WordPress
  • Controlar y optimizar el API Heartbeat de WordPress
  • Gestionar el API Heartbeat con LiteSpeed Caché
  • Gestionar el API Heartbeat con WP Rocket
  • Gestionar el API Heartbeat con Heartbeat Control


¿Qué es el archivo admin-ajax.php y para qué se utiliza?


Desde la versión 3.6 de WordPress, se añadió una nueva funcionalidad llamada API Heartbeat que normalmente se ejecuta a partir del fichero "admin.ajax.php". Este archivo es uno de los más importantes en WordPress, ya que permite la comunicación asíncrona entre el servidor y el cliente mediante AJAX (Asynchronous JavaScript and XML), es decir, maneja solicitudes Ajax desde el lado del usuario sin necesidad de recargar la página, lo que permite a WordPress incluir funcionalidades dinámicas en el front-end y en el propio back-end.

API Heartbeat de WordPress

Como te podrás imaginar, las peticiones que se realizan a este archivo generan carga en nuestro sitio web y en el propio servidor, y en ciertos casos, pueden llegar a ralentizar la velocidad de carga en gran medida, ya que estas peticiones suelen ser las más largas y las que más tardan en procesarse completamente.

Hay que tener en cuenta que el núcleo de WordPress no es el único que utiliza esta funcionalidad, existen multitud de plugins y temas que también hacen uso de ella (algunos más que otros), es el caso de WooCommerce, que como todos sabréis, es uno de los plugins que más problemas causa a nivel consumos, justamente por el uso que hace del API Heartbeat, además de otros motivos adicionales.

A continuación te indicaremos una serie de funcionalidades muy comunes de WordPress que se ejecutan con el API Heartbeat para que las tengas en cuenta y comprendas mejor su funcionamiento.

  • La funcionalidad de autoguardado de post, la cual permite que los cambios en las publicaciones o páginas se vayan guardando de forma automática mientras se van realizando cambios, lo que previene la pérdida de contenido en caso de que se produzca algún problema.

  • El control de las sesiones, lo que ayuda a mantener las sesiones de los usuarios activas mientras se navega por el administrador de WordPress.

  • Los carritos de compra y todo tipo de funcionalidad dinámica en el sitio web (por eso es tan importante para un plugin como WooCommerce y por eso suele generar tantos problemas de consumos).

  • Los cambios que se realizan en opciones que no requieran de un guardado manual y se guardan automáticamente.

  • El bloqueo por edición de contenido entre varios usuarios.

  • Los filtros automáticos que no requieren actualizar la web manualmente, sino que van filtrando en función de las opciones que indiques.


Estos solo son algunos ejemplos de todo lo que abarca esta funcionalidad en WordPress; no obstante, con esto te puedes hacer ya una idea de todos los procesos que realiza y de su importancia en determinados sitios webs.

Cómo funciona el API Heartbeat de WordPress


Ahora que ya sabemos qué utilidad tiene esta funcionalidad en WordPress, nos faltaría explicar cómo funciona exactamente.

La API Heartbeat funciona mediante pulsos, es decir, cada cierto periodo de tiempo, se enviará una petición (un pulso) desde el navegador del visitante al archivo admin-ajax.php del sitio web que se está visitando. Estos pulsos permiten que se mantenga todo sincronizado entre el WordPress y dicho navegador, lo que permite que ciertas funcionalidades de WordPress (dinámicas, sobre todo) funcionen correctamente sin necesidad de recargar la página.

Por ejemplo, si tenemos abierta una pestaña en el navegador en el administrador de WordPress, en la sección de plugins, podemos ver que se genera una petición cada ciertos segundos (puedes ver en la siguiente captura la cantidad de peticiones que se generan en 2 minutos, sin realizar ninguna acción, únicamente con tener la pestaña abierta).

Cómo funciona el API Heartbeat de WordPress

Como indicamos con anterioridad, cada petición que se realiza al archivo admin-ajax.php, genera cierta carga en la web, en el ejemplo anterior puedes comprobar las peticiones que se realizan en el administrador sin ni siquiera realizar una acción, no obstante, hay que tener en cuenta que el uso del admin-ajax.php no se realiza únicamente en el administrador o el editor de WordPress, sino también en la propia parte pública, sobre todo si tiene muchas funcionalidades dinámicas que lo utilicen.

Por ejemplo, en una web con WooCommerce que tiene bastantes visitas, van a estarse realizando peticiones de forma continua a este fichero, lo que puede provocar que el consumo de recursos sea insostenible, en la siguiente captura puedes comprobar cómo ese archivo (junto al wp-cron.php, el cual genera una petición por cada visita) genera básicamente el 30-40% de las peticiones que se hacen a la web, y teniendo en cuenta que cada una de esas peticiones es de 97/98 bytes, y que en ciertas ocasiones, pueden llegar a realizarse incluso decenas de peticiones simultáneas, podemos llegar a tener unos consumos demasiado elevados a nivel CPU/RAM.

consumo de recursos según peticiones que se hacen a la web

Para intentar controlar este tipo de situaciones, lo idóneo es intentar optimizar el uso de este archivo lo máximo posible. Existen varias alternativas para esto, aunque antes de nada tendremos que conocer qué opciones tenemos dependiendo de las funcionalidades de nuestro sitio web.

Controlar y optimizar el API Heartbeat de WordPress


Existen algunas alternativas que podemos utilizar para reducir los consumos del API Heartbeat de WordPress. Dependiendo del tipo de web que tengamos, podemos valorar distintas opciones:

  • Aumentar el tiempo entre pulsos, por ejemplo, en el propio editor de WordPress el tiempo entre pulsos es de 15 segundos, podríamos aumentarlo al doble o lo que consideremos, siempre que no ocasione ningún problema en el funcionamiento.

  • Podemos desactivar completamente el API Heartbeat, aunque esto puede causar que dejen de funcionar muchas funcionalidades en WordPress

  • En vez de desactivarlo completamente, podemos valorar la desactivación del API Heartbeat de WordPress únicamente en ciertas zonas de WordPress, por ejemplo en el frontend, aunque esto únicamente es recomendable en webs que no tengan contenidos dinámicos, algo inusual en la actualidad.


En la actualidad, el API Heartbeat de WordPress es necesario en la gran mayoría de webs, y únicamente en ocasiones puntuales y específicas podemos valorar su desactivación en ciertas zonas, no obstante, aumentar el tiempo entre pulsos sí que es viable, te vamos a indicar a continuación algunos casos prácticos para que veas qué opciones tendrías en cada uno de ellos.

  • Si nuestra web utiliza un plugin que haga mucho uso de esta funcionalidad, como una tienda online con WooCommerce, no es posible desactivar en ningún caso la API Heartbeat, aunque sí que podemos aumentar el tiempo entre pulsos para reducir los consumos lo máximo posible.

  • Si nuestro sitio web es una web estática e informativa (sin contenidos dinámicos), podríamos desactivar el API Heartbeat para todo el frontend, ya que realmente no se estaría haciendo uso del mismo (esto también puede depender del tema que utilices).

  • En caso de que nuestro sitio web cumpla el punto anterior, y además, no vayamos a realizar nunca modificaciones en la misma y no necesitamos las funcionalidades dinámicas del administrador de WordPress (autoguardados, control de sesiones, etc.), podríamos desactivar la API Heartbeat de WordPress completamente, lo que podría ayudar a reducir considerablemente los consumos a nivel CPU/RAM.


Dicho todo esto, te indicaremos ahora algunos plugins con los que puedes controlar esta funcionalidad en WordPress para que los tengas en cuenta.

Gestionar el API Heartbeat con LiteSpeed Caché


LiteSpeed Caché es el plugin de caché que siempre solemos recomendar para webs que estén alojadas en cualquiera de nuestros hostings compartidos, por temas de rendimiento y compatibilidad.

Este plugin tiene multitud de opciones, y una de ellas, es justamente la configuración de los pulsos de la API Heartbeat de WordPress.

Gestionar el API Heartbeat con LiteSpeed Caché

La configuración es sencilla. Si queremos controlar los pulsos y reducir o aumentar su periodicidad, tan solo tendremos que activar la zona que queramos controlar (ponerla en ON) y establecer la cantidad de segundos en los que queremos que se ejecute el pulso.

Gestionar el API Heartbeat con WP Rocket


Wp Rocket también nos permite controlar en cierta medida los pulsos de Heartbeat, por lo que si utilizamos este plugin, podemos usar esta funcionalidad del mismo: https://wp-rocket.me/

Gestionar el API Heartbeat con WP Rocket

Como puedes observar, la configuración es más sencilla todavía que en LiteSpeed Caché, tan solo nos permite escoger entre 3 opciones, reducir actividad (lo cual aumenta ligeramente el tiempo entre pulsos), desactivar completamente o dejar la configuración por defecto.

No te recomendamos comprar el plugin únicamente para esta opción, existen mejores opciones y más avanzadas, o incluso un plugin que se utiliza exclusivamente para esta configuración, y que consideramos que es de los que mejor funcionan, del cual hablaremos a continuación.

Gestionar el API Heartbeat con Heartbeat Control


Este plugin es gratuito, es de los mismos desarrolladores que Wp Rocket, puedes descargarlo directamente desde el repositorio de WordPress: https://es.wordpress.org/plugins/heartbeat-control/

La configuración en este caso es la misma que en LiteSpeed Caché. Puedes desactivar la API Heartbeat de WordPress completamente o aumentar el tiempo entre pulsos de cada zona de WordPress (backend, frontend y editor).

Gestionar el API Heartbeat con Heartbeat Control

Si necesitas más información al respecto sobre el funcionamiento y configuración de este plugin, te dejamos un video de Álvaro en dónde explica todo esto.

Video de Youtube sobre: Cómo optimizar y reducir el impacto de admin-ajax.php en WordPress

Andrés Gude
Andrés Gude

Andrés Gude forma parte del departamento de aplicaciones de Raiola Networks. Usuario de un ordenador desde la cuna, apasionado de la F1 y del D10S del fútbol, Leo Messi.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 14 comentarios en Cómo optimizar y reducir el impacto de admin-ajax.php en WordPress

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Avatar del autor del comentario

Samuel Ezerzer

14/10/2015 a las 13:37

Interesante tu aporte

Responder
Avatar del autor del comentario

Alvaro Fontela

16/10/2015 a las 23:49

Gracias a ti por leernos Samuel.

Un saludo.

Responder
Avatar del autor del comentario

Jose Javier Garcia

26/04/2016 a las 00:49

Buenas Álvaro!
¿Qué configuración recomiendas en el plugin Heartbeat Control?

Responder
Avatar del autor del comentario

Alvaro Fontela

27/04/2016 a las 15:34

Hola Nacho, depende totalmente de lo que tenga tu web y el uso que haga de AJAX, puedes intentar desactivar todo el AJAX para el front y ver si falla algo.

Un saludo.

Responder
Avatar del autor del comentario

javier

28/04/2017 a las 13:03

interesante articulo Alvaro , otro mas para optimizacion, gracias.

Responder
Avatar del autor del comentario

Alvaro Fontela

30/04/2017 a las 21:54

Gracias a ti Javier, me alegro de que te sirva.

Un saludo.

Responder
Avatar del autor del comentario

Netfreelance

24/10/2017 a las 13:03

¡Gracias por el aporte Alvaro!

Hoy recién he visto que Fernando Tellado de ayudawordpress ha lanzado un plugin que elimina ciertas cosas de WordPress, tales como el Hearthbreath Control, funciones, servicios y scripts no necesarios, y que normalmente ralentizan tu instalación. Se llama WordPress WPO Tweaks. ¿Lo has probado?

Responder
Avatar del autor del comentario

Héctor Luaces

05/04/2018 a las 17:25

Hola.

Las opciones que da son todas cosas interesantes, pero por lo general no nos gusta recomendar plugins "cajón de sastre" que no ofrecen un control granulado (como es este) sobre las distintas configuraciones que permite.

Si te fijas, ese plugin no te permite especificar qué quieres activar y qué no, es una "solución en un clic". Esto no lo consideramos bueno porque si alguna de las opciones falla tendrás que desactivar por completo el complemento.

Es mejor tenerlo todo desgranado —mejor aún, en un plugin a medida—.

De todas formas, si a ti no te causa ningún error y no te fuerza a desactivarlo no tiene mayor problema.

Un saludo.

Responder
Avatar del autor del comentario

Juan Carlos Lopez Castillo

13/03/2018 a las 04:05

Hola Alvaro estoy tratando de mejorar el rendimiento de una tienda en wordpres con woocomerce, que recomendarías subir los intervalos de frond end de 15 a 60 o de 15 a 45, saludos.

Responder
Avatar del autor del comentario

Héctor Luaces

05/04/2018 a las 17:40

Hola, Juan Carlos.

Depende de los plugins que uses, pero por norma general no vas a tener problemas.

Súbelo tranquilamente a 60 segundos.

Cualquier cosa nos dices.

Un saludo.

Responder
Avatar del autor del comentario

Federico

20/08/2020 a las 20:34
Quizás es muy tarde para preguntar, pero puse wp roquet y me da 3 opciones para activar, desactivar o reducir heartbeat. 1: En backend (puse reducir), en 2: Editor de entradas (lo deshabilité) y en 3: Frontend (lo deshabilité). Podría traerme problemas la acción nº 2? Es un portal de noticias.
Muchas Gracias.
Responder
Avatar del autor del comentario

Alvaro Fontela

24/08/2020 a las 16:25
Hola, pues no te puedo decir si o no, depende de si tu tema y tus plugins utilizan el API Heartbeat...
Responder
Avatar del autor del comentario

Taisa

14/07/2023 a las 23:26
Buscando info para optimizar más mis webs en un hosting elástico vuestro y así ver si puedo esperar un poco para ampliar di con esto... Pero veo que tiene su tiempo. ¿Sigue siendo válido o hay alguna mejora o novedad? ¡Gracias Álvaro!
Responder
Avatar del autor del comentario

Alvaro Fontela

17/07/2023 a las 13:01
Hola Taisa, el admin-ajax (API HeartBeat) sigue igual, así que el contenido del post sigue siendo válido en 2023.
Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *