El archivo wp-cron.php de WordPress: Qué es y por qué deberías desactivarlo

Desactivar wp cron WordPress

En esta guía te voy a explicar qué es el cron de WordPress y por qué deberías de optimizarlo.

Hay más allá que quitar plugins, instalar un plugin de caché, optimizar las imágenes, porque optimizar WordPress tiene muchas tareas.

El archivo wp-cron.php de WordPress es una de esas tareas que no se debería dejar pasar.

P.D. Aumenta tus visitas y conversiones con una web WordPress rápida. Únete a WPOptimizers y aprende gratis.

¡Lo quiero!

¿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.

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.

¿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%.

Cron no se ejecuta en URL cacheadas

Debes saber algo muy importante sobre el cron de WordPress y la caché.

Cuando se cachea una web, se sirve una copia en HTML mucho más rápida, pero es una visita que no ejecuta nada.

Lo que quiero decir, es que si cacheas tu web, esas visitas no van a ejecutar el cron de WordPress, con lo que tus tareas programadas no se ejecutarán.

Si toda tu web se cachea, jamás se ejecutarán, así que otro motivo más para optimizar cron como debería.

Cómo desactivar el cron de WordPress

Te voy a explicar cómo desactivar el cron de WordPress.

Para ello debes de editar el archivo wp-config.php, que al igual que el wp-cron.php, se encuentra en la raíz de la instalación de WordPress.

Puedes hacerlo desde el mismo editor del hosting o con algún programa FTP como Filezilla.

Coloca en él lo siguiente y con cuidado de que sean las mismas comillas.

// Desactiva cron
 define('DISABLE_WP_CRON', 'true');

Con esto ya quedará desactivado, pero ahora todas esas funciones de las que hemos hablado antes quedarán totalmente desactivadas.

Ahora toca activar un cron real en el hosting.

Cómo crear un cron real en el hosting

Ahora vamos a crear un cron real en el hosting, que se ejecutará cada cierto tiempo, independientemente de que tu web tenga o no tráfico, cachees la web, etc.

Te lo explico con CPanel, que es el panel más usado, pero todos suelen traerlo.

Así que te vas a tu hosting y vas bajando hasta Avanzadas y entramos en Cron trabajos.

Cpanel opciones avanzadas

Nos vamos al apartado Añadir un nuevo trabajo de Cron y elegiremos el tiempo que queremos que se ejecute Cron.

Lo recomendable es 5 minutos, pero ya depende de tu web. Puede que tengas una web que necesite más actualización o un blog que basta con que se ejecute una vez a la hora o incluso al día.

Después toca poner la URL del archivo Cron de WordPress a ejecutar en Comando.

Programar wp-cron-php de WordPress en CPanel

Normalmente sería la que te pongo abajo, obviamente cambiando tuweb.com por la tuya, pero por si acaso pregunta al hosting.

También te digo, que este comando es el que suelen usar los hostings de mi guía del mejor hosting para WordPress.

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

Después le das a Añadir nuevo trabajo de Cron y listo, ya nos aparecerá en el apartado Trabajos de Cron actuales.

Tu hosting ejecutará el archivo de forma automática de la forma programada.

Trabajos de cron actuales

Un tema a tener en cuenta es que puede que tengas que poner el comando cron manualmente y no con la herramienta visual de tu hosting.

Por eso es importante que consultes con el hosting.

Comandos cron útiles

Te dejo un listado de comandos cron útiles (entre paréntesis) que puede que necesites usar:

  • 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 * )

Cómo comprobar que cron funciona

Una vez que todo está listo, toca comprobar que cron funciona correctamente.

Se podría comprobar programando una entrada y ver si se publica, viendo si se hacen las copias de seguridad programadas y muchas más formas, pero lo vamos a ver de una forma más sencilla.

Instala el plugin WP-Cron Status Checker, te saldrá un aviso de freemius que recomiendo saltar y después te vas a herramientas - WP Cron Status y verás las últimas ejecuciones de cron.

Obviamente tendrás que esperar el tiempo que has programado, para saber si se ejecuta correctamente y después podrás ver las últimas ejecuciones.

WP cron status

Elimina tareas cron obsoletas

Un problema con el cron de WordPress, es que hay que eliminar tareas cron obsoletas, de temas y plugins que ya no están instalados o de lo contrario se seguirán ejecutando.

Esto reducirá el consumo de recursos de WordPress, pero ojo, realiza antes una copia de seguridad de la base de datos, por si eliminas algo que no deberías.

Para ello, instala el plugin WP Control y en Herramientas - Eventos cron - pestaña Eventos Cron, busca eventos de temas o plugins que ya no tengas instalados y directamente los eliminas.

No podrás eliminar tareas cron del core de WordPress, pero sí como en este caso, de un tema añadido como es Divi y su tarea et_core_page_resource_auto_clear.

Una vez terminado, puedes eliminar el plugin, puesto que las tareas cron se almacenan en la base de datos y continuarán con su trabajo las que queden.

Eliminar tareas cron obsoletas

¿Vas a optimizar el cron de WordPress ahora?

Como has podido ver, optimizar el cron de WordPress no sólo es bueno, es imprescindible si buscas el mejor rendimiento de tu web.

Recuerda que si lo desactivas, tendrás que configurar un nuevo cron cada vez que cambies de hosting.

Y obviamente, si tienes varias webs, tendrás que realizar todas estas tareas en cada una de las webs.

Espero que esta guía te sea de utilidad y si tienes alguna duda, te espero en los comentarios.

Únete gratis a WPOptimizers y aprende a optimizar WordPress

Acceso exclusivo a la comunidad de Telegram y Discord.
Consejos semanales probados, para tener una web WordPress rápida.

Información básica sobre Protección de Datos. Responsable: Raúl González Sedeño (yo mismo). Finalidad: Tratar la información que me pases para poder prestarte el servicio solicitado y ayudarte a tener una web rápida con mis consejos. Legitimación: Que me das permiso, vaya. Destinatarios: Tus datos se guardan en Active Campaign que es mi servicio de email marketing y que está acogido al acuerdo de seguridad EU-US Privacy. Resumiendo, que están protegidos. Derechos: Y obviamente puedes acceder, rectificar y suprimir tus datos, así como otros derechos cuando quieras. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos personales en mi página web.