Cómo optimizar el rendimiento de MySQL en WordPress (consultas y caché)
¿Por qué tu WordPress va lento? El problema puede estar en MySQL
Si tu web con WordPress tarda en cargar, no siempre es culpa del hosting o de las imágenes. Muchas veces, el verdadero cuello de botella está en la base de datos. Cada vez que alguien visita tu sitio, WordPress hace decenas de consultas a MySQL para traer entradas, comentarios, opciones y plugins. Si esas consultas son lentas o están mal optimizadas, tu página se vuelve pesada.
La buena noticia es que optimizar MySQL en WordPress no requiere ser un experto. Con unos pocos ajustes, puedes acelerar WordPress con MySQL de forma notable. En esta guía te explico, paso a paso y sin tecnicismos, cómo mejorar el rendimiento de la base de datos en WordPress desde el panel de control, el archivo de configuración y algunos plugins clave.
1. Lo primero: ¿Cómo saber si tu base de datos es el problema?
Antes de tocar nada, conviene confirmar que MySQL es el causante de la lentitud. Hay una forma muy sencilla: activa la depuración de consultas.
Activar SAVEQUERIES en wp-config.php
Abre tu archivo wp-config.php (lo encuentras en la raíz de tu instalación de WordPress) y añade estas líneas justo antes de la línea que dice /* That's all, stop editing! */:
define('SAVEQUERIES', true);
Con esto, WordPress guardará un registro de todas las consultas que se ejecutan. Luego, en el código de tu tema (normalmente en footer.php), puedes añadir esto para ver el número de consultas y el tiempo total:
<?php if (current_user_can('administrator')) { ?>
<p><?php echo get_num_queries(); ?> consultas en <?php echo timer_stop(); ?> segundos.</p>
<?php } ?>
[INFO] Si ves más de 100 consultas por página o un tiempo superior a 0.5 segundos, es momento de optimizar. No te asustes, es más común de lo que crees.
2. Optimiza el motor de almacenamiento: usa InnoDB
MySQL tiene varios motores de almacenamiento. El más recomendado para WordPress es InnoDB, porque soporta transacciones y bloqueos a nivel de fila, lo que mejora el rendimiento en sitios con muchos accesos.
Cómo comprobar qué motor usas
Puedes hacerlo desde Syspanel (recuerda, se accede por el puerto 2106). Entra en la sección de bases de datos y busca tu base de WordPress. Si ves que las tablas usan MyISAM, puedes cambiarlas a InnoDB con este comando SQL desde phpMyAdmin:
ALTER TABLE nombre_de_la_tabla ENGINE=InnoDB;
O para todas las tablas a la vez, usa esta consulta:
SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'tu_base_de_datos'
AND ENGINE = 'MyISAM';
Luego ejecuta cada sentencia que te devuelva.
[TIP] Si no sabes qué motor usas, revisa la pestaña "Operaciones" de cada tabla en phpMyAdmin. Ahí te dice el motor actual.
3. Añade índices a las tablas más usadas
Los índices son como el índice de un libro: permiten a MySQL encontrar los datos mucho más rápido. Sin ellos, la base de datos tiene que recorrer toda la tabla, lo que hace que las consultas sean lentas.
Índices recomendados para WordPress
Las tablas más consultadas suelen ser wp_posts, wp_postmeta y wp_options. Puedes añadir estos índices desde phpMyAdmin (pestaña "Estructura" → "Índices") o con SQL:
ALTER TABLE wp_posts ADD INDEX idx_post_type_status (post_type, post_status);
ALTER TABLE wp_postmeta ADD INDEX idx_post_id (post_id);
ALTER TABLE wp_options ADD INDEX idx_autoload (autoload);
[WARNING] No crees índices de más. Cada índice ocupa espacio en disco y ralentiza las inserciones y actualizaciones. Con estos tres suele ser suficiente para la mayoría de webs.
4. Limpia y optimiza las tablas regularmente
Con el tiempo, las tablas se fragmentan y acumulan datos basura (revisiones de entradas, transients caducados, spam de comentarios). Esto hace que las consultas sean más lentas.
Optimizar tablas con phpMyAdmin
- Ve a phpMyAdmin desde Syspanel (puerto 2106).
- Selecciona tu base de datos.
- Marca todas las tablas (clic en "Seleccionar todo").
- En el desplegable inferior, elige "Optimizar tablas".
Este proceso compacta los datos y libera espacio. Es como desfragmentar el disco duro de tu base de datos.
Limpiar datos basura con SQL
Para eliminar revisiones de entradas antiguas y transients caducados, puedes usar estos comandos (haz una copia de seguridad antes):
DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%';
[INFO] Si usas un plugin de caché como WP Rocket o W3 Total Cache, ellos suelen incluir una opción para limpiar transients automáticamente. Úsala en lugar de SQL si prefieres no tocar código.
5. Configura la caché de consultas de MySQL
MySQL tiene su propia caché de consultas. Si está bien configurada, las consultas repetidas se sirven desde memoria, sin tocar el disco. Esto es clave para acelerar WordPress con MySQL.
Cómo ajustar la caché de consultas
Dependiendo de tu hosting, puedes modificar el archivo my.cnf o my.ini. Si usas Syspanel, ve a la sección de configuración de MySQL. Añade o modifica estas líneas:
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
query_cache_type = 1activa la caché para todas las consultas.query_cache_sizedefine el tamaño de la caché (64 MB es un buen punto de partida).query_cache_limitlimita el tamaño máximo de una consulta que se puede cachear.
[WARNING] Si tu servidor tiene poca RAM (menos de 1 GB), no pongas un valor demasiado alto. 64 MB es seguro. Más no siempre es mejor, ya que la caché también consume memoria.
¿Cómo saber si la caché funciona?
Ejecuta en phpMyAdmin:
SHOW STATUS LIKE 'Qcache%';
Fíjate en Qcache_hits (aciertos) y Qcache_inserts (inserciones). Si los aciertos son mucho mayores que las inserciones, la caché está haciendo su trabajo.
6. Usa un plugin de caché para WordPress
La caché de MySQL ayuda, pero el mayor salto de rendimiento lo verás con un plugin de caché de páginas. Estos plugins generan una copia HTML estática de tus páginas y la sirven sin tocar la base de datos.
Los mejores plugins de caché
- WP Rocket (de pago, pero muy fácil de configurar).
- W3 Total Cache (gratuito, más técnico).
- LiteSpeed Cache (ideal si tu hosting usa LiteSpeed).
Con cualquiera de ellos, activa la caché de páginas, la caché de objetos (si tu hosting la soporta) y la compresión GZIP.
[TIP] Si usas W3 Total Cache, activa también la caché de base de datos dentro de sus opciones. Esto guarda en memoria los resultados de las consultas más comunes y reduce la carga de MySQL.
7. Configura correctamente el límite de memoria de PHP
Aunque no es directamente MySQL, si PHP se queda sin memoria, las consultas fallan o se ejecutan mal. Asegúrate de tener un límite adecuado.
Cómo aumentar el límite de memoria
En tu wp-config.php, añade:
define('WP_MEMORY_LIMIT', '256M');
O si tu hosting lo permite, edita el archivo php.ini:
memory_limit = 256M
[INFO] Si no sabes dónde está el php.ini, desde Syspanel (puerto 2106) puedes cambiarlo en la sección de "Configuración PHP" de tu dominio.
8. Evita plugins que abusen de la base de datos
Algunos plugins hacen consultas muy pesadas o guardan demasiados datos en la base de datos. Los más problemáticos suelen ser:
- Plugins de estadísticas que registran cada visita.
- Plugins de backups que guardan copias en la base de datos.
- Plugins de formularios que no limpian entradas antiguas.
Cómo detectar plugins problemáticos
Puedes usar el plugin Query Monitor. Te muestra cuántas consultas hace cada plugin y cuánto tardan. Si uno hace más de 50 consultas por página, plantéate sustituirlo por una versión más ligera o cachearlo mejor.
[WARNING] No desactives varios plugins a la vez sin hacer una copia de seguridad. Hazlo de uno en uno y comprueba el rendimiento después de cada cambio.
9. Usa un CDN para descargar MySQL
Un CDN (Red de Distribución de Contenidos) no optimiza MySQL directamente, pero reduce las peticiones al servidor. Si tu web tiene visitantes de todo el mundo, un CDN como Cloudflare o BunnyCDN sirve las imágenes, CSS y JavaScript desde servidores cercanos al usuario.
Esto libera a tu servidor y a la base de datos de trabajo innecesario, porque el navegador no tiene que pedir esos archivos a WordPress.
[TIP] Cloudflare tiene un plan gratuito muy completo. Actívalo y notarás una mejora inmediata en la velocidad de carga, especialmente en imágenes y archivos estáticos.
10. Monitoriza el rendimiento de MySQL periódicamente
La optimización no es un trabajo de una sola vez. Debes revisar el rendimiento cada cierto tiempo para detectar problemas antes de que afecten a tus visitantes.
Qué métricas vigilar
- Tiempo de respuesta de MySQL (ideal: menos de 50 ms).
- Número de consultas por página (ideal: menos de 50).
- Uso de la caché de consultas (aciertos vs. inserciones).
- Tamaño de la base de datos (si crece demasiado, revisa qué está guardando).
Herramientas útiles
- phpMyAdmin (incluido en Syspanel, puerto 2106).
- Query Monitor (plugin de WordPress).
- MySQL Workbench (si quieres algo más profesional).
Preguntas frecuentes (FAQ)
¿Cuánto tiempo tarda en notarse la mejora?
Depende de los cambios. Activar la caché de consultas y optimizar tablas da resultados inmediatos. Añadir índices y limpiar datos basura también. En general, notarás la diferencia en menos de 24 horas.
¿Es seguro modificar la configuración de MySQL?
Sí, siempre que hagas una copia de seguridad antes y cambies los valores de forma gradual. No pongas valores extremos "por si acaso". Sigue las recomendaciones de esta guía y todo irá bien.
¿Puedo optimizar MySQL sin acceso al servidor?
Si tu hosting no te permite tocar my.cnf, puedes hacer mucho con plugins de caché y limpiando la base de datos desde phpMyAdmin. La mayoría de los ajustes de esta guía no requieren acceso root.
¿Qué pasa si mi hosting usa MariaDB en lugar de MySQL?
MariaDB es compatible con MySQL y la mayoría de los comandos funcionan igual. Las opciones de caché pueden variar ligeramente, pero los conceptos son los mismos.
Resumen: tu plan de acción para optimizar MySQL en WordPress
- Activa SAVEQUERIES para medir el estado actual.
- Cambia a InnoDB si tus tablas usan MyISAM.
- Añade índices a
wp_posts,wp_postmetaywp_options. - Optimiza y limpia las tablas cada mes.
- Configura la caché de consultas de MySQL.
- Instala un plugin de caché de páginas.
- Aumenta la memoria de PHP.
- Revisa tus plugins y elimina los que abusen de la base de datos.
- Usa un CDN para aligerar la carga del servidor.
- Monitoriza el rendimiento periódicamente.
Con estos pasos, tu WordPress cargará más rápido, soportará más visitas y ofrecerá una mejor experiencia a tus usuarios. Y recuerda: si usas Syspanel, el acceso a la gestión de bases de datos y configuración de MySQL está en el puerto 2106.
[INFO] Si tu sitio es muy grande o tiene mucho tráfico, considera contratar un hosting con MySQL optimizado o una base de datos gestionada. A veces el problema no es tu configuración, sino los límites del plan contratado.
Ahora ya sabes cómo optimizar MySQL en WordPress y mejorar el rendimiento de la base de datos en WordPress. Pon en práctica estos consejos y verás la diferencia. ¡Tu web (y tus visitantes) te lo agradecerán!
