Si has entrado en la sección de «Salud del Sitio» (Site Health) de tu panel de administración y te has encontrado con el mensaje de advertencia «A scheduled event is late» (o en su versión en español: «Un evento programado se ha retrasado»), no estás solo. Este es uno de los avisos más comunes y, a la vez, más malinterpretados en el ecosistema de WordPress. Como Desarrollador WordPress Senior, he visto cómo este mensaje genera pánico innecesario en muchos propietarios de sitios web, haciéndoles creer que su web está rota cuando, en realidad, suele ser un problema de configuración de tiempos.
En este artículo exhaustivo, desglosaremos exactamente qué significa este error, por qué ocurre (especialmente relacionado con plugins de caché y backups), y te guiaré paso a paso hacia la solución técnica definitiva: la implementación de un Cronjob del sistema.
¿Qué significa realmente «A scheduled event is late» en WordPress?
Para entender este error, primero debemos entender cómo funciona el tiempo en WordPress. A diferencia de un servidor o tu ordenador, WordPress no tiene un reloj interno real que funcione en segundo plano constantemente. WordPress utiliza un sistema llamado WP-Cron.
El WP-Cron es un «cron virtual». Solo se activa cuando alguien visita tu sitio web. Si tienes una tarea programada para las 3:00 PM (como publicar un post o hacer una copia de seguridad), pero nadie visita tu sitio hasta las 5:00 PM, esa tarea no se ejecutará hasta las 5:00 PM. En ese momento, WordPress se da cuenta de que la tarea debió ejecutarse antes y marca el evento como «retrasado» (late).
Punto Clave: Diferencia entre error crítico y notificación
Es vital hacer una distinción importante que a menudo se pasa por alto. El mensaje «The scheduled event is late to run» que aparece en la herramienta de Salud del Sitio es clasificado por muchos desarrolladores experimentados no como un error crítico, sino como una notificación de comportamiento normal.
Esto es especialmente cierto cuando el aviso está vinculado a procesos intensivos en recursos. Según discusiones técnicas en el Foro de soporte de WordPress.org, estos retrasos suelen ser síntomas de que el servidor está gestionando la carga, no necesariamente de que algo se haya roto irreparablemente.
Causas comunes del error: El caso de W3 Total Cache
En mi experiencia optimizando sitios para clientes, he notado que este error no aparece de la nada. A menudo hay un culpable específico consumiendo los recursos del cron. Uno de los escenarios más frecuentes involucra la optimización de imágenes.
El evento w3tc_imageservice_cron
Si utilizas el popular plugin de optimización W3 Total Cache, es muy probable que el evento retrasado tenga el nombre técnico de w3tc_imageservice_cron. Este evento es el encargado de procesar y convertir tus imágenes a formatos de nueva generación, como WebP.
La conversión de imágenes es una tarea pesada para el servidor. Cuando habilitas la autoconversión en el plugin, este proceso consume tiempo y memoria. Si el proceso tarda más de lo que el WP-Cron espera, o si se interrumpe por falta de recursos, saltará la alerta de «A scheduled event is late WordPress».
Tal como se detalla en los hilos de soporte de la comunidad, este comportamiento es esperado cuando se procesan grandes bibliotecas de medios, y detenerlo podría significar simplemente que la conversión de imágenes se pausó temporalmente, no que tu sitio haya dejado de funcionar.
Si querés profundizar específicamente en este hook —cómo verificar si está activo, cuándo es seguro desactivarlo y cómo configurar correctamente el módulo Image Service—, escribimos una guía dedicada: qué es w3tc_imageservice_cron y cómo solucionarlo.
Impacto real en tu sitio web
Aquí es donde entra la calma. ¿Deberías preocuparte si ves este error? La respuesta corta es: depende, pero generalmente no es catastrófico para el frontend de tu web.
- Funcionalidad General: A pesar de que la herramienta Site Health marque el evento como tardío, esto no impide que el sitio siga funcionando correctamente de cara al usuario. Tus visitantes seguirán viendo el contenido.
- Publicaciones y Actualizaciones: Específicamente, este retraso en un servicio de imágenes (como el mencionado de W3TC) no impacta negativamente la programación de tus artículos de blog ni las actualizaciones automáticas de WordPress.
El riesgo crítico: Copias de seguridad
Sin embargo, hay un área donde este error no puede ser ignorado: los backups. La integridad de tus copias de seguridad depende totalmente de que el cron se ejecute a tiempo.
El error de «missed schedule» es un tema fundamental para plugins de seguridad y mantenimiento como UpdraftPlus. Si el cron falla consistentemente, tus copias de seguridad programadas no se realizarán, dejándote vulnerable ante cualquier desastre. La fiabilidad del cron es esencial para realizar copias, restauraciones y migraciones exitosas, como se indica en la documentación oficial de solución de problemas de UpdraftPlus.
La Solución Técnica Definitiva: Implementar un System Cronjob
Si gestionas un sitio web profesional, depender del tráfico de usuarios para disparar tus tareas programadas (el método por defecto de WP-Cron) es una mala práctica. La solución estándar en la industria para eliminar el error «A scheduled event is late WordPress» y asegurar la estabilidad es deshabilitar el cron de WordPress y utilizar el cron del servidor.
A continuación, te explico cómo hacerlo paso a paso. Esta es la misma configuración que implemento en todos los sitios de mis clientes para garantizar el rendimiento.
Paso 1: Deshabilitar el WP-Cron predeterminado
Primero, debemos decirle a WordPress que deje de intentar ejecutar el cron cada vez que alguien carga una página. Esto también mejorará ligeramente la velocidad de carga de tu web.
Debes editar tu archivo wp-config.php (ubicado en la raíz de tu instalación de WordPress) y añadir la siguiente línea antes de donde dice «That’s all, stop editing»:
define('DISABLE_WP_CRON', true);Paso 2: Configurar el Cronjob en el Servidor (cPanel)
Ahora que WordPress no ejecuta las tareas por sí mismo, debemos instruir al servidor para que lo haga cada cierto tiempo (por ejemplo, cada 5 o 15 minutos). Esto garantiza que las tareas se ejecuten puntualmente, haya o no haya visitas en la web.
1. Accede a tu panel de control de hosting (cPanel, Plesk, o terminal SSH).
2. Busca la sección llamada «Trabajos de cron» o «Cron Jobs».
3. Crea un nuevo trabajo de cron con la configuración de tiempo «Una vez cada 15 minutos» (o cada 5 minutos si tienes un sitio con mucho tráfico y transacciones).
4. En el campo de comando, debes usar una instrucción que llame al archivo wp-cron.php. El comando más robusto suele ser:
wget -q -O - https://tudominio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1Nota: Asegúrate de reemplazar «tudominio.com» por tu URL real.
¿Por qué esto soluciona el problema?
Al cambiar a un «system cronjob», eliminas la dependencia del tráfico. El servidor ejecutará el script religiosamente en el intervalo definido. Esto resuelve la gran mayoría de los problemas de eventos retrasados y, como se confirma en el foro de soporte de WordPress, es la configuración recomendada para entornos de producción serios.
Herramientas adicionales para el diagnóstico
Si después de aplicar la solución del servidor sigues viendo advertencias, o simplemente quieres tener un control granular sobre qué está ocurriendo en tu sitio, te recomiendo instalar un plugin de gestión de crons.
WP Crontrol: Tu mejor aliado
El plugin WP Crontrol es una herramienta esencial en el cinturón de herramientas de cualquier desarrollador. Te permite:
- Ver una lista de todos los eventos programados.
- Identificar exactamente cuál es el evento que está fallando (si es un backup, una optimización de imagen o una comprobación de actualizaciones).
- Ejecutar manualmente los eventos con un clic («Run now») para desbloquear colas atascadas.
- Eliminar eventos huérfanos de plugins que ya desinstalaste.
A menudo, el error «A scheduled event is late» se debe a un evento que quedó «colgado» en el pasado. Con WP Crontrol, puedes eliminar ese evento o forzar su ejecución, limpiando así el error en la Salud del Sitio.
Preguntas Frecuentes sobre eventos retrasados en WordPress
¿Este error afecta mi SEO?
Directamente, no. Google no penaliza tu sitio porque un evento cron interno se retrase. Sin embargo, si el retraso del cron impide que un plugin de caché regenere archivos o que tu sitemap se actualice, podría haber un impacto indirecto menor. La mejora de velocidad al desactivar el WP-Cron nativo (Paso 1 anterior) sí puede tener un impacto positivo en tus Core Web Vitals.
¿Por qué sucede en sitios con poco tráfico?
En sitios con pocas visitas, el WP-Cron nativo raramente se activa. Si configuras un post para publicarse a las 8:00 AM pero nadie visita tu web hasta las 2:00 PM, el post saldrá con 6 horas de retraso y WordPress generará el aviso de evento tardío.
¿Por qué sucede en sitios con mucho tráfico?
Paradójicamente, también ocurre en sitios muy grandes. Si un sitio tiene múltiples visitas simultáneas, puede haber condiciones de carrera (race conditions) donde múltiples procesos intentan bloquear el cron al mismo tiempo, o simplemente el servidor está tan ocupado sirviendo páginas que los procesos en segundo plano (background tasks) se quedan sin recursos de PHP para ejecutarse a tiempo.
Conclusión
El mensaje «A scheduled event is late WordPress» (Un evento programado se ha retrasado) es una advertencia que debemos atender, pero no temer. En la mayoría de los casos, es un indicador de que tu sistema de cron nativo no es suficiente para las tareas que tus plugins (como W3 Total Cache o UpdraftPlus) necesitan realizar.
La transición de un cron basado en visitas a un cron de sistema real es un paso de madurez para cualquier proyecto web. No solo eliminará este molesto error de la Salud del Sitio, sino que garantizará que tus copias de seguridad estén listas cuando las necesites y que tu servidor no desperdicie recursos comprobando tareas cada vez que un usuario entra a tu web.
Si has seguido los pasos de esta guía, tu WordPress debería estar ahora funcionando como un reloj suizo. Recuerda revisar periódicamente la pestaña de «Eventos programados» si usas WP Crontrol para asegurarte de que todo fluye correctamente.
¿Necesitas ayuda con esto?
Detectamos y solucionamos de raíz los problemas de rendimiento, errores y configuración de tu WordPress. Descubre nuestro servicio de auditoría técnica WordPress.
