WordPress 6.9 llega con una mejora técnica que, aunque no brilla tanto como un nuevo editor o un tema por defecto, puede notarse de forma muy clara en algo que obsesiona a cualquier administrador de sistemas y a muchos SEOs: el tiempo hasta el primer byte (TTFB). El proyecto ha decidido cambiar el momento en el que se lanza WP-Cron, el sistema de tareas programadas interno de WordPress, para evitar retrasos innecesarios en la carga de las páginas.
Hasta ahora, la llamada a WP-Cron se disparaba durante el hook init. A partir de WordPress 6.9, se mueve al hook shutdown. El objetivo es sencillo: evitar que el intento de ejecutar tareas cron añada hasta un segundo extra al TTFB cada vez que toca lanzar wp-cron.php.
WP-Cron no es un cron del sistema como tal, sino un sistema de tareas programadas que WordPress activa cuando alguien visita la web. En lugar de depender de crontab a nivel de servidor, el núcleo intenta hacer una petición HTTP interna (loopback) hacia wp-cron.php para que se ejecuten las tareas pendientes: publicar entradas programadas, limpiar transitorios, lanzar tareas de plugins, etcétera.
En teoría, esa petición se realiza como una llamada “asíncrona y no bloqueante”, usando wp_remote_post() con el parámetro blocking => false. En la práctica, durante el ciclo de desarrollo de WordPress 6.9 se ha comprobado que, en muchos entornos, esta llamada sí introducía un retraso adicional antes de empezar a devolver contenido al navegador.
Eso se traducía en algo muy concreto: en el momento en que WordPress decidía “toca lanzar WP-Cron”, el usuario podía ver su TTFB incrementar alrededor de 1 segundo, incluso aunque el resto de la página estuviera optimizada.
init a shutdown ayuda al rendimientoEl cambio introducido en WordPress 6.9 es simple pero efectivo: en lugar de intentar lanzar WP-Cron durante init —cuando aún se está preparando la respuesta—, el disparo de la llamada se retrasa hasta el hook shutdown, cuando WordPress ya ha enviado la salida principal al navegador.
La lógica detrás del cambio es clara:
init, se comprueba si toca ejecutar cron y se intenta una llamada no bloqueante a wp-cron.php.shutdown, se lanza la llamada para ejecutar WP-Cron, de forma que cualquier latencia afecta al servidor, pero no al TTFB ni a la percepción del usuario.El impacto práctico, según la propia descripción del cambio, es un posible recorte de hasta 1 segundo de TTFB en las peticiones en las que se dispara WP-Cron.
Aunque a primera vista pueda parecer un ajuste menor, este cambio encaja de lleno en el enfoque de rendimiento que WordPress lleva años impulsando desde el núcleo. Para administradores de sistemas, proveedores de hosting y responsables de sitios de alto tráfico, hay varios puntos clave:
DISABLE_WP_CRON) y programar un cron real del sistema que llame a wp-cron.php de forma periódica. Ese sigue siendo el enfoque más robusto, especialmente en sitios de alto tráfico o con muchas tareas programadas, pero el cambio de WordPress 6.9 reduce el impacto negativo para aquellos proyectos que todavía dependen del cron simulado.wp-cron.php pueden ser especialmente lentas o inestables. Al mover la ejecución a shutdown, esa lentitud deja de afectar al usuario final en primera instancia.Sí. Este cambio mejora el comportamiento por defecto, pero no sustituye las buenas prácticas clásicas:
define('DISABLE_WP_CRON', true);).cron del sistema (cada 1–5 minutos) que llame a wp-cron.php vía CLI o HTTP.WordPress 6.9 hace que el comportamiento por defecto sea menos perjudicial para el rendimiento, pero no convierte al cron interno en la opción óptima para cualquier escenario.
Para la mayoría de los usuarios finales y propietarios de sitios, el cambio será transparente. No hay que tocar ajustes ni añadir código: viene integrado en el núcleo.
Lo que sí pueden notar, especialmente en sitios con tráfico moderado y cron interno activo, es:
¿Este cambio en WordPress 6.9 elimina la necesidad de usar cron del sistema?
No. El nuevo comportamiento reduce el impacto del cron interno sobre el TTFB, pero en sitios serios sigue siendo recomendable desactivar WP-Cron por defecto y usar un cron real del sistema para ejecutar wp-cron.php de forma periódica y controlada.
¿Voy a notar siempre 1 segundo menos de TTFB tras la actualización?
No en todas las peticiones. La mejora potencial de hasta 1 segundo se aplica en aquellas solicitudes donde WordPress debía disparar WP-Cron y la llamada loopback introducía latencia. En otras peticiones, el TTFB dependerá de otros factores: PHP, base de datos, caché, red, etc.
¿Debo cambiar algo en mi configuración de plugins de caché o rendimiento?
En principio no. El cambio está en el núcleo y es transparente. Aun así, siempre es buena idea, después de una actualización mayor, vaciar cachés (de página, OPCache, CDN) y monitorizar métricas de TTFB y rendimiento durante unos días.
¿Cómo puedo saber si WP-Cron está afectando a mi tiempo de carga?
Se puede usar el registro de debug de WordPress y herramientas de profiling (plugins de monitorización, APM del proveedor de hosting, etc.) para comprobar cuándo se ejecuta WP-Cron y cruzarlo con los picos de TTFB. También es útil revisar los logs del servidor para ver cuánto tarda la llamada a wp-cron.php cuando se dispara.
