Configurar el WP-CRON de WordPress

wp-cron.php 00

¿Tu sitio WordPress consume demasiados recursos o va mas lento de lo normal? Si es así, quizás se deba a que tu sitio WordPress esta ejecutando procesos innecesarios repetidamente, cómo ocurre en el caso del wp-cron.php de WordPress.

En este artículo te explicamos que es el wp-cron.php de WordPress, como administrar este con un plugin desde tu propio WordPress y el motivo por el cual la gran mayoría de gente acaba desactivándolo entre otras curiosidades sobre el wp-cron.php.

Finalmente, te explicamos cómo configurar la gestión de tareas programadas de tu sitio WordPress con el Cron de Linux.

¿Qué es wp-cron.php y cómo funciona?

El wp-cron.php es un archivo que podemos encontrar en todas las instalaciones de WordPress, al igual que index.php, wp-config.php y los diferentes archivos de los cuales ya hemos hablado anteriormente en este blog.

El archivo wp-cron.php hace funcionar el WP-CRON, que es el equivalente al CRON de Linux pero dentro de WordPress. Al igual que el CRON de Linux, el WP-CRON permite ejecutar tareas programadas periódicamente de forma automatizada.

En el wp-cron.php, los complementos de WordPress (temas, plugins, etc…) cargan tareas programadas para lanzar procesos. Esto hace que las tareas simples, como la publicación de posts programados, la revisión de actualizaciones y otras tareas similares se realicen de forma automática con el wp-cron.php de WordPress.

Para que esto sea posible, el archivo wp-cron.php se ejecuta periódicamente y comprueba si tiene que realizar o ejecutar las tareas. Ahí es cuando nos encontramos delante del problema.

En condiciones normales, el archivo wp-cron.php debería ejecutarse en un intervalo de entre 1 y 10 minutos, pero en lugar de eso, WordPress utiliza un sistema que en muchos casos es perjudicial a nivel de rendimiento, cada vez que hay una visita a la web, el wp-cron.php será ejecutado y comprobará de nuevo si tiene alguna tarea por ejecutar. Imagínate tener 1000 visitas por minuto…

Como bien hemos dicho anteriormente, al algunos casos puede tener una gran afectación en el rendimiento de tu sitio WordPress y un consumo de recursos innecesario. Por este motivo, es común la practica de desactivar el CRON de WordPress y utiliza el CRON de Linux para realizar las mismas tareas.

Administrar el WP-CRON desde WordPress

De por sí, comprobar que tareas están definidas en el CRON de WordPress y cada cuanto se ejecutan es un poco difícil y poco intuitivo, por eso existen extensiones o plugins que facilitan estas tareas, como el plugin Advanced Cron Manager.

wp-cron.php 1

Una vez tenemos este plugin instalado, en la opción “Herramientas” del panel de control de WordPress nos aparecerá una nueva opción llamada “Gestor del cron”:

Si hacemos clic en la opción anterior, se nos abrirá una venta como la siguiente, donde podemos identificar el nombre de cada evento (la gran mayoría se ejecutan por plugins o por el propio núcleo de WordPress). Además, podemos ver también cada cuanto se ejecuta cada evento y cuando será su próxima ejecución.

wp-cron.php 3

También tenemos la posibilidad de modificar las tareas programadas que estén definidas en el WP-CRON, así como eliminarlas o crear nuevas.

Complementariamente, con este plugin podemos recibir ayudas para desactivar la ejecución del wp-cron.php por visitas y activarlo mediante el CRON de Linux:

wp-cron.php 4

Resumidamente, con el plugin Advanced Cron Manager podemos revisar qué se está ejecutando cada cierto tiempo en nuestro WordPress y también podemos desactivar alguna tarea que lo requiera.

WP-CRON «Missed schedule» – no se ejecutan las tareas

A veces, podemos encontrar casos donde por algún motivo, las tareas programadas del WP-CRON de WordPress no se ejecutan.

¿Cómo detectar este error? En la mayoría de casos, los usuarios se dan cuenta por el típico error “Missed schedule” o “Programación perdida” que se muestra cuando tienes programado el publicar un artículo o una acción similar y este no se publica, lanzando este error.

wp-cron.php 5

Si no se ha modificado la configuración, cuando el wp-cron.php no se ejecuta es porque ninguna visita al sitio web lo ha activado. Y esto lo sabemos basándonos en lo explicado en el anterior apartado, por esta razón es necesario conocer el funcionamiento exacto de wp-cron.php de WordPress.

A continuación, te explicamos como dar solución a este error, desactivando el wp-cron.php de WordPress y habilitando la gestión del wp-cron.php con el Cron de Linux.

Desactivar el wp-cron.php de WordPress

El proceso para desactivar el wp-cron.php es oficial debido a que este suele causar problemas, WordPress ofrece documentación para realizar este proceso.

Debemos añadir la siguiente línea al archivo wp-config.php de nuestro WordPress:

wp-cron.php 6

Justo después de la línea:

wp-cron.php 7

Tras haber hecho esto, el archivo wp-cron.php ya no se seguirá ejecutando via HTTP/s con cada petición al sitio, pero estaremos sin WP-CRON y si queremos tener tareas programadas en WordPress, deberemos hacer algo más.

Habilitar el Cron de Linux en WordPress

Después del paso anterior, debemos configurar algo que ejecute el wp-cron.php de WordPress directamente en el intérprete PHP. Podremos configurar la tarea CRON de tres maneras, desde una petición HTTP/s al script, desde un comando interno o bien, directamente ejecutando el script.

En este caso, explicamos cómo realizar las diferentes acciones desde la utilidad “Programador de tareas” del panel de Plesk:

Mediante URL

wp-cron.php 8

Mediante comando interno

wp-cron.php 9

Mediante script PHP

Donde aparece «aodatacloud.site» deberemos reemplazar con el nombre de nuestro dominio

En el apartado “Run” o “Ejecutar” de cada manera de configurar el wp-cron.php podemos definir la periodicidad con la que queremos que se ejecute la tarea, en este caso hemos configurado todas para que se ejecuten diariamente o “daily”.

Cómo conclusión

Esperamos que este artículo te haya servido para entender cómo funciona el mundo del wp-cron.php de cualquier hosting WordPress y el por qué es conveniente desactivarlo si cuentas con un alto número de visitas a tu sitio WordPress, gestionando las tareas programadas con el Cron de Linux en lugar del wp-cron.php.


Si consideras que se ha quedado algo en el tintero o tienes alguna duda, ¡estamos a tu disposición!