WordPress : WP-CRON - Que es y como configurarlo
¿Qué es y para qué sirve el cron de WordPress?
El cron de WordPress es básicamente un archivo de programación de tareas, que se encarga de ejecutar las tareas programadas de tu WordPress.
El wp-cron.php es el archivo que hace funcionar el WP-CRON.
Pueden ser por ejemplo las tareas del mismo WordPress:
- Revisar si hay nuevas actualizaciones para WordPress, temas y plugins.
- Publicar los artículos que tenemos programados.
- Y otras tareas de WordPress.
O realizar las tareas programadas de plugins:
- Cachear la web.
- Realizar copias de seguridad de tu web.
- Publicar en nuestras redes sociales nuestros artículos antiguos cada x tiempo.
- Realizar análisis programados con plugins de seguridad.
- Ejecutar las suscripciones.
- Y toda tarea que se ejecute de forma automática.
Si un error de Programación perdida te aparece a menudo o tu hosting te ha dicho que consumes demasiados recursos… Seguramente el Cron de WordPress te está jugando una mala pasada… Aprende como configurarlo correctamente y de paso, conoce el funcionamiento de tu web y tu servidor.
De forma simple, un Cron es básicamente un gestor de procesos que se ejecutan en segundo plano a intervalos regulares.
¿Cómo saber si el Cron de WordPress funciona correctamente?
→ En líneas generales, lo que más rápido vas a detectar es cuando el Cron de WordPress no funciona correctamente. Si programas tus publicaciones y te has encontrado con el famoso error de programación perdida, la publicación en tus redes sociales no se ha producido o la copia de seguridad de tu plugin no se ha ejecutado a la hora programada, son indicios de que algo no funciona bien en tu Cron de WordPress.
→ Este fallo de no ejecución se produce en la mayoría de los casos en aquellas instalaciones que tienen poco tráfico todavía. Ya que el Cron de WordPress se ejecuta cada vez que un usuario visita tu web. Por lo tanto, si habías programado tu entrada para las ocho de la mañana y no ha entrado nadie en toda la noche, lo más probable es que te encuentres el error de programación perdida.
→ Del mismo modo, el Cron de WordPress puede consumir una gran cantidad de recursos en aquellas instalaciones que reciben un alto volumen de táfico diario. Si tu web recibe una media de mil visitas al día, y cada usuario visualiza una media de cinco páginas, el Cron de tu WordPress se estará ejecutando unas 5.000 veces al día. ¡Una auténtica locura! Ya que, como ya podrás suponer, no hace falta hacer tantas comprobaciones al día sobre si tu WordPress o tus plugins están actualizados.
→ De hecho, si alguna vez has detectado un lag en tu Escritorio de WordPress cuando está cargando una ventana, es señal de que el Cron de tu WordPress se está ejecutando en ese preciso momento.
¿Por qué deberías de desactivar el cron de WordPress?
Aunque es necesario y útil, deberías de desactivar el cron de WordPress por varios motivos.
→ El primero es el tiempo de ejecución, porque debes de saber que cron se ejecuta cada vez que se carga una URL.
→ Por suerte, WordPress tiene un bloqueo que limita a 1 ejecución cron , a 1 vez cada 60 segundos, pero es ineficiente.
¿Pero qué pasa cuando tenemos varias webs alojadas? Pues que el consumo de recursos se dispara y puedes tener caídas y errores 500, con la consecuente penalización SEO.
→ Teniendo un cron optimizado, puedes reducir el consumo de CPU del hosting hasta en un 80%.
→ En circunstancias normales, el wp-cron.php debería ejecutarse 1 vez cada minuto, pero el sistema no es perfecto y en lugar de eso WordPress utiliza un sistema bastante ABSURDO para ejecutar el wp-cron.php en periodos cortos de tiempo: cada visita que entra a la web, siempre y cuando no se cachee, ejecuta el wp-cron.php que, a su vez, comprueba si le toca ejecutar alguna tarea.
Incluso te lo voy a explicar de una forma más directa con un ejemplo: si tienes 1000 visitas por minuto y todas entran sin cache, estás ejecutando el wp-cron.php de WordPress 1000 veces por minuto, pese a que solo te hace falta ejecutarlo 1 vez por minuto.
¿Ahora entiendes cómo funciona el wp-cron.php y la razón por la que recomiendan desactivarlo a favor del CRON de Linux?
- Cada vez se instalan más plugins que añaden más tareas al wp-cron.php y eso hace que la comprobación de tareas que hay que ejecutar sea más pesada y consuma más recursos durante más tiempo.
- Cuantas más visitas sin cachear tenga tu sitio web, más veces ejecutara el wp-cron.php y más veces se realizarán las consultas para ver qué tareas hay que ejecutar en cada momento.
¿Cómo desactivar el Cron de WordPress?
Tanto si quieres solucionar el problema de la programación perdida, porque todavía recibes pocas visitas, como si tu proveedor de hosting ya te ha dado un ‘toque’ sobre el consumo de recursos de tu instalación, vamos a ver como solucionarlo de forma fácil y rápida.
→ Para ello, lo primero que debes hacer es desactivar el Cron de tu instalación de WordPress.
Solo tienes que añadir la siguiente línea de código en tu archivo wp-config.php.
define('DISABLE_WP_CRON', true);
Una vez hayas guardado los cambios en tu archivo wp-config.php, habrás deshabilitado la ejecución del Cron de tu instalación de WordPress. El siguiente paso es activar ahora una tarea de Cron en tu servidor de hosting, para que sea éste quién ejecute ahora el Cron de tu WordPress.
Referencia
https://martin.click/wordpress/el-cron-de-wordpress/
https://alvarofontela.com/wp-cron-php-wordpress-configurar-desactivar/
https://kinsta.com/knowledgebase/disable-wp-cron/