🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo optimizar y acelerar las consultas MySQL en WordPress

Actualizado el 17 de junio de 2026

¿Por qué tu WordPress va lento? El problema casi siempre está en la base de datos

Si tu web tarda más de 3 segundos en cargar, el problema casi nunca es el diseño. El verdadero cuello de botella suele estar en las consultas MySQL lentas. Cada vez que un visitante entra a tu sitio, WordPress ejecuta decenas de consultas a la base de datos para traer entradas, comentarios, opciones y plugins. Si esas consultas están mal optimizadas, tu servidor trabaja de más y el usuario final espera.

La buena noticia es que optimizar MySQL WordPress no requiere ser un experto en programación. Con los pasos correctos, puedes reducir el tiempo de carga entre un 50% y un 80% sin tocar una sola línea de código complejo. En esta guía te explico, paso a paso, cómo acelerar WordPress MySQL y qué herramientas usar para detectar los problemas.

Primero: detecta si tu problema son las consultas lentas

Antes de optimizar nada, necesitas saber si realmente el problema está en la base de datos. WordPress tiene una herramienta oculta llamada Query Monitor (si usas un plugin) o puedes activar el modo de depuración. Pero hay una forma más sencilla: instala el plugin Query Monitor desde el repositorio oficial. Este plugin te muestra:

  • Cuántas consultas se ejecutan en cada página.
  • Cuánto tiempo tarda cada consulta.
  • Qué plugin o tema genera cada consulta.
  • Consultas duplicadas (las más comunes).

Otra opción es revisar el log de consultas lentas de MySQL. Si tu hosting usa Syspanel (antes conocido como HestiaCP), puedes acceder al puerto 2106 y buscar la sección de bases de datos. Allí, en la pestaña de MySQL, encontrarás la opción de activar el log de consultas lentas. Configúralo para que registre cualquier consulta que tarde más de 2 segundos.

[INFO] Si no sabes qué es Syspanel, es el panel de control que utilizan muchos hostings para gestionar dominios, correos y bases de datos. Su puerto de acceso por defecto es el 2106. No lo confundas con otros paneles como cPanel o Plesk.

Paso 1: Activa el caché de consultas de MySQL

El caché de consultas es una memoria interna de MySQL que guarda el resultado de las consultas más repetidas. Cuando un usuario vuelve a hacer la misma consulta, MySQL devuelve el resultado guardado sin volver a procesar nada. Esto es clave para acelerar WordPress MySQL.

Para activarlo en Syspanel:

  1. Entra a Syspanel con el puerto 2106.
  2. Ve a la sección de Bases de datos y selecciona tu base de datos de WordPress.
  3. Busca la opción de Configuración avanzada de MySQL.
  4. Localiza las variables query_cache_type y query_cache_size.
  5. Cambia query_cache_type a DEMAND (o 1 si está en modo texto).
  6. Asigna un tamaño de caché de al menos 64 MB en query_cache_size.
  7. Guarda los cambios y reinicia el servicio MySQL.

Si tu hosting no te permite editar estas variables desde el panel, puedes hacerlo desde la línea de comandos SSH. Pero si usas Syspanel, es mucho más fácil porque ya tiene la interfaz gráfica para ello.

[TIP] El caché de consultas es útil en sitios con mucho tráfico de lectura. Si tu web es un blog o una tienda con muchos productos, notarás una mejora inmediata. Sin embargo, si tu sitio es muy dinámico (como un foro), el caché puede ser contraproducente porque las consultas cambian constantemente.

Paso 2: Instala un plugin de caché de WordPress

Aunque MySQL tenga su propio caché, WordPress también necesita su capa de caché a nivel de aplicación. Los plugins de caché como W3 Total Cache o WP Super Cache guardan las páginas HTML generadas y las sirven directamente, sin volver a consultar la base de datos.

La configuración básica para optimizar base de datos WordPress con un plugin de caché:

  1. Instala y activa W3 Total Cache.
  2. Ve a RendimientoGeneral.
  3. Activa la caché de páginas y selecciona En disco.
  4. Activa la caché de base de datos (esto es crucial para reducir consultas MySQL).
  5. Activa la caché de objetos (recomendado para sitios con WooCommerce).
  6. En la sección de Minificar, activa la opción de CSS y JS (esto reduce peticiones, aunque no afecta directamente a MySQL).

Con esto, WordPress guardará las consultas más frecuentes en memoria y no tendrá que ir a la base de datos cada vez. La combinación de caché de páginas + caché de base de datos puede reducir las consultas MySQL en un 80%.

[WARNING] No actives la caché de base de datos si tu hosting ya tiene el caché de MySQL activado. Podrían duplicar la memoria y causar errores. Lo ideal es usar uno u otro, no ambos a la vez.

Paso 3: Optimiza las tablas de tu base de datos

