fbpx

El Cron de WordPress

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.

Hace unas semanas veíamos el problema de la programación perdida que se puede dar en algunas instalaciones de WordPress. Por eso vamos a ver con detalle cual es la causa que lo provoca… Hoy vamos a ver el Cron de WordPress.

De forma simple, un Cron es básicamente un gestor de procesos que se ejecutan en segundo plano a intervalos regulares. Esta terminología, proviene de la administración de sistemas, y más concretamente de la gestión de tareas en servidores Linux. Como verás más adelante, hoy vamos a utilizar el Cron de tu hosting para sustituir al Cron de WordPress.

El Cron de WordPress es una adaptación particular del Cron de tu servidor. A través del archivo wp-cron.php que encontrarás en la raíz de tu instalación, WordPress ejecuta una serie de procesos en segundo plano. Éstos pueden ser:

  • El envío de trackbacks y pingbacks
  • Consultas a WordPress.org para:
    • la actualización del core de WordPress
    • la actualización de los plugins
    • la actualización del theme
  • Limpieza de la papelera de reciclaje
  • La publicación automática de entradas programadas
  • Otras tareas que puedan requerir acciones basadas en la gestión del tiempo de otros plugins, como por ejemplo, copias de seguridad o la publicación automática en redes sociales.

¿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. ¡¡Madreee!! ¡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.

¿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, justo antes de la línea /* ¡Eso es todo, deja de editar! Feliz blogging */

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.

¿Cómo activar una tarea de Cron en tu panel de hosting?

Si el tu hosting tiene un panel cPanel, para activar una tarea de Cron que sustituya al Cron de WordPress que acabamos de anular a través del archivo wp-config.php solo tienes que dirigirte al apartado Avanzada, y hacer click en la opción Trabajos de Cron.

Busca en el panel de tu hosting la opción que contenga la palabra 'Cron'
Busca en el panel de tu hosting la opción que contenga la palabra ‘Cron’.

Una vez en la pantalla de Trabajos de Cron, dirígete a la sección Añadir nuevo trabajo de cron, haz click en el desplegable de –Configuración común– y selecciona una de las siguientes opciones:

  • Una vez por minuto ( * * * * * )
  • Una vez cada 5 minutos ( */5 * * * * )
  • Una vez cada 30 minutos ( 0,30 * * * * )
  • Una vez por hora ( 0 * * * * )
  • Dos veces al día ( 0 0,12 * * * )
  • Una vez al día ( 0 0 * * * )
  • Una vez por semana ( 0 0 * * 0 )
  • El 1 y el 15 del mes ( 0 0 1,15 * * )
  • Una vez al mes ( 0 0 1 * * )
  • Una vez por año ( 0 0 1 1 * )

Como ves, tienes bastantes opciones para configurar una tarea de Cron. ¿Cuál elegir? Pues como siempre, ¡depende! No es lo mismo una web que todavía tiene poco tráfico, que una web que recibe varios miles de visitas al día. Como hemos visto, las consecuencias son distintas para cada uno de estos casos.

Por lo tanto, mi recomendación es que si tu web recibe todavía pocas visitas, establezcas una frecuencia alta, por ejemplo Una vez cada 5 minutos ( */5 * * * * ). De este modo, acabarás con el error de programación perdida y todos los automatismos de tu web funcionarán correctamente.

Pero por otra parte, si tu web recibe un volumen de tráfico alto, puedes reducir la frecuencia de tu tarea de cron, por ejemplo Una vez cada 30 minutos ( 0,30 * * * * ) o Una vez por hora ( 0 * * * * ) es más que suficiente para mantener tu web actualizada y libre de sobrecarga en los recursos del servidor.

Configura tu trabajo de cron para terminar con el error de programación perdida en tu WordPress
Configura la frecuencia de tu tarea de cron según tus necesidades.

Una vez que hayas escogido una de las opciones del desplegable de –Configuración común–, verás que el resto de campos se rellenan automáticamente salvo el campo Comando. En este campo debes incluir el siguiente código, sustituyendo tudominio.com por el dominio de tu proyecto.

wget -O /dev/null https://tudominio.com/wp-cron.php?doing_wp_cron 

Por último, haz click sobre el botón Añadir nuevo trabajo de cron para terminar la configuración.

Algunas consideraciones para terminar

Debes tener en cuenta que, al igual que no hay dos sitios web iguales, no todos los servidores son iguales. Tienen arquitecturas diferentes y es posible que este código no funcione en tu alojamiento web. Si esto sucede, deberás cambiar el Comando a ejecutar por uno de los siguientes: Primera opción (sustituye user por tu nombre de usuario en tu proveedor de hosting)

/usr/local/bin/php /home/user/public_html/wp-cron.php

Segunda opción (sustituye https://tudominio.com por tu dominio)

wget -q -O – -t 1 https://tudominio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Tercera opción (sustituye /directorioraiz/nombreusuario/ por la ruta y tu nombre de usuario en tu proveedor de hosting)

php -q /directorioraiz/nombreusuario/public_html/wp-cron.php

Es habitual encontrar en el panel de Tareas Cron de tu alojamiento web alguna indicación sobre cómo debes implementar el comando.

Comprueba si en el panel de Trabajos Cron de tu hosting existe una indicación sobre los comandos a implementar
Comprueba si en el panel de Trabajos Cron de tu hosting existe una indicación sobre los comandos a implementar.

Del mismo modo, si ninguno de los comandos anteriores no funciona, o no encuentras ninguna indicación al respecto en el panel de Tareas Cron de tu servidor, deberás ponerte en contacto con el departamento de soporte de tu hosting. Indicando que quieres activar el comando para ejecutar el archivo wp-cron.php y puedan decirte el código a implementar.

Resumiendo…

Como ves, el Cron es una herramienta muy útil para tu instalación de WordPress. Pero puede jugarte una mala pasada, tanto con pocas visitas como con muchas. Conviene desactivar el Cron de WordPress e implementarlo directamente en el panel de tu hosting para que tu instalación de WordPress no se vea sobrecargada.

Además, a medida que tu web vaya ganando tráfico, podrás reducir la frecuencia de ejecución de la tarea Cron para optimizar recursos de tu hosting. Así de fácil y así de simple.

De todos modos, si tienes cualquier duda, o necesitas ayuda para configurar correctamente el Cron de tu WordPress, recuerda que puedes contactar conmigo y te ayudaré a resolverlo. Así que ya tienes deberes… mejorar el rendimiento de tu proyecto online configurando el Cron de tu WordPress… ¡Manos a la obra! 😉

Author avatar
Ángel Martín
Ayudo a emprendedores y empresas a digitalizar su negocio y sus procesos optimizando sus costes.