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

Desactivar wp cron WordPress

Cuando empiezas tu nueva web, va de lujo.

Pocas visitas, pocos plugins, nada de problemas.

Bueno…

También he visto páginas web con WordPress con pocas visitas, pero una cantidad de plugins que hacía que no cargase rápido.

Pero hay más allá que quitar plugins, instalar un plugin de caché, optimizar las imágenes, etc.

Optimizar WordPress tiene mucha más miga.

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

¿Qué es y para qué sirve el archivo wp-cron.php?

El archivo wp-cron.php es básicamente un archivo de programación de tareas.

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:

  • Realizar copias de seguridad de tu web, como es el caso de UpdraftPlus.
  • Publicar en nuestras redes sociales nuestros artículos antiguos cada x tiempo.
  • Realizar análisis programados con plugins de seguridad como WordFence.
  • Y toda tarea que se ejecute de forma automática.

Los problemas de wp-cron.php y por qué deberías desactivarlo

Es una función muy útil y que la necesitamos a diario en nuestra web.

Si ella no podríamos realizar muchas de las tareas.

Pero también tiene su parte negativa.

Resulta que este archivo se ejecuta cada vez que nosotros o alguien entra a nuestra web.

Pero… ¿qué pasa cuando tenemos una web con miles de visitas diarias?

Pues que esa programación se ejecuta todas esas miles de veces diariamente.

Eso hace que se usen más recursos del hosting.

Cuando esos recursos aumentan y llegan a su límite, el servidor empieza a caerse.

Osea que nos encontramos los famosos errores 500 de WordPress.

A la larga esos errores afectarán a las visitas de tu web, porque los buscadores lo penalizan.

Pero a corto tiempo perderás ventas y tus visitantes se verán afectados.

Por eso la importancia de desactivarlo y programarlo de forma correcta.

Así que veamos como hacerlo.

Desactivando el archivo en WordPress

Antes de nada y estés o no recibiendo fallos en tu servidor.

Lo primero es desactivarlo de WordPress para evitar que nos ocurran.

Para ello deberemos 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:

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.

Y lo suyo es programarlas para que se ejecuten cada cierto tiempo.

Programando el archivo Cron en Cpanel

Una vez que está desactivado.

Lo que vamos a hacer es programar nuestro servidor para que lo ejecute automáticamente cuando le digamos.

Para ello nos vamos a nuestro hosting y que en mi caso lo voy a explicar en Cpanel, que es el panel de alojamiento más usado.

Cpanel opciones avanzadas

Vamos bajando hasta llegar a un panel que pone Avanzadas y entramos en Cron trabajos.

Programar wp-cron.php de WordPress en Cpanel

Para programar correctamente el archivo tenemos 2 tareas sencillas.

Nos vamos al apartado Añadir un nuevo trabajo de Cron.

Por un lado elegiremos el tiempo que queremos que se ejecute Cron.

Puedes hacerlo a mano, pero yo por ejemplo he elegido la opción de 2 veces a la hora en Configuración común, que son suficientes para mi uso.

Al elegirlo, se ajusta automáticamente el resto de parámetros.

Ya que se ejecutará cada 30 minutos y el asterisco significa que serán todas la horas, días, meses, etc.

Ahora nos queda poner la url del archivo Cron de WordPress en Comando.

Yo que tú le preguntaría a tu hosting por este parámetro.

En el caso de mi hosting Siteground, la url completa sería:

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

Sustituyendo usuario por el usuario de tu alojamiento.

Lo primero es la ruta de PHP y lo segundo donde se encuentra el archivo de WordPress.

Le das a Añadir nuevo trabajo de Cron y listo.

Ya nos aparecerá en el apartado Trabajos de Cron actuales.

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

Revisando que todo funcione correctamente

Una vez que todo está listo.

Yo que tú verificaría que todo funciona bien.

¿Y como se haría?

Pues muy sencillo.

Puedes programar una entrada a ver si se publica o puedes verificar que las copias de seguridad programadas se hacen de forma correcta.

Si se ejecutan es que todo está correcto.

Y si no, puede que la ruta de Cron no esté correcta.

Consejos finales

Sé que puede ser una tarea algo complicada si nunca lo has hecho.

Pero es muy recomendable para que nuestro WordPress funcione correctamente.

Piensa que si cambias de hosting, Cron quedará desactivado en WordPress.

Así que deberás de volverlo a programar en el nuevo alojamiento.

