¿No sabes qué significa algún término? Consulta el glosario
Cómo desactivar el WP-Cron y crear un cron de servidor
Hay páginas web con mucho tráfico que van lentas debido a las ejecuciones excesivas de WP-Cron. Sí, son casos raros, pero puede pasar. Para que esto no te pase, en esta guía aprenderás a desactivar el WP-Cron y crear un cron de servidor. Son sólo dos pasos y estoy seguro de que puedes hacerlo, pero antes veamos qué es WP-Cron.
¿Qué es WP-Cron y cómo desactivarlo?
WP-Cron es un sistema integrado de manera nativa en WordPress y que simula el servicio cron de un servidor Linux, un proceso que ejecuta tareas en intervalos específicos en él.
Hay varias funciones que están automatizadas en WordPress de forma nativa. Por ejemplo, cuando recibes un email cada vez que alguien te deja un comentario en un artículo del blog o la publicación de artículos programados. Estas funciones, que funcionan de manera automática, se ejecutan mediante la función WP-Cron, integrada en WordPress y ejecutada desde el archivo wp-cron.php.
Al cargar la página, WordPress comprueba si hay eventos programados pendientes. Si los hay, y si no se ha iniciado ninguna ejecución en los últimos 60 segundos (tiempo que se puede modificar con la constante WP_CRON_LOCK_TIMEOUT), se realiza una solicitud interna no bloqueante a wp-cron.php para procesarlos. De lo contrario, no se ejecuta nada. Este comportamiento puede afectar al rendimiento en sitios con mucho tráfico, ya que las comprobaciones se realizan en cada visita.
Para evitar que esta función lastre el rendimiento de tu web, puedes desactivar el WP-Cron en WordPress y usar un cron job real del servidor, para que las tareas programadas no dependan de las visitas a la web. Veamos cómo hacerlo.
¿Cómo deshabilitar WP-Cron paso a paso?
Para deshabilitar WP-Cron solo tienes que hacer dos cosas:
- Entra en el wp-config.php y añade la siguiente línea de código:
define( 'DISABLE_WP_CRON', true);. Acuérdate de añadirla justo encima de la que pone/* That's all, stop editing! Happy publishing. */. Guarda los cambios. - Crea un Cron Job desde tu panel de control de hosting (como cPanel) y añade esta línea de código:
wget -q -O - https://www.asistentewp.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1. Cambia el dominio por el tuyo.
¡Y listo! No te llevará más de un par de minutos.
Notas importantes a tener en cuenta
- Hay servidores que tienen límites y obligan a usar intervalos más largos, superiores incluso a los 30 minutos. Si es tu caso, establece el menor que puedas. Si no tienes límite, con 5 o 10 minutos es suficiente, a menos que tengas una web que necesite que las tareas programadas se ejecuten casi inmediatamente, como una web de noticias. En ese caso, bájalo a 1 minuto.
- En el caso de necesitar intervalos más pequeños, puedes optar por tener tu propio servidor o un servicio de cron de terceros, como EasyCron o Cloudflare workers.
- En lugar de llamar a una URL, puedes ejecutar cron sin HTTP usando PHP CLI:
/usr/bin/php -q "/var/www/html/wp-cron.php" >/dev/null 2>&1. Técnicamente, esto reduce la carga del servidor, ya que este ejecutawp-cron.phpdirectamente en lugar de llamar a un dominio externo. Presta atención a las rutas, ya que probablemente tu web utilice rutas diferentes. - Otra opción es usar WP CLI:
wp cron event run --due-now. - En entornos multisitio, los eventos cron se registran por sitio. Para ejecutar eventos vencidos en toda la red, recorre todos y cada uno de los sitios con WP-CLI (por ejemplo:
wp site list --field=url | xargs -I % wp cron event run --due-now --url=%), or crea entradas de cron por sitio.
¿Por qué es mala idea no desactivar el WP-Cron?
Quedarse de brazos cruzados y no hacer nada puede ser malo por dos razones:
- Si tu web tiene mucho tráfico, hablando de más de 100.000 visitas diarias, podría ralentizar de forma considerable el rendimiento del servidor. Echa cuentas: eso significa una media de 1-2 visitas por segundo, lo cual es una o dos ejecuciones del WP-Cron cada segundo sin contar los bots ni los rastreadores de los buscadores.
- Si tu web tiene muy pocas visitas, las tareas programadas podrían no ejecutarse. Es decir, si no inicias sesión en wp-admin y nadie visita tu página, tareas imprescindibles como la ejecución de una copia de seguridad podrían no llevarse a cabo. Digamos que, esas tareas programadas se acumulan para cuando haya visitas y se terminan ejecutando pero de manera lenta porque todas se ejecutan a la vez.
Por tanto, es importante tratar de desactivar WP-Cron, tanto en sitios de mucho tráfico (súper recomendado) como en sitios de poco tráfico (recomendado) y reemplazarlo por un cron real de servidor, para llamar al wp-cron.php a intervalos definidos. Al final, es una solución escalable y cuanto antes lo hagas, mejor.
Al desactivar el WP-Cron conseguirás mejorar el rendimiento de tu sitio y que funcione mejor, de forma más segura. Si tienes unos minutos, no dudes en probarlo.
¿Te ha quedado alguna duda? Ya sabes que si necesitas ayuda o soporte técnico de WordPress puedo echarte un cable.
Si ves un enlace de afiliado, te garantizo que es de un producto o servicio que realmente vale la pena. A diferencia de otras webs, aquí no se promociona nada solo porque paga más.