Con el tiempo, las tablas de WordPress se fragmentan. Esto pasa cuando se insertan y borran muchos registros (comentarios, revisiones de entradas, transitorios). Las tablas fragmentadas hacen que MySQL tarde más en leer los datos.

Para optimizarlas, tienes dos opciones:

Opción A: Desde Syspanel (la más fácil)

  1. Entra a Syspanel con el puerto 2106.
  2. Ve a Bases de datos y selecciona tu base de datos.
  3. Haz clic en el botón Optimizar tablas.
  4. Espera a que termine el proceso y verás un mensaje de confirmación.

Opción B: Con el plugin WP-Optimize

  1. Instala y activa WP-Optimize.
  2. Ve a WP-OptimizeBase de datos.
  3. Marca la opción Optimizar todas las tablas.
  4. Haz clic en Optimizar.

Este plugin también te permite limpiar revisiones de entradas antiguas, borrar transitorios caducados y eliminar comentarios spam. Todo esto reduce el tamaño de la base de datos y, por tanto, las consultas MySQL lentas.

[TIP] Programa una optimización automática semanal. Tanto Syspanel como WP-Optimize permiten programar tareas. Así no tendrás que acordarte de hacerlo manualmente.

Paso 4: Identifica y corrige consultas lentas específicas

Si después de los pasos anteriores sigues viendo consultas MySQL lentas en Query Monitor, hay que investigar más a fondo. Las consultas lentas suelen venir de:

  • Plugins mal codificados.
  • Temas con opciones personalizadas mal implementadas.
  • WooCommerce con muchos productos sin índices.

En Query Monitor, mira la pestaña de Consultas y ordena por Tiempo. Verás la consulta exacta que tarda más. Copia esa consulta y analízala. Los problemas más comunes son:

  • Falta de índices: Si la consulta usa WHERE o ORDER BY en campos que no tienen índice, MySQL tiene que recorrer toda la tabla.
  • Consultas duplicadas: Muchos plugins hacen la misma consulta varias veces en una misma página.
  • Uso de LIKE con comodines: Las consultas con LIKE '%texto%' son muy lentas porque no pueden usar índices.

Para corregir índices, puedes usar el plugin Index WP MySQL For Speed. Este plugin analiza tus tablas y agrega índices automáticamente a los campos que se usan con frecuencia en las consultas.

[WARNING] No agregues índices a todas las columnas. Demasiados índices ralentizan la escritura (insertar, actualizar) y ocupan espacio en disco. Solo añade índices a los campos que aparecen en las consultas lentas que detectes.

Paso 5: Limpia los transitorios y revisiones de entradas

WordPress guarda mucha basura en la base de datos: revisiones de entradas (cada vez que guardas un borrador), transitorios (opciones temporales de plugins) y comentarios spam. Todo esto infla las tablas wp_options, wp_posts y wp_postmeta, que son las más consultadas.

Para limpiarlo manualmente, puedes ejecutar estas consultas SQL desde Syspanel (sección Bases de datosphpMyAdmin):

-- Eliminar revisiones de entradas (deja solo las 5 más recientes por entrada)
DELETE FROM wp_posts 
WHERE post_type = 'revision' 
AND post_date < NOW() - INTERVAL 30 DAY;
-- Eliminar transitorios caducados
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_value < NOW() - INTERVAL 1 DAY;

Si prefieres no tocar SQL, el plugin WP-Sweep hace lo mismo con un clic. Limpia revisiones, transitorios, términos huérfanos y metadatos sin usar.

[INFO] Los transitorios son datos temporales que usan los plugins para guardar caché interna. Si se acumulan, pueden hacer que la tabla wp_options tenga cientos de miles de filas, lo que ralentiza muchísimo las consultas.

Paso 6: Usa un índice para la tabla de comentarios

La tabla wp_comments es una de las que más sufre en sitios con muchos comentarios. La consulta más común es la que lista los comentarios de una entrada:

SELECT * FROM wp_comments 
WHERE comment_post_ID = 123 
AND comment_approved = '1' 
ORDER BY comment_date ASC;

Si no tienes un índice en comment_post_ID, MySQL tiene que recorrer toda la tabla. Para solucionarlo, ejecuta esta consulta en phpMyAdmin:

ALTER TABLE wp_comments ADD INDEX comment_post_ID (comment_post_ID);

Lo mismo para comment_approved si tu sitio tiene muchos comentarios pendientes de moderación.

Paso 7: Cambia el motor de almacenamiento a InnoDB

Por defecto, muchas bases de datos de WordPress usan MyISAM, que es más rápido en lecturas simples pero se bloquea al escribir. InnoDB es más robusto y maneja mejor las consultas concurrentes.

Para cambiar el motor de todas las tablas, ejecuta esta consulta en phpMyAdmin:

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;') 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'tu_base_de_datos' 
AND ENGINE = 'MyISAM';