Yo he configurado el mio cada 30 minutos.

No creo que una web se tenga que programar menos tiempo.

Porque me extraña que se publiquen más de 2 artículos a la hora o se hagan tantas copias de seguridad.

Pero ya es cosa tuya el tiempo a configurar.

Otro tema a tener en cuenta es que si en el hosting tienes varias webs.

Deberás añadir una tarea de Cron por cada web desactivada, siempre poniendo correctamente la ruta.

Verás que una vez que hagas esto.

El consumo de recursos de tu web bajará en picado.

¡Valora mi contenido!
[1 votos. Media: 5]

12 comentarios en “El archivo wp-cron.php de WordPress: Qué es y porqué deberías desactivarlo”

    1. Hombre Andrés, cuanto tiempo! Espero que todo te vaya genial.

      Es interesante lo del cronjobs. Lo apunto y en algún hueco lo reviso.

      Me alegro de saber de ti.

      Un abrazo.

  1. Me ha sorprendido este peazo artículo y lo voy a poner en práctica en una web que tengo con muchas visitas donde tengo problemas de consumo.

    No tenía ni idea que una de las razones podría darse por el tema del cron y ya he probado muchas cosas para intentar poner solución a esos momentos puntuales donde al tener muchas peticiones simultaneas la web va tan lenta o llega a caer, nunca hubiese pensado en el cron como un posible causante, así que lo probaré.

    Muchas gracias por esta información tan valiosa, ahora mismo paso a probar si lo configuro correctamente.

    Saludos

    1. Hola Tomás,

      Pues hazlo y verás como baja mucho el consumo de cpu. Pero eso si, acuérdate de agregarlo bien y de probar que todo funciona.

      Cuando lo hagas y si no te importa, pásate por aquí y me cuentas el resultado.

      Saludos.

  2. Hola!
    Muchas gracias por esta información, muy valiosa. Quiero hacer una pregunta sobre este tema.

    1) Si tienes varios sitios deberías agregar un trabajo por cada sitio como explicas, pero el inicio de los trabajos debería ser en distintos horarios para todos los sitios para que no se ejecuten todos los trabajos al mismo tiempo. Cierto? Cómo se hace eso?

    También se podría agregar que si tienes un sitio con pocas visitas no es necesario crear un trabajo cron.

    Muchas gracias por compartir tu conocimiento!

    1. Si, hay que agregar un trabajo cron por cada sitio, web, dado que cada web tiene su propio archivo y las url son diferentes.
      Y el comando ya depende de cada hosting. Mándales un ticket y ellos te pasan el comando directamente.

      Saludos.

  3. Hola Raul,

    Te escribo para decirte que he desactivado correctamente el wp-cron con este manual y me ha funcionado bien, no se si esto influye en algo al TTFB pero bueno, todo lo que sea descargar un poco al servidor supongo que será bueno. Todo un éxito este manual para Siteground.

    Un saludo, muchas gracias.

    1. Hola Alberto,

      El cron influye algo según la carga del servidor, de la web, etc. A veces más y otras menos. Pero hazme caso, “muchos pocos hacen un mucho”.

      Saludos!

  4. Hola Raul,

    Escribo en esta noticia porque he desactivado el cron y claro uso el plugin de Siteground SG Optimizer, y al intentar entrar a la configuración de PHP para intentar poner PHP7 pues da este error:

    “Error: Compatibility checker relies on the WordPress Cron functionality to operate which is disabled for this site. Please, enable the WordPress Cron and refresh this page. Check out this article for more information on that matter.”

    La pregunta es la siguiente, ¿Cómo lo solucionarías tu? ¿Volverías a activar el wp cron para el tema de activar el PHP7?, no tengo claro para que necesita el plugin el wp cron, quizás es para comprobar si tus plugins y tu theme es compatible con la versión de php que vas a activar, pero hay alguna forma de poder testearlo sin tener que volver a activar el wp cron?.

    Un saludo y gracias por tu respuesta de antemano.

  5. Hola Raúl, consulta. ¿cómo averiguo cuál es el directorio raíz de mi Cpanel? lo hice desde /home/miusuario…… pero me han llegado muchísimos correos informando que el cron no se ha ejecutado.

    1. Jorge, en la mayoría de Cpanel es la ruta que me has puesto más public_html. Pero si tienes alguna duda o no lo encuentras, dale el toque a los de tu hosting y que te echen un cable. Saludos.

Los comentarios están cerrados.