WordPress Hosting

Hoy toca optimizar la carga de wp-admin reduciendo las comprobaciones de actualizaciones de WordPress, plugins y temas

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 a wp_version_check().
  • _maybe_update_plugins, que llama a wp_update_plugins().
  • _maybe_update_themes, que llama a wp_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.

Compártelo en tus redes
Resúmelo con tu IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 0 / 5. Total de votos: 0

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio