Cada vez que entras en el escritorio de WordPress, o en las pantallas de plugins o de actualizaciones, el core se lanza a preguntar a api.wordpress.org si hay versiones nuevas.
No siempre se hace la llamada HTTP entera, pero sí comprueba el transient, y si ha pasado el tiempo que él considera oportuno, dispara la petición.
Lo hace con tres frecuencias distintas según la página que estás cargando:
- En
Escritorio → Actualizaciones(update-core.php), cada minuto. - En la pantalla de Plugins (
plugins.php), cada hora. - En el resto del
wp-admin, cada 12 horas.
La primera es la peor, pues basta con que entres y salgas un par de veces en pocos minutos para que WordPress haga tres llamadas HTTP a WordPress.org (una para core, otra para plugins, otra para temas) solo por consultar algo que ya consultó hace cuarenta segundos.
En servidores justos, o con conexión saliente lenta, se nota y mucho, así que vamos a poner un poco de orden en estas cosas que se hacen sin tu permiso, para que consuman menos recursos, pero sin dejar de mantener segura tu web.
Qué dispara cada llamada
El mecanismo real son tres acciones enganchadas al hook admin_init:
_maybe_update_core, que llama awp_version_check()._maybe_update_plugins, que llama awp_update_plugins()._maybe_update_themes, que llama awp_update_themes().
Cada una mira el transient correspondiente y, si ha caducado, hace la llamada HTTP.
Si las quitas del admin_init el exceso de comprobaciones desaparece y solo queda el cron programado, que se lanza por defecto dos veces al día sin molestar a nadie.
El snippet para quitarlo
En un mu-plugin preferentemente:
/* Frenar comprobaciones de actualizaciones en cada carga de wp-admin
* WP-Cron sigue ejecutándose dos veces al día como siempre
*/
function ayudawp_remove_admin_update_checks() {
remove_action( 'admin_init', '_maybe_update_core' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'admin_init', '_maybe_update_themes' );
}
add_action( 'init', 'ayudawp_remove_admin_update_checks' );
Con esto se dejan de hacer esas llamadas fantasma en los logs de peticiones salientes y el escritorio carga más rápido, sobre todo si tienes muchos plugins instalados.
Lo que sigue funcionando
Sigues teniendo actualizaciones, no te preocupes. WP-Cron mantiene tres tareas programadas (wp_version_check, wp_update_plugins y wp_update_themes) que se ejecutan cada 12 horas y dejan el transient fresco.
Cuando entres al admin, las notificaciones del tipo hay una nueva versión aparecerán igual, solo que con datos cacheados hasta como mucho medio día, mucho más frecuente de lo que la mayoría de la gente suele actualizar.
Si alguna vez quieres forzar una comprobación manual, vas a Escritorio → Actualizaciones y pulsas Comprobar de nuevo. El enlace llama a wp_version_check() directamente y se salta todos los aplazamientos definidos.
Aviso importante con wp-cron desactivado
Este truco solo funciona bien si tu cron está activo. Si tienes DISABLE_WP_CRON en true en wp-config.php y no has configurado un cron de verdad en el servidor que llame a wp-cron.php, te quedas sin comprobaciones nunca, y eso sí es un problema de seguridad.
Comprueba con WP Crontrol que los tres hooks de actualizaciones están programados y ejecutándose, y si no lo están, soluciona primero el cron antes de aplicar este código.
Si te ha servido este truco tienes uno parecido para bajarle el ritmo al widget de salud del sitio y a su cron semanal que ejecuta en segundo plano.
Lo publiqué hace poco en la categoría de WPO del blog y van en la misma línea de ir metiendo tijera a todas esas tareas de fondo que ejecuta WordPress y que no aportan nada en el día a día.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!






