En pocas palabras: WP-Cron es el sistema de tareas programadas de WordPress que se ejecuta en cada carga de página mediante el archivo wp-cron.php. Automatiza publicaciones programadas, actualizaciones y backups con intervalos predefinidos (hourly, twicedaily, daily); podés desactivarlo con DISABLE_WP_CRON en wp-config.php para usar el cron real del servidor.
Preguntas frecuentes
¿Cómo desactivo WP-Cron en WordPress?
Agregá la línea define('DISABLE_WP_CRON', true); en tu archivo wp-config.php, antes de la línea que dice «eso es todo, dejá de editar». Esto evita que WP-Cron se dispare en cada carga de página, aunque deberías reemplazarlo por un cron real del servidor para que las tareas programadas sigan ejecutándose.
¿Cómo configuro un cron real del servidor para reemplazar WP-Cron?
Una vez desactivado WP-Cron, creá una tarea cron en tu panel de hosting (por ejemplo en cPanel o Plesk) que ejecute wp-cron.php cada 5 o 15 minutos con un comando como wget -q -O - https://tudominio.com/wp-cron.php?doing_wp_cron. En hostings administrados como los de Donweb podés programar esta tarea desde el panel sin tocar la línea de comandos.
¿Por qué mis entradas programadas no se publican a tiempo?
Esto suele pasar porque WP-Cron depende del tráfico: si nadie visita tu sitio en el momento programado, la tarea no se dispara. La solución más confiable es desactivar WP-Cron y configurar un cron real del servidor que se ejecute a intervalos fijos, sin importar las visitas.
¿Cada cuánto se ejecuta WP-Cron por defecto?
WP-Cron no tiene un intervalo fijo: se verifica cada vez que alguien carga una página del sitio. Si hay tareas pendientes cuya hora ya pasó, se ejecutan en ese momento. Por eso un sitio con poco tráfico puede tener tareas que se demoran.
¿WP-Cron afecta el rendimiento de mi sitio?
En sitios con mucho tráfico sí puede impactar, porque cada visita verifica si hay tareas pendientes y suma carga al servidor. Pasarlo a un cron real del servidor reduce esa sobrecarga y hace que las tareas se ejecuten de forma más predecible.
Ejemplo práctico
Martina administra recetasdelnorte.com.ar, un blog de cocina con unas 40.000 visitas mensuales y publicaciones programadas todas las mañanas a las 8:00. Notó dos problemas: las entradas programadas se publicaban con 15 o 20 minutos de retraso (recién cuando alguien entraba al sitio y disparaba WP-Cron) y, en horas pico, el tiempo de respuesta del servidor trepaba a 1,8 segundos porque cada visita gatillaba la verificación de tareas. Para solucionarlo desactivó WP-Cron agregando define('DISABLE_WP_CRON', true); en el wp-config.php y configuró un cron real en el panel del hosting para que ejecutara wp-cron.php cada 10 minutos.
Para verificar que las tareas seguían corriendo, instaló el plugin WP Crontrol y confirmó que el evento publish_future_post se disparaba puntual. La línea que cargó en el programador de tareas fue:
*/10 * * * * wget -q -O - https://recetasdelnorte.com.ar/wp-cron.php?doing_wp_cron >/dev/null 2>&1Resultado: las publicaciones programadas pasaron a salir con menos de 2 minutos de margen sobre la hora prevista, y el tiempo de respuesta promedio en horario pico bajó de 1,8 a 0,9 segundos (una mejora del 50 %), porque las visitas dejaron de cargar con el peso de WP-Cron.
Cómo funciona
- Un visitante carga una página: cada vez que alguien entra a tu sitio, WordPress dispara el archivo
wp-cron.php, que actúa como el «reloj» interno del sistema. - WordPress revisa la cola de eventos: el sistema consulta qué tareas tienen su horario vencido (un post agendado, un chequeo de plugins, la limpieza de la papelera) comparando la hora programada con el momento de la visita.
- Ejecuta solo lo que corresponde: si encuentra eventos pendientes, los lanza en segundo plano sin frenar la carga de la página; si no hay nada vencido, no hace nada y sigue de largo.
- Reagenda los eventos recurrentes: tras correr una tarea repetitiva, WordPress calcula y guarda la próxima fecha de ejecución según su intervalo (cada hora, dos veces al día, diario, etc.).
- Depende del tráfico para funcionar: al no tener un cronómetro real propio, las tareas se atrasan si tu sitio recibe pocas visitas, por eso conviene reemplazarlo por un cron real del servidor cuando necesitás precisión.
En 30 segundos
WP-Cron es el sistema de tareas programadas de WordPress que automatiza la publicación de entradas, la verificación de actualizaciones y otras tareas repetitivas, imitando al cron de UNIX pero ejecutándose recién cuando alguien carga una página del sitio. Esa dependencia de las visitas es su principal desventaja: en sitios con poco tráfico las tareas pueden retrasarse, por lo que conviene gestionarlo con un plugin o reemplazarlo por un cron job real del servidor. Acá te mostramos cómo configurarlo y administrarlo paso a paso, además de cuándo conviene cada opción.
Cron es una utilidad de UNIX que permite a los usuarios realizar tareas programadas en un servidor web. WP-Cron, el sistema Cron de WordPress, emula el sistema cron de UNIX para automatizar controles de actualización, publicación programada de entradas y otras tareas repetitivas.
Si eres un usuario de WordPress, comprender cómo programar los eventos cron de WordPress será más fácil para ti.
Esta guía abordará cómo configurar y administrar el sistema cron de WordPress con un plugin. Además, descubrirás los beneficios y desventajas del uso del cron de WordPress, así como la diferencia del cron job de UNIX.
¿Que son las tareas Cron de WordPress?
El Cron de WordPress es un sistema que imita el sistema cron de UNIX para automatizar la programación de tareas en intervalos de tiempo específicos. Permite a los usuarios de WordPress realizar tareas basadas en el tiempo durante la carga de la página, como publicar posts programados y verificar actualizaciones.
¿Cuáles son los beneficios y desventajas de usar el Cron de WordPress?
El sistema WP-Cron, a diferencia del cronjob de UNIX, es fácil de configurar porque no requiere conocimientos de comandos UNIX. Varios plugins cron de WordPress incluyen características que facilitan la configuración y la gestión, lo que hace que el sistema sea accesible incluso para principiantes.
Puedes ahorrar tiempo y concentrarte en otras tareas esenciales al permitirte programar tareas repetitivas en intervalos de tiempo personalizados. Además, este sistema evita la pérdida de datos en caso de que las tareas programadas no se completen a tiempo. Esto es algo que el cronjob de UNIX no puede hacer.
Lamentablemente, WP-Cron sólo se ejecuta cuando alguien visita tu sitio web. Si nadie activa la carga de la página, los sitios web de WordPress con poco tráfico omitirán algunos trabajos, lo que causará una acumulación de caché pendiente que perjudica el tiempo de carga y el rendimiento del sitio.
El aumento del tráfico de tu sitio no resolverá este problema. De hecho, las condiciones de trabajo y los procesos prolongados son más comunes en los sitios con mucho tráfico que utilizan tareas cron. Las condiciones de carrera ocurren cuando hay varias visitas al mismo tiempo, lo que obliga a WP-Cron a realizar la misma tarea al mismo tiempo. La acumulación de trabajos conduce a un rendimiento lento.
Cómo administrar las tareas Cron de WordPress con un plugin
El método más simple para configurar y administrar las tareas cron de WordPress es utilizar un plugin de tareas cron. Dado que es gratuito y tiene todas las funciones requeridas, usaremos WP Crontrol en esta guía. Siéntete libre de utilizar plugins adicionales según tus preferencias.
1. Instala el plugin WP Crontrol
Primero, sigue estos pasos para instalar y activar el plugin de WordPress para la gestión de tareas cron:
- Dirígete a Plugins y selecciona «Añadir nuevo plugin» desde tu panel de administración de WordPress.
- Para encontrar WP Crontrol, use la función de lupa o filtro y luego haz clic en «Instalar ahora«.
- Selecciona «Activar» después de completar la instalación.
Ve a Herramientas > Eventos Cron desde tu panel de control para ver todas las tareas cron que se están ejecutando en tu sitio de WordPress.

