Desactiva el Cron de WordPress para mejorar su rendimiento

WordPress ejecuta tareas en segundo plano cada vez que un usuario visita tu WEB a través del fichero wp-cron.php.

Es decir, si tienes 5000 visitas diarias, se ejecutará el job de cron 5000 veces, excepto si la página está cacheada (yo uso Litespeed). Y el cron de WordPress es un gran consumidor de recursos que penaliza el rendimiento de tu WEB y, por lo tanto, afecta al posicionamiento SEO.

Obviamente, esta manera de ejecutarse las tareas programadas de WordPress es muy poco eficiente en cuanto a rendimiento.

¿Qué tareas programadas ejecuta WordPress?

Si quieres saber qué ejecuta wp-cron.php cada vez, tan sólo tienes que ir al menú de WordPress Herramientas –> Sheduled Actions.

Tareas programadas en el cron de WordPress

Cuántos más plugins y temas instalemos en WordPress, más tareas se van a programar y, por lo tanto, más CPU y Memoria va consumir nuestra página WEB, ralentizando su carga.

¿Qué ocurre si no se ejecuta cron?

La URL de cron de WordPress es: https://dominio/wp-cron.php?doing_wp_cron. Si le echas un vistazo al código, podrás descubrir que si programas la publicación de un nuevo artículo, éste no se publicará. Verás un error de «programación perdida».

Las actualizaciones de WordPress, de plugins, de la papelera de reciclaje, de temas, etc. tampoco funcionarán.

  Tutorial de Generatepress - Uno de los mejores Temas de Wordpress

Por lo tanto, sí que se ha de ejecutar la tarea wp-cron.php pero no cada minuto.

Aprende a planificar tareas programadas por cron en Linux

¿Puedo programar el cron con una hora personalizada y no cada vez que entre un usuario a mi página?

La respuesta es un rotundo sí.

DEBES DESACTIVAR EL CRON DE WORDPRESS Y UTILIZAR EL CRON DE LINUX CUANTO ANTES

Deberás echar un vistazo a los servicios que ofrece tu hosting. En mi caso, utilizo Profesional Hosting (ver mi opinión sobre Profesional Hosting y obtén un código de descuento) que utiliza Plesk como administrador de cada uno de mis dominios y sí tiene la posibilidad de añadir tareas programadas personalizadas.

Programar el cron con Plesk

Para añadir una tarea programada en Plesk, iremos al menú «Tareas programadas» y definiremos una en formato cron.

Si no sabes cómo funciona cron, te recomiendo que les el artículo relacionado con los comandos básicos relacionados con los procesos de Linux.

Plesk -Menu para añadir una tarea programada

A continuación, invocaremos a la URL de cron de WordPress cada vez que queramos que se ejecute:

Plesk - Programar un job en cron

En este ejemplo, estamos ejecutando la URL de cron de WordPress cada 20 minutos.

Programar el cron con CPanel

Si tu servicio de Hosting tiene CPanel en lugar de Plesk, también podrás programar el cron de una manera muy similar a la explicada anteriormente.

Vas al panel de administración de CPanel y buscas «Cron Jobs»:

Planificacion de jobs en cron con CPanel

A continuación, tendrás que rellenar un formulario con el script o comando a ejecutar y el intervalo horario, igual que hemos hecho anteriormente en Plesk.

Formulario de planificacion de trabajos en cron con CPanel

Como podemos observar, podemos planficar el job que queramos en cualquier momento del día, semana, mes, minuto, que se ejecute varias veces en un intervalo horario, etc.

Formulario de planificacion de jobs en cron con CPanel completado

Desactivar el cron nativo de WordPress

Ahora que ya hemos personalizado el cron de WordPress, lo que tenemos que hacer es evitar que se ejecute cada vez que recibimos un visitante.

  Añadir un Formulario de Contacto en Wordpress con Contact Form 7

Para ello, editaremos el fichero wp-config.php y añadiremos la siguiente directiva:

define('DISABLE_WP_CRON', true);

¿Cuándo ejecutar wp-cron.php?

Lo mejor es ejecutarlo en aquellos momentos en que tengas menos tráfico en tu WEB. Por ejemplo, por la noche, o cada cuatro horas durante el día.

# Ejecutar cron cada 4h
00 04,08,12,16,20 * * * https://dominio/wp-cron.php?doing_wp_cron

Te puede interesar

Compárteme

Contenido Relacionado

Deja un comentario