Tu WordPress va lento y no son las imágenes: 7 causas ocultas y cómo solucionarlas

Has comprimido las imágenes, activado la caché y eliminado los plugins que no utilizabas. PageSpeed incluso parece estar de acuerdo contigo. Pero WordPress continúa tardando demasiado en responder.
Puede que el problema del WordPress lento no esté en lo que descarga el navegador, sino en todo lo que ocurre antes: consultas que no terminan, tareas acumuladas, opciones que se cargan sin necesidad o procesos bloqueados.
Instalar otro plugin para intentar acelerar WordPress no siempre solucionará el problema. A veces solo añade más trabajo a un WordPress que ya tiene demasiado. Estas son siete causas menos visibles, cómo detectarlas y qué puedes hacer para resolverlas.
Tabla de contenidos
- Antes de todo averigua dónde se produce la lentitud
- WordPress carga demasiadas opciones autoload
- WP-Cron está ejecutando demasiadas tareas
- WooCommerce tiene acciones programadas atascadas
- La base de datos acumula transients caducados
- Las solicitudes loopback están bloqueadas
- Una consulta lenta está frenando una pantalla concreta
- Un plugin eliminado ha dejado datos y tareas residuales
- Preguntas frecuentes
Antes de todo averigua dónde se produce la lentitud
No empieces a limpiar la base de datos ni a desactivar funciones al azar. Primero intenta localizar el problema.
Comprueba si la lentitud:
- Afecta a toda la web o solamente a una página.
- También aparece dentro del panel de administración.
- Se concentra en productos, pedidos o procesos de WooCommerce.
- Se produce de forma continua o solo a determinadas horas.
- Coincide con copias de seguridad, importaciones o envíos de correo.
- Aparece antes de que la página empiece a mostrarse.
El tiempo que tarda el servidor en enviar el primer byte (conocido como TTFB) puede darte una primera pista. Si la espera ocurre antes de que el navegador empiece a recibir contenido, comprimir otra imagen probablemente no resolverá el problema.
Qué deberías revisar primero
| Síntoma | Posible causa | Dónde comprobarlo |
|---|---|---|
| Toda la web tarda en empezar a cargar | Opciones autoload o consultas lentas | Salud del sitio o Query Monitor |
| Las tareas se ejecutan tarde o no se completan | WP-Cron o solicitudes loopback | WP Crontrol o Salud del sitio |
| WooCommerce retrasa pedidos, correos o suscripciones | Acciones programadas atascadas | WooCommerce → Estado |
| La base de datos crece continuamente | Transients o restos de plugins | Herramienta de limpieza de la base de datos |
| Solo una pantalla es lenta | Consulta ineficiente o duplicada | Query Monitor |
| La lentitud aparece a determinadas horas | Cron, copias de seguridad o procesos automáticos | WP Crontrol o registros del servidor |
Aplica un cambio cada vez y vuelve a medir. Si modificas cinco elementos al mismo tiempo, puede que la web mejore, pero no sabrás qué estaba provocando el problema ni cómo actuar si vuelve a ocurrir.
Para completar el diagnóstico, puedes utilizar ConnectiLogs, una herramienta de cdmon que presenta de forma visual la información de los registros del servidor y ayuda a detectar errores, accesos fallidos o comportamientos sospechosos.
Antes de modificar la base de datos o la configuración de WordPress, crea una copia de seguridad. Si es posible, prueba primero los cambios en un entorno de staging.
WordPress carga demasiadas opciones autoload
¿Qué ocurre?
WordPress guarda en la tabla wp_options muchos de los datos que necesita para funcionar, como los ajustes del tema, la configuración de los plugins y otras preferencias de la web.
Algunas de estas opciones están marcadas como autoload, lo que significa que WordPress las carga automáticamente cada vez que alguien visita una página, aunque no sean necesarias en ese momento.
Esto no supone un problema cuando hay pocos datos. La web puede empezar a ralentizarse cuando acumula datos de plugins que ya no utilizas, temas eliminados o herramientas que guardan más información de la necesaria.
¿Cómo solucionarlo?
Entra en:
Herramientas → Salud del sitio → Estado
WordPress puede mostrar una advertencia si detecta una gran cantidad de opciones cargadas automáticamente.
Para investigar su origen, puedes utilizar una herramienta como Advanced Database Cleaner o realizar una consulta mediante WP-CLI, disponible en cdmon a partir del plan de alojamiento Senior, si tienes conocimientos técnicos. El objetivo no es eliminar las opciones que más espacio ocupan, sino identificar qué plugin o tema las ha creado.
Que una opción sea grande no significa que sea innecesaria: puede guardar información importante para el funcionamiento de la web.
Busca especialmente:
- Ajustes de plugins que ya no utilizas.
- Información temporal que se ha guardado de forma permanente.
- Datos repetidos.
- ·Configuraciones muy pesadas de un tema anterior.
Una vez identificado el origen, comprueba si el propio plugin incluye una función para limpiar o regenerar esos datos. Si continúa instalado, actualizarlo o revisar su configuración suele ser más seguro que eliminar registros manualmente.
WP-Cron está ejecutando demasiadas tareas
¿Qué ocurre?
WP-Cron se encarga de las tareas programadas de WordPress: comprobar actualizaciones, publicar entradas, enviar avisos, ejecutar copias de seguridad o activar procesos de determinados plugins.
A diferencia de las tareas programadas del servidor, WP-Cron se activa cuando alguien visita la web. Por eso, en una página con muchas visitas puede ejecutarse más veces de las necesarias, mientras que en una con poco tráfico algunas tareas pueden tardar en completarse.
El problema no suele estar en WP-Cron, sino en las tareas que algunos plugins añaden a este sistema.
Si las publicaciones programadas no aparecen a tiempo, los correos se envían con retraso o la web se ralentiza siempre a ciertas horas, es posible que alguna de esas tareas se esté ejecutando con errores o con demasiada frecuencia.
¿Cómo solucionarlo?
Puedes revisar los eventos con WP Crontrol, desde:
Herramientas → Eventos cron
La herramienta muestra qué tareas están programadas, cuándo deben ejecutarse y con qué frecuencia. Presta atención a:
- Eventos que deberían haberse ejecutado y aparecen retrasados.
- Tareas que se repiten cada pocos minutos sin una razón clara.
- Tareas automáticas creadas por plugins que ya has eliminado.
- Varias tareas similares creadas por el mismo componente.
No elimines una tarea únicamente porque no reconoces su nombre. Busca el nombre del hook para identificar qué plugin la ha creado. Si la tarea vuelve a aparecer después de borrarla, significa que algún plugin o componente de la web continúa programándola.
En webs con mucho tráfico o numerosas tareas automáticas, puede ser más estable programar su ejecución directamente desde el servidor, en lugar de depender de las visitas.
Este cambio debe hacerse correctamente: si desactivas WP-Cron sin configurar antes una tarea que lo sustituya, las publicaciones, los correos y otros procesos programados podrían dejar de ejecutarse.
WooCommerce tiene acciones programadas atascadas
¿Qué ocurre?
WooCommerce y muchas de sus extensiones utilizan Action Scheduler, un sistema que se encarga de ejecutar tareas automáticas en segundo plano. Por ejemplo, puede enviar correos, renovar suscripciones, comunicar información a otras aplicaciones o actualizar pedidos.
Cuando estas tareas se acumulan, WordPress no siempre muestra un error. En su lugar, puedes notar que los pedidos tardan en actualizarse, los correos llegan con retraso o el panel de administración funciona cada vez más lento.
Puedes revisar la cola en:
WooCommerce → Estado → Acciones programadas
Action Scheduler también puede aparecer en Herramientas → Acciones programadas, según los plugins instalados. Su documentación oficial recoge ambas rutas.
Filtra las acciones por estado:
- Pendientes: están esperando a ejecutarse.
- Fallidas: se intentaron ejecutar, pero no terminaron correctamente.
- En curso: deberían estar procesándose.
- Completadas: ya han finalizado.
Tener acciones pendientes no implica necesariamente un problema. La señal de alerta aparece cuando su número aumenta constantemente, llevan demasiado tiempo esperando o muchas fallan con el mismo hook.
¿Cómo solucionarlo?
Imagina que encuentras cientos de tareas fallidas relacionadas con una extensión de suscripciones. Eliminarlas puede vaciar la lista durante un tiempo, pero no resolverá el problema que provoca los fallos. Si no corriges la causa, las tareas volverán a acumularse.
Abre una de las tareas fallidas, localiza su nombre (hook) y consulta el registro para saber por qué no se ha completado. Después:
- Identifica qué plugin o extensión ha creado la tarea.
- Actualiza ese plugin y los complementos que necesita para funcionar.
- Comprueba si depende de una conexión con un servicio externo, como una plataforma de pagos, suscripciones o correo.
- Soluciona el error indicado en el registro antes de ejecutar de nuevo la tarea.
- Verifica que las tareas pendientes empiezan a completarse y que la cola disminuye.
Las colas muy grandes pueden necesitar procesamiento mediante WP-CLI o intervención técnica. La documentación de Action Scheduler recomienda WP-CLI para cargas elevadas porque evita algunas limitaciones de las peticiones web habituales. Puedes consultar su documentación sobre WP-CLI.
En cdmon, el acceso a WP-CLI está disponible a partir del plan de alojamiento Senior. Si tu plan no lo incluye o no tienes experiencia utilizando comandos, contacta con el equipo de Soporte antes de intervenir en la cola.
La base de datos acumula transients caducados
¿Qué ocurre?
Los transients permiten guardar temporalmente datos que tardan más en obtenerse, como el resultado de una consulta o la respuesta de un servicio externo. Así, WordPress puede reutilizarlos durante un tiempo en lugar de volver a generarlos cada vez que alguien visita la web.
Cuando funcionan bien, ayudan al rendimiento. El problema aparece cuando caducan, pero no se eliminan correctamente, o cuando un plugin genera miles de ellos.
No hace falta limpiar transients cada semana. Tampoco conviene tratarlos como basura por definición. WordPress y los plugins pueden volver a crear muchos de ellos después de eliminarlos.
Si la tabla wp_options ha crecido demasiado, comprueba cuántos transients hay, cuánto espacio ocupan y qué prefijos se repiten. Una gran cantidad vinculada al mismo plugin puede señalar dónde empezar a investigar.
¿Cómo solucionarlo?
Con acceso a WP-CLI, puedes eliminar únicamente los transients que ya han caducado con este comando:
wp transient delete –expired
Puedes consultar su funcionamiento y las opciones disponibles en la documentación oficial de WP-CLI.
Eliminar todos los transients también es posible, pero no debería ser la primera opción. Algunos procesos tendrán que reconstruirlos y eso puede provocar un aumento temporal del trabajo del servidor.
Si vuelven a acumularse rápidamente, la limpieza solo habrá ocultado el síntoma. Revisa qué plugin los está creando y si existe alguna actualización, error o configuración que explique ese comportamiento.
Las solicitudes loopback están bloqueadas
¿Qué ocurre?
Una solicitud loopback se produce cuando WordPress se conecta con su propia web para poner en marcha tareas automáticas o comprobar que responde correctamente. Es, dicho de forma sencilla, como si la web se visitara a sí misma.
Si falla, WordPress puede mostrar un aviso en:
Herramientas → Salud del sitio → Estado
También puedes detectar:
- Eventos programados que no se ejecutan.
- Publicaciones programadas que se retrasan.
- Acciones de WooCommerce que permanecen pendientes.
- Procesos internos que terminan por tiempo de espera.
WP-Cron, Action Scheduler y las solicitudes loopback están relacionados. Si los tres muestran problemas al mismo tiempo, quizá estés viendo distintas consecuencias de un único bloqueo.
¿Cómo solucionarlo?
Aquí conviene leer el error concreto, no quedarse solamente con el aviso de loopback.
Un error 401 o 403 puede indicar que una contraseña, un plugin de seguridad o una regla del servidor está impidiendo que WordPress se conecte con su propia web. Si aparece un timeout, significa que el servidor ha tardado demasiado en completar la petición. El fallo también puede deberse a una configuración incorrecta del dominio, del certificado SSL o de las redirecciones de la web.
Consulta el historial de errores de PHP y del servidor justo cuando se produzca el fallo. Estos registros pueden mostrar qué plugin, archivo o proceso está causando el problema.
Comprueba también si algún plugin de seguridad, modo de mantenimiento o protección con contraseña impide que WordPress acceda a wp-cron.php o a la API REST.
Si una medida de seguridad provoca el bloqueo, no la desactives de forma permanente. Identifica la regla responsable y añade una excepción únicamente para la conexión que WordPress necesita realizar.
Una consulta lenta está frenando una pantalla concreta
¿Qué ocurre?
Si toda la web funciona bien excepto el listado de pedidos, una búsqueda, el editor o una página determinada, el problema puede estar en una consulta a la base de datos.
Query Monitor permite analizar las consultas ejecutadas durante la carga y asociarlas, cuando es posible, con el plugin, el tema o la función que las ha generado.
Instala Query Monitor de forma temporal y abre la página o sección de WordPress que funciona con lentitud. Después, revisa:
- Consultas que tardan mucho más que el resto.
- La misma consulta ejecutada decenas o cientos de veces.
- Errores de base de datos.
- Peticiones HTTP externas.
- El componente responsable de cada operación.
No te fijes únicamente en la consulta más lenta. Una consulta de 200 milisegundos puede no ser grave si se ejecuta una vez. Otra de 20 milisegundos puede convertirse en un problema si se repite 300 veces durante una sola carga.
¿Cómo solucionarlo?
Si Query Monitor señala un plugin, comprueba si existe una actualización o si alguna de sus funciones puede desactivarse. También puedes probar temporalmente otra herramienta que cumpla la misma función y comparar el resultado.
En tiendas grandes puede ser necesario revisar:
- La cantidad de información que procesa la web.
- El número de productos o resultados que muestra en cada página.
- Los filtros y las búsquedas que utilizan los visitantes.
- La forma en la que están organizados los datos en la base de datos.
Modificar la forma en la que WordPress busca y organiza la información de la base de datos requiere conocimientos avanzados. Si no puedes identificar qué plugin o función realiza esa búsqueda ni sabes para qué sirve, es mejor solicitar ayuda técnica antes de hacer cambios.
Un plugin eliminado ha dejado datos y tareas residuales
¿Qué ocurre?
Desactivar un plugin impide que su código se ejecute normalmente. Sin embargo, no elimina necesariamente sus tablas, opciones, carpetas, tareas cron o archivos generados.
Eso no significa que todos los plugins desactivados ralenticen WordPress. Una carpeta inactiva no suele afectar al rendimiento por el simple hecho de existir. El problema son los residuos que continúan cargándose o procesándose.
Revisa:
- Si quedan tareas del plugin en WP-Cron.
- Si conserva opciones autoload.
- Si creó tablas propias.
- Si dejó grandes cantidades de archivos en wp-content/uploads.
- Si dispone de una opción para eliminar sus datos al desinstalarlo.
¿Cómo solucionarlo?
Si el plugin todavía está instalado, consulta su configuración antes de borrarlo. Algunas herramientas incluyen opciones como “eliminar datos al desinstalar”, pero no las activan por defecto para evitar pérdidas accidentales.
Si ya lo eliminaste, puedes volver a instalarlo temporalmente en staging y utilizar su propio proceso de desinstalación. Hazlo únicamente cuando estés seguro de que se trata del mismo plugin y de que ya no necesitas sus datos.
No elimines una tabla basándote solamente en su nombre. Podría contener pedidos, formularios, estadísticas o configuraciones que todavía utiliza otra parte de la web.
Instalar otro plugin de limpieza tampoco debería ser la respuesta automática. Primero identifica los restos concretos y decide qué herramienta necesitas para retirarlos.
Cómo saber si has solucionado el problema
Después de corregir una de estas causas, repite exactamente la prueba inicial:
- Abre la misma página o pantalla.
- Realiza la prueba en condiciones similares.
- Comprueba el tiempo de respuesta.
- Revisa si las colas y los errores disminuyen.
- Confirma que las funciones relacionadas siguen funcionando.
No te limites a comprobar la portada. Si has intervenido en WooCommerce, prueba un pedido. En el caso que hayas modificado WP-Cron, comprueba que las tareas se ejecuten. Si has limpiado datos de un plugin, revisa las funciones que dependían de él.
El objetivo no es conseguir una base de datos “vacía”, sino eliminar trabajo innecesario sin romper aquello que WordPress necesita.
Preguntas frecuentes
Porque las imágenes afectan principalmente al contenido que descarga el navegador. La espera también puede producirse antes, mientras WordPress ejecuta PHP, consulta la base de datos, procesa tareas programadas o espera la respuesta de un servicio externo.
No necesariamente. Un plugin desactivado no suele ejecutar su código, pero puede haber dejado opciones autoload, tablas, archivos o tareas programadas. Son esos residuos los que conviene revisar.
El TTFB mide cuánto tarda el navegador en recibir el primer byte de la respuesta. Un valor elevado puede apuntar a un procesamiento lento en el servidor, aunque también influyen la red, la caché y la ubicación del usuario. Es una señal inicial, no un diagnóstico definitivo.
Puede serlo si revisas cada elemento y tienes una copia de seguridad. No utilices una limpieza automática sin comprobar qué va a eliminar ni borres tablas u opciones únicamente porque parezcan antiguas.
Solo si vas a sustituirlo por una tarea cron real del servidor correctamente configurada. Desactivarlo sin una alternativa puede impedir la publicación de entradas programadas, las actualizaciones y otros procesos automáticos.
Cuando necesites editar directamente la base de datos, modificar índices SQL, configurar tareas cron en el servidor o eliminar información cuyo origen no puedas identificar con seguridad.