2. Agrega un nuevo evento cron
Puedes comenzar a administrar los cronjobs de WordPress ahora que tienes control sobre ellos. A continuación se proporciona una explicación de cómo agregar un nuevo evento cron:
- En la parte superior de la página, ve al submenú Eventos cron y haz clic en «Añadir nuevo».

- Crea un gancho para el nuevo evento cron seleccionando la opción Standard cron event. Asegúrate de que el nombre del gancho cumpla con los estándares de nomenclatura de PHP. El tiempo de ejecución y la recurrencia se programan. Siéntete libre de dejar vacío el cuadro de texto «Argumentos».

- Pulsa el botón «Añadir un evento». Si el proceso fue exitoso, aparecerá un nuevo evento cron en la lista de Eventos cron.
- El siguiente paso es agregar el gancho a la acción que se ejecuta cuando se activa el evento cron. Abre el Administrador de archivos en tu servicio de hosting contratado.
- Busca el archivo functions.php del tema instalado que debe encontrarse dentro del directorio raíz. Añade el siguiente fragmento de código:
add_action( 'mi_cron_personalizado', 'mi_cron_personalizado_func' ); function mi_cron_personalizado_func() { wp_mail( '[email protected]', 'Automatic email', 'Automatic scheduled email from WordPress to test cron'); }La función wp_mail(), que solicita a WordPress que envíe un correo electrónico cuando se ejecute el evento cron, se utiliza en este ejemplo. No olvides reemplazar el marcador de posición por una dirección de correo electrónico real.
- Observa los cambios y actualiza tu sitio web. Si recibes el correo de prueba, el evento cron está funcionando correctamente.
3. Configura la programación del cron
El plugin ofrece cuatro intervalos de tiempo estándar, pero los usuarios también pueden crear intervalos personalizados. Para agregar un nuevo horario cron, sigue estos pasos:
- Desde tu panel de administración de WordPress, ve a Ajustes > Programaciones cron.
- En la sección «Añadir programación cron» debes llenar todos los campos. Estableceremos el intervalo a 600 segundos (10 minutos) en este caso. Crea el nombre del intervalo utilizando la convención de nombres de PHP.

- Haz clic en «Añadir programación cron». La lista debe incluir el nuevo intervalo de tiempo.
4. Modifica un evento cron existente
La siguiente es una explicación de cómo modificar un evento cron existente:
- Busca el evento cron que creamos previamente en Herramientas > Eventos Cron. Debajo de eso, haz clic en Editar.
- Selecciona 10 minutos en el menú desplegable Recurrencia.

- Pulsa en el botón «Actualizar evento».
Conclusiones
El cron de WordPress hace que sea crucial programar tareas en intervalos de tiempo específicos. Aunque WP-Cron tiene algunas desventajas, aprender a usarla te permitirá realizar tareas administrativas de manera más eficiente.
Esperamos que esta guía te haya ayudado a comprender la funcionalidad del cron de WordPress y cómo configurarlo usando un plugin.
Te recomendamos que utilices un alojamiento de WordPress de alta calidad si deseas optimizar aún más el rendimiento de tu sitio web.