Esto generará las sentencias ALTER que debes ejecutar. Si usas Syspanel, en la sección de bases de datos puedes cambiar el motor de cada tabla con un clic.

[WARNING] Antes de cambiar el motor, haz una copia de seguridad de la base de datos. En Syspanel, ve a Bases de datosCopia de seguridad y descarga un archivo .sql.

Paso 8: Ajusta los límites de memoria de PHP y MySQL

A veces las consultas MySQL lentas no son por falta de índices, sino porque PHP o MySQL no tienen suficiente memoria para procesarlas. En tu archivo wp-config.php, agrega estas líneas:

define('WP_MEMORY_LIMIT', '256M');

Y en MySQL, desde Syspanel, sube el valor de innodb_buffer_pool_size a al menos 128 MB (si tu servidor tiene más de 2 GB de RAM). Este es el buffer que MySQL usa para cachear datos e índices en memoria.

Paso 9: Desactiva plugins que hacen consultas pesadas

Algunos plugins son famosos por generar consultas MySQL lentas incluso en sitios pequeños. Los principales culpables:

  • Plugins de estadísticas (como Jetpack o Google Analytics Dashboard).
  • Plugins de caché mal configurados.
  • Plugins de seguridad que escanean la base de datos en cada carga.
  • Constructores de páginas (Divi, Elementor, etc.) que guardan mucha información en wp_postmeta.

En Query Monitor, mira qué plugin genera más consultas. Si es un plugin que no usas activamente, desactívalo y prueba la velocidad. A veces, un solo plugin es responsable del 70% de las consultas.

[TIP] No desactives varios plugins a la vez. Desactiva uno, mide el tiempo de carga, y repite. Así sabrás exactamente cuál es el problema.

Paso 10: Considera mover a un hosting con MySQL más rápido

Si has hecho todos los pasos y aún tienes consultas MySQL lentas, el problema puede ser tu servidor. Los hostings compartidos baratos suelen tener MySQL mal configurado, con poca memoria y sin caché.

Si tu hosting usa Syspanel, verifica que la versión de MySQL sea 8.0 o superior. Si es MySQL 5.5 o anterior, estás perdiendo muchísimo rendimiento. En ese caso, contacta con tu proveedor para que actualice o considera migrar a un servidor VPS o a un hosting gestionado como Kinsta o WP Engine.

Preguntas frecuentes (FAQ)

¿Cada cuánto debo optimizar la base de datos de WordPress?

Lo ideal es hacerlo una vez al mes si tu sitio es pequeño, y cada semana si tienes una tienda o un blog con muchos comentarios. Puedes programarlo con WP-Optimize o con una tarea cron en Syspanel.

¿Los plugins de caché reemplazan la optimización de MySQL?

No. Los plugins de caché reducen la cantidad de consultas, pero no optimizan las consultas que se ejecutan. Si una consulta es lenta de por sí, el caché solo la hace menos frecuente, pero cuando se ejecuta sigue tardando.

¿Es seguro eliminar las revisiones de entradas?

Sí, siempre que dejes al menos las últimas 2 o 3 revisiones. WordPress guarda cada autoguardado, y si has editado una entrada 50 veces, tienes 50 copias innecesarias. Eliminarlas no afecta al contenido final.

¿Puedo usar el plugin Query Monitor en producción?

Sí, pero solo durante unos minutos. Query Monitor consume recursos y muestra información sensible. Actívalo, diagnostica el problema y desactívalo después.

¿Qué hago si no tengo acceso a phpMyAdmin?

Si usas Syspanel, tienes phpMyAdmin integrado en el puerto 2106. Si no tienes acceso a este panel, contacta con tu proveedor de hosting para que te dé acceso a la base de datos o ejecute las consultas por ti.

Resumen final: tu checklist para acelerar WordPress MySQL

Para optimizar MySQL WordPress de forma completa, sigue este orden:

  1. Activa el caché de consultas en MySQL (desde Syspanel).
  2. Instala y configura un plugin de caché (W3 Total Cache).
  3. Optimiza las tablas semanalmente (WP-Optimize o Syspanel).
  4. Limpia revisiones y transitorios (WP-Sweep).
  5. Agrega índices a las tablas más consultadas.
  6. Cambia todas las tablas a InnoDB.
  7. Sube la memoria de PHP y el buffer de InnoDB.
  8. Desactiva plugins que generen consultas pesadas.
  9. Si nada funciona, cambia de hosting o contrata un plan con mejor MySQL.

Con estos pasos, tu WordPress cargará mucho más rápido y tus visitantes no se irán por la lentitud. Si tienes dudas, revisa primero el log de consultas lentas en Syspanel (puerto 2106) y verás exactamente qué está fallando. ¡Manos a la obra!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel