Por qué va lento el escritorio de tu admin de WordPress
Si tu admin de WordPress va lento —o el escritorio de WordPress va muy lento mientras el frontend vuela—, no te lo estás imaginando. Un panel de administración lento es una de las quejas más habituales de los propietarios de sitios después de optimizar la parte pública. Los plugins de caché se saltan wp-admin. Tu CDN no toca el panel de administración. Cada clic en el backend de WordPress lanza una petición PHP nueva, carga los hooks de admin de todos los plugins activos y trae tu conjunto completo de datos en autoload desde wp_options.
El frontend carga en 1,2 segundos. El escritorio tarda más de 6. Mejoras el hosting. Funciona durante una semana. Y luego vuelve a ir lento.
Los plugins de caché no ayudan aquí: se saltan las páginas de admin a propósito. El CDN tampoco: el admin es dinámico. La lentitud viene de dentro del propio WordPress.
Buenos consejos que aun así no encuentran el problema
- "Actualiza tu versión de PHP"
- "Cámbiate a un hosting mejor"
- "Instala un plugin de caché"
- "Desactiva los plugins que no uses"
- "Sube el límite de memoria"
- Que el callback de admin_init de un plugin tarda 800 ms
- Que la Heartbeat API se dispara cada 15 segundos en el editor de entradas
- Que admin-ajax.php atiende varias peticiones en cola por carga de página
- Que hay 2 MB de datos en autoload en cada petición
- Que una consulta lenta se ejecuta en cada página del admin
Los cinco están bien. Actualizar PHP y añadir caché de objetos merece la pena de todas formas. Pero son suposiciones: ninguno te dice qué función se está comiendo los 4 segundos. No necesitas "desactivar plugins", necesitas saber qué plugin, qué hook y qué función.
¿Admin de WordPress lento pero frontend rápido? Localiza tu síntoma
"El admin de WordPress va muy lento" no es un problema: son cinco o seis distintos que desde el escritorio se sienten igual. Busca abajo tu síntoma exacto: la columna de causa te dice a qué mecanismo culpar, y la del siguiente paso te dice qué hacer de verdad.
| Síntoma | Causa más probable | Siguiente paso |
|---|---|---|
| El escritorio tarda más de 6 s pero el sitio público carga rápido | La caché de página y el CDN se saltan wp-admin por completo: estás notando el tiempo puro de PHP de los callbacks de admin_init de cada plugin |
Escanea primero con Site Doctor para ver si la configuración o la base de datos ya son la respuesta, luego perfila admin_init con Slow Callback Finder y ordena los callbacks por tiempo de ejecución |
| Cada página del admin se queda colgada un segundo antes de pintar nada | Datos en autoload demasiado grandes: el conjunto completo de autoload de wp_options se carga antes de que WordPress pinte nada |
Audita el tamaño de autoload de wp_options (objetivo: menos de 800 KB) y luego quita el autoload a los mayores culpables |
| wp-admin solo se congela al guardar una entrada o página | Callbacks lentos de save_post que se acumulan con el autoguardado y el tráfico de Heartbeat del bloqueo de entrada en la misma petición |
Baja Heartbeat a 120 s y luego cronometra los callbacks de save_post para encontrar el plugin que hace trabajo pesado al guardar |
| El admin va más lento con cada plugin que añado | Coste acumulado de admin_init / admin_menu: los hooks de admin de cada plugin se ejecutan en todas las páginas del admin, no solo en su propia pantalla de ajustes |
Ordena todos los callbacks de hooks por tiempo en vez de ir desactivando plugins uno a uno: normalmente hay uno o dos que dominan |
| El editor de entradas (Gutenberg) va a trompicones al escribir | Respuestas lentas de la REST API (/wp-json/) más el tráfico de autoguardado de Heartbeat: cada una es un arranque completo de WordPress |
Vigila en la pestaña Red de DevTools las peticiones lentas a /wp-json/; baja Heartbeat a 120 s en el editor |
| El sitio va lento solo para usuarios identificados, frontend incluido | Las peticiones de usuarios identificados se saltan la caché de página, así que el mismo coste de autoload y hooks golpea cada página, más las propias consultas de la barra de administración | Activa la caché de objetos y luego perfila una petición identificada igual que perfilarías wp-admin |
| 502 aleatorios en wp-admin con hosting gestionado | Datos en autoload por encima de ~1 MB: en hostings basados en memcached como WP Engine el límite por clave es de 1 MB, así que el blob de autoload falla al cachearse en silencio y la base de datos se lleva la paliza | Ejecuta la consulta del tamaño de autoload y baja el total de 800 KB con el Autoloader Optimizer |
| El admin va lento justo después de actualizar un plugin o el núcleo | Comprobaciones de actualizaciones y llamadas de licencia disparándose en admin_init: las peticiones HTTP externas bloquean la página hasta que expiran |
Cronometra los callbacks de admin_init y busca los que hacen llamadas HTTP salientes; el efecto suele desaparecer cuando los transients se repueblan |
| El admin va bien por la mañana y se arrastra por la tarde | Concurrencia de admin-ajax: el Heartbeat de cada pestaña de admin abierta satura tus workers de PHP a medida que se conecta el equipo | Cuenta las peticiones a admin-ajax.php durante 60 segundos en DevTools; baja Heartbeat a 120 s y cierra las pestañas de admin que no uses |
Paso 0: escanea todo el sitio antes de medir nada
Todo lo que hay bajo esta sección mide una cosa cada vez. Antes de gastar 15 minutos haciéndolo a mano, dedica un minuto a Site Doctor en WP Multitool: ejecuta todo el conjunto de comprobaciones en una sola pasada - OPcache, el drop-in de caché de objetos, la salud de Redis, una sonda de caché de página, solapes de optimizadores, exceso en la base de datos - y ordena los hallazgos empezando por el peor, cada uno enlazado al módulo que lo arregla.
¿Aún no tienes el plugin instalado? La página /scan/ gratuita mide el TTFB y la compresión desde fuera, lo que te dice si el servidor es lento antes de que el navegador reciba un byte. No ejecuta ninguna de las comprobaciones de arriba - esas necesitan correr en el servidor - así que una vez tengas el número de fuera, instala WP Multitool y ejecuta el escaneo. Site Doctor está tanto en Lite como en Pro; las fuentes de autoload y de consultas lentas capturadas que lee son solo de Pro, y un escaneo Lite nombra esas dos como fuentes saltadas en vez de dejar que una lista corta se lea como un sitio limpio.
Cuándo Multitool no es la primera respuesta acertada: si estás depurando una petición concreta y ya sabes cuál, ábrela con Query Monitor; si el trabajo es hacer rápido el front end público y desconectado, eso es un plugin de caché de página, no un escaneo de diagnóstico.
El escaneo te da la preselección. La profundidad por petición y por callback sigue viniendo de Query Monitor y del Slow Callback Finder más abajo en esta página - la lista ordenada solo te dice cuál merece abrirse. La lista completa de comprobaciones, la checklist de Redis y el uso por WP-CLI están en la documentación de Site Doctor; si prefieres hacerlo a mano, la checklist de 15 minutos de abajo hace el mismo trabajo con DevTools y SQL.
Acelera wp-admin: checklist de 15 minutos
Aquí no hay teoría: los mecanismos se explican en el resto de la guía, y cada paso enlaza con la sección que lo cubre. Necesitas DevTools, acceso a la base de datos y 15 minutos. Cada paso termina con un umbral de aprobado/suspenso, así que sabes cuándo parar.
-
Minutos 0-2: cuenta ticks de Heartbeat, no admin-ajax en bruto - Abre DevTools, pestaña Red, filtra por "admin-ajax". Quédate en cualquier página del admin durante 60 segundos y mira en el payload de cada petición si aparece
action=heartbeat: solo esas son Heartbeat. Más de aproximadamente 1 tick de heartbeat por minuto fuera del editor de entradas es elevado (el editor dispara ticks más a menudo, y es normal): pasa al paso 2. Si el total de admin-ajax es alto pero los ticks de heartbeat son pocos, Heartbeat no es tu problema: ese tráfico son plugins consultando, avisos del admin, autoguardado o varias pestañas de admin abiertas. Salta al paso 3. -
Minutos 2-4: baja Heartbeat a 120 segundos - Añade el filtro
heartbeat_settingsde la causa n.º 2 de abajo. Repite el recuento de 60 segundos sobre las peticiones conaction=heartbeat. Aprobado: los ticks bajan a más o menos uno cada 2 minutos. -
Minutos 4-6: cronometra el escritorio contra una pantalla de admin normal - Carga
/wp-admin/y luego Ajustes → Generales. Compara los tiempos de carga del documento en la pestaña Red. Si el escritorio va 2 o más segundos más lento que Ajustes, el problema son los widgets: mira la sección del escritorio. Si los dos van igual de lentos, la causa es global; sigue leyendo. -
Minutos 6-9: mide el tamaño del autoload - Ejecuta el SQL de la sección de autoload en phpMyAdmin o con
wp db query. Suspenso: más de 800 KB de datos en autoload en total. Arregla los mayores culpables antes que nada: este coste golpea absolutamente cada petición. - Minutos 9-12: prueba de caché de objetos con y sin - Si tu hosting ofrece Redis o Memcached, actívalo y desactívalo y carga la misma página del admin 3 veces en cada caso. Descarta la primera carga tras cada cambio —una caché fría hace esa medición inútil— y compara las medianas en caliente. Un segundo o más rápido con la caché activada significa que las lecturas repetidas a la base de datos eran un coste real: déjala puesta. Sin cambios: el cuello de botella probablemente no son lecturas cacheables de la base de datos —WordPress solo cachea lo que el código mete de verdad en la caché de objetos—, así que pasa al paso 6 y a las comprobaciones de HTTP saliente de la tabla de mecanismos de plugins.
-
Minutos 12-15: ordena los callbacks de admin_init - Cronometra lo que se ejecuta en
admin_init, con el Slow Callback Finder de WP Multitool o envolviendo a los sospechosos enmicrotime()(mira Cómo diagnosticarlo). Cualquier callback individual por encima de 200 ms es tu objetivo: arréglalo, sustitúyelo o reporta ese plugin.
¿Por qué va lento mi escritorio de WordPress? (el escritorio frente al resto de wp-admin)
"Escritorio lento" y "wp-admin lento" se usan indistintamente. Son dos problemas distintos. La pantalla de inicio del escritorio (/wp-admin/index.php) hace trabajo que ninguna otra pantalla del admin hace, así que antes de arreglar nada averigua cuál de los dos tienes.
- Cada widget del escritorio lanza sus propias consultas al cargar
- El widget de Eventos & Noticias descarga un feed remoto de WordPress.org
- Los widgets de plugins llaman a la API del fabricante solo para pintar una caja de estadísticas
- "De un vistazo" cuenta filas en tablas grandes de entradas y comentarios
- Los datos en autoload de wp_options se cargan en cada petición
- Los callbacks de admin_init se ejecutan en todas las pantallas, no solo en la suya
- Las comprobaciones de licencia bloquean la página con HTTP saliente
- El tráfico de Heartbeat y admin-ajax satura los workers de PHP
La prueba lleva un minuto. Carga /wp-admin/, luego Ajustes → Generales, y compara los tiempos de carga del documento en DevTools. Si el escritorio va 2 o más segundos más lento, son los widgets: quita los que no mires a diario con el fragmento de wp_dashboard_setup de la sección de victorias rápidas. Los widgets que hacen llamadas HTTP externas son los peores: la página se queda esperando al servidor de otro.
Si las dos pantallas van igual de lentas, tu problema no es el escritorio: es wp-admin entero. Eso es tamaño de autoload y callbacks de admin_init, y está en las causas de abajo. Arreglar primero los widgets del escritorio en ese caso no te aporta nada en las otras 40 pantallas que usas a diario.
4 causas reales de un admin de WordPress lento
1. El cuello de botella de admin-ajax.php
WordPress enruta todas las peticiones AJAX por un único archivo: admin-ajax.php. Cada petición arranca toda la pila de WordPress. Si 5 plugins hacen llamadas AJAX en el escritorio, son 5 arranques completos de WordPress extra por cada vista del escritorio.
# Check admin-ajax traffic in your browser:
# DevTools → Network → Filter "admin-ajax"
# Look at how many requests fire on a single page load
2. La sobrecarga de la Heartbeat API
Heartbeat de WordPress envía una petición AJAX cada 15–60 segundos para comprobar autoguardados, bloqueos de entradas y notificaciones. Cada petición carga la pila completa de WordPress. En hosting compartido, esto solo ya puede saturar tus workers de PHP.
// Slow down heartbeat to reduce load:
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 120; // seconds (default: 15-60)
return $settings;
});
3. Callbacks lentos de plugins en admin_init
Los plugins se enganchan a admin_init, admin_menu y admin_enqueue_scripts. Eso se ejecuta en todas las páginas del admin, no solo en la página de ajustes del plugin. Un único callback mal escrito puede añadir más de 500 ms a cada petición del admin.
4. Autoload inflado
La misma consulta de autoload de wp_options que afecta a tu frontend se ejecuta también en cada página del admin. Pero las páginas del admin nunca se cachean, así que notas el impacto completo cada vez. Lee la guía completa del autoload.
Plugins que suelen ralentizar el admin de WordPress
No te voy a dar una lista negra con nombres: las versiones de los plugins cambian y los autores arreglan cosas, así que cualquier lista de nombres queda obsoleta el día que se publica. Los mecanismos no cambian. Estas cinco clases causan la mayoría de paneles de administración lentos que veo, se llame como se llame el plugin este año.
| Mecanismo | Qué hace | Cómo lo detectas | Qué hacer |
|---|---|---|---|
| Comprobación de licencia en admin_init | Llama al servidor del fabricante en cada página del admin para validar tu clave, y bloquea la página hasta que la petición vuelve o expira | El panel de HTTP API de Query Monitor muestra la misma petición saliente en todas las pantallas; el admin va peor cuando la API del fabricante va lenta | Cronometra el callback para confirmarlo y luego repórtalo al autor: la solución es cachear la comprobación en un transient, y eso solo puede hacerlo él |
| Widgets remotos de changelog o noticias | Descarga un feed RSS o JSON del fabricante para pintar un widget del escritorio | El inicio del escritorio va lento, el resto de wp-admin va bien (mira la prueba del escritorio) | Quita el widget con remove_meta_box(): el fragmento está en victorias rápidas |
| Escáneres de seguridad que se ejecutan al cargar el admin | Recorre el sistema de archivos o comprueba hashes durante admin_init en vez de hacerlo de forma programada |
Todas las pantallas del admin van lentas, la CPU se dispara en cada clic y un callback de admin_init marca cientos de ms |
Mueve los escaneos a WP-Cron en los ajustes del plugin; si no existe ese ajuste, ya tienes tu respuesta sobre ese plugin |
| Maquetadores visuales que cargan los recursos del editor en todas partes | Encola el paquete completo de CSS/JS del editor en cada pantalla del admin, no solo donde maquetas páginas | La pestaña Red muestra los scripts del maquetador cargándose en pantallas que nunca lo usan | Limita el maquetador a tipos de contenido concretos en sus ajustes y busca una opción de "cargar recursos solo donde se usan" |
| Plugins de marketing consultando APIs externas | Trae estadísticas de campañas, número de suscriptores o estado de sincronización de un servicio externo al cargar el admin | Llamadas HTTP salientes o de admin-ajax en todas las pantallas; la velocidad del admin va al ritmo del humor de la API de terceros | Desactiva el widget de estadísticas, alarga el intervalo de sincronización o limita la presencia del plugin a sus propias páginas del admin |
Para confirmar con qué clase estás lidiando: el panel de HTTP API de Query Monitor pilla las clases de comprobación de licencia y de sondeo, DevTools pilla las de recursos y widgets, y cronometrar callback a callback en admin_init pilla la del escáner. No hace falta adivinar: cada una deja una huella distinta.
Cómo diagnosticarlo
- Abre DevTools en cualquier página del admin - Ve a la pestaña Red. Apunta el tiempo de carga de la página principal y luego cuenta las peticiones a admin-ajax. Si ves 5 o más llamadas AJAX, son 5 arranques completos de WordPress.
-
Perfila los callbacks de los hooks -
SAVEQUERIESsolo registra consultas a la base de datos, no el tiempo de ejecución de PHP. Para cronometrar las funciones que corren enadmin_init, usa un profiler como el Slow Callback Finder de WP Multitool, o envuelve los callbacks sospechosos enmicrotime()y registra las diferencias. - Desactiva plugins de uno en uno - Mide la carga de la página del admin tras cada desactivación. Cuando se vuelva rápida, has encontrado al culpable. Es tedioso, pero definitivo.
- Comprueba el número de consultas - Una página del admin sana debería ejecutar de 50–100 consultas. Si ves más de 300, hay plugins añadiendo consultas innecesarias a cada página del admin. Mira nuestra guía de consultas lentas para saber cómo cazarlas.
-
Vigila la frecuencia de Heartbeat - En DevTools, mira la pestaña Red durante 60 segundos y comprueba en el payload de cada petición a
admin-ajax.phpsi apareceaction=heartbeat. Cada una es una petición PHP completa. Muchas llamadas a admin-ajax con pocos ticks de heartbeat significan que el tráfico son plugins, no Heartbeat.
Query Monitor enseña consultas. Slow Callback Finder enseña callbacks.
Query Monitor es el primer paso correcto: su panel "Queries by Component" muestra el número de consultas a la base de datos y las llamadas a la HTTP API por plugin. Pero cuando tu admin de WordPress va lento y el número de consultas parece normal, el cuello de botella suele ser el tiempo de ejecución de PHP en admin_init, admin_menu o admin_enqueue_scripts, y eso no es lo que mide Query Monitor.
El Slow Callback Finder de WP Multitool cronometra cada callback registrado en esos hooks y los ordena por milisegundos, así que ves plugin_xyz::check_license() - 847 ms en admin_init en vez de adivinar qué plugin desactivar. Funciona junto a Query Monitor, no en su lugar.
¿Llevas una hora en DevTools y sigues sin encontrarlo?
Slow Callback Finder se ejecuta dentro de tu wp-admin y ordena cada callback de hook por tiempo de ejecución. Sin adivinar y sin la ruleta de desactivarlo todo. Es un módulo Pro, no incluido en la edición Lite de $9.
Mira cómo lo encuentra WP Multitool →Victorias rápidas una vez sabes qué caso tienes
Baja la frecuencia de Heartbeat
Cambiar Heartbeat de 15 s a 120 s recorta un 87% las peticiones de admin-ajax en segundo plano (pestañas del editor, de 15 s a 120 s). La mayoría de sitios no notarán ninguna diferencia funcional.
Desactiva widgets del escritorio
Cada widget del escritorio lanza sus propias consultas al cargar la página. Quita los widgets de plugins que no mires a diario:
add_action('wp_dashboard_setup', function() {
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
remove_meta_box('dashboard_primary', 'dashboard', 'side');
// Remove plugin widgets that make external API calls
});
Añade caché de objetos
Redis o Memcached mejoran el rendimiento del admin porque las páginas del admin hacen muchas consultas y nunca se cachean como página. Las lecturas a la base de datos que se repiten en cada página del admin pasan a servirse desde memoria.
Por qué wp-admin se vuelve más lento con el tiempo
La lentitud del admin casi nunca es un único problema grande. No hay un plugin que sea el villano. Es la acumulación de:
- 15 plugins que añaden 50 ms cada uno a admin_init = 750 ms de base
- Widgets del escritorio haciendo llamadas a APIs externas en cada carga
- Manejadores AJAX que arrancan WordPress entero para tareas triviales
- Datos en autoload que crecen, a menudo decenas de KB al mes, por el trasiego de plugins
No puedes arreglar lo que no ves. Necesitas cronometraje por callback: saber exactamente cuánto tarda cada función, no solo qué plugin va lento.
Datos en autoload en hosting gestionado (WP Engine, Flywheel)
Si estás en WP Engine o Flywheel y el panel de administración va lento, comprueba primero tus datos en autoload. WP Engine recomienda mantener el total de opciones en autoload por debajo de 800 KB. Por encima de eso, cada petición del admin carga en memoria un conjunto de resultados de wp_options demasiado grande, y como las páginas del admin nunca se cachean, notas el coste completo en cada clic.
En hostings basados en memcached como WP Engine con la caché de objetos activada, el autoload inflado por encima de ~1 MB también puede provocar errores 502 intermitentes: el límite por clave de Memcached es de 1 MB, así que el blob de autoload falla al cachearse en silencio.
Audita tu tamaño de autoload con una sola consulta:
-- Total autoloaded data (target: under 800 KB)
SELECT ROUND(SUM(LENGTH(option_value)) / 1024, 1) AS autoload_kb
FROM wp_options
WHERE autoload IN ('yes','on','auto','auto-on');
-- Top 20 biggest autoloaded options
SELECT option_name, ROUND(LENGTH(option_value) / 1024, 1) AS kb
FROM wp_options
WHERE autoload IN ('yes','on','auto','auto-on')
ORDER BY LENGTH(option_value) DESC
LIMIT 20;
Culpables habituales: transients rancios, cachés de comprobación de actualizaciones de plugins y blobs enormes de opciones o temas de maquetadores visuales. El arreglo seguro es quitar el autoload a opciones concretas —wp option set-autoload OPTION_NAME off— y no borrar filas en masa. El Autoloader Optimizer de WP Multitool ordena a los culpables y quita el autoload sin riesgos.
Si el autoload ya está por debajo de 800 KB y tu panel de administración sigue yendo muy lento, el cuello de botella se ha movido a los callbacks de los hooks, y ahí es donde entra el Slow Callback Finder.
Antes y después: qué aspecto tiene "arreglado"
No te voy a enseñar números inventados de clientes: un antes/después que no has medido tú es ficción. Lo que sí puedo darte es la hoja que anoto antes de tocar nada. Rellénala primero, cambia una cosa cada vez y vuelve a medir tras cada cambio. Sin la columna del "antes" nunca sabrás qué arreglo funcionó de verdad.
| Métrica | Cómo capturarla | Qué aspecto tiene "arreglado" |
|---|---|---|
| TTFB del admin | Pestaña Red de DevTools, la primera petición del documento en /wp-admin/. Cárgalo 3 veces y quédate con la mediana |
Reducido más o menos a la mitad respecto a tu propia línea base: el aprobado es la diferencia, no un número absoluto |
| Tamaño de autoload (KB) | La consulta SQL de la sección de autoload | Menos de 800 KB en total |
| Callback más lento de admin_init (ms) | Slow Callback Finder, o diferencias de microtime() alrededor de los sospechosos |
Tu peor callback muy por debajo de su número inicial; los 200 ms de la checklist son una guía aproximada, no un umbral estricto |
| Ticks de Heartbeat por minuto | Pestaña Red de DevTools, filtra "admin-ajax" y cuenta durante un minuto las peticiones con action=heartbeat en el payload |
Más o menos un tick cada 2 minutos en una pestaña de admin inactiva tras cambiar el intervalo a 120 s; un total alto de admin-ajax con pocos ticks de heartbeat apunta a los plugins, no a Heartbeat |
| Consultas por página del admin | El número total de consultas de Query Monitor en una pantalla típica | 50-100; cualquier cifra por encima de 300 significa que algún plugin se está portando mal |
Dos reglas hacen que los números sean honestos. Mide en la misma página, el mismo navegador y a la misma hora del día: la carga del admin varía con la actividad del equipo. Y cambia una sola cosa entre mediciones, o no podrás atribuir la mejora a nada. Los valores absolutos importan menos que las diferencias: reducir a la mitad el TTFB del admin en un hosting barato vale más que un número "rápido" que no puedes reproducir.
FAQ del admin lento de WordPress
¿Por qué va tan lento mi admin de WordPress?
Tu admin de WordPress va lento porque wp-admin se salta la caché de página por completo. Cada petición del admin arranca la pila completa de WordPress, ejecuta los hooks de admin de todos los plugins activos (admin_init, admin_menu, admin_enqueue_scripts), carga todo tu conjunto de datos en autoload desde wp_options y puede lanzar varias peticiones a admin-ajax.php en paralelo. Tu frontend puede ir rápido porque está cacheado; tu panel de administración no puede.
¿Por qué va lento mi admin de WordPress mientras el frontend vuela?
Las páginas del frontend se sirven desde la caché de objetos, la caché de página o un CDN. El escritorio de WordPress siempre lo genera PHP de cero en tu servidor. Un plugin que añade 50 ms a admin_init no toca en absoluto las páginas cacheadas del frontend, pero se suma en cada clic del admin. Por eso mejorar el hosting ayuda un rato y luego el panel vuelve a parecer lento.
¿Por qué va lento mi escritorio de WordPress pero el resto de páginas del admin van bien?
Entonces el problema es la pantalla de inicio del escritorio en sí, no wp-admin en conjunto. Los widgets del escritorio lanzan sus propias consultas en cada carga, el widget de Eventos & Noticias descarga un feed remoto de WordPress.org y los widgets de plugins a menudo llaman a la API del fabricante solo para pintar una caja de estadísticas. Quita con remove_meta_box() en wp_dashboard_setup los widgets que no mires a diario. Si todas las pantallas del admin van igual de lentas, mira mejor los datos en autoload y los callbacks de admin_init: los widgets no son tu cuello de botella.
¿Cómo encuentro qué plugin está ralentizando el admin de WordPress?
El método manual: desactivar plugins de uno en uno y medir la carga del admin después de cada uno. El método rápido: perfilar los callbacks de los hooks. Query Monitor muestra las consultas a la base de datos por plugin; el Slow Callback Finder de WP Multitool va más allá: ordena cada callback de admin_init y admin_menu por tiempo de ejecución, así que ves la función exacta, no solo el nombre del plugin.
¿Cuántos datos en autoload son demasiados para wp-admin?
WP Engine recomienda mantener el total de datos en autoload por debajo de 800 KB. Por encima, cada petición del admin carga en memoria un conjunto de resultados de wp_options demasiado grande. En hostings basados en memcached como WP Engine, el autoload inflado por encima de ~1 MB también puede provocar errores 502, porque el límite por clave de Memcached es de 1 MB. Audítalo con una sola consulta SQL o con el Autoloader Optimizer de WP Multitool.
¿Mejorar el hosting arregla un escritorio de WordPress lento?
A veces, si estás en hosting compartido con 128 MB de memoria PHP y sin caché de objetos. Pero si ya estás en hosting gestionado (WP Engine, Flywheel) y el panel de administración sigue lento, el cuello de botella casi siempre son los callbacks de los plugins, el autoload inflado o el tráfico de admin-ajax, no las características del servidor. Más RAM no va a arreglar una comprobación de licencia de 800 ms que se ejecuta en cada página del admin.
¿Cómo acelero el admin de WordPress sin desactivar plugins?
Empieza por tres cambios de bajo riesgo: (1) baja Heartbeat de 15 s a 120 s, (2) quita los widgets del escritorio que hacen llamadas a APIs externas, (3) activa la caché de objetos si tu hosting la soporta. Después perfila los callbacks de los hooks para dar con esa función que cuesta cientos de milisegundos: arregla o sustituye ese plugin en vez de recortar funcionalidad en todo el sitio.
Guías relacionadas
Encuentra el callback exacto que ralentiza tu admin de WordPress
El Slow Callback Finder de WP Multitool cronometra cada callback de hook en wp-admin y los ordena por tiempo de ejecución. Ves plugin_xyz::check_license() - 847 ms en admin_init en vez de ir desactivando plugins uno a uno. Funciona junto a Query Monitor. Sin impacto en el frontend.