¿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.
Esta función se activa cada vez que alguien visita tu página web. Por lo que, cada vez que eso pasa, la web ejecuta el archivo wp-cron.php. Y esto es un problema, porque puede ser negativo. Sobre todo en los sitios web que tienen mucho tráfico.
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.
- Otra opción es usar la ruta del directorio del servidor (por ejemplo,
/var/www/wp-cron.php?doing_wp_cron
) en vez de la URL, para que el servidor ejecute wp-cron.php directamente en vez de tener que llamar a un dominio de internet. Técnicamente esta opción le da menos trabajo a hacer al servidor, aunque no lo notarás. - Los multisitios solamente necesitan configurar el intervalo de los Cron Jobs en el dominio principal del sitio. No es necesario hacer una configuración para cada sitio web.
¿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.