Aunque todos los componentes de una web de WordPress son importantes, se podría decir que la base de datos es clave. Es ahí donde se almacena y se accede a prácticamente toda la información de tu web. Por eso, la optimización de tu base de datos de WordPress tiene que ser perfecta.
Una base de datos sobrecargada y con problemas de rendimiento ralentizará tu sitio y perjudicará tu posicionamiento en los buscadores. Además, también podría afectar a la experiencia general del usuario (UX). A su vez, esto puede repercutir en tus cifras de tráfico y, a la larga, afectar a tu posicionamiento en los resultados de búsqueda (entre otros problemas).
En este tutorial, analizaremos la optimización de la base de datos de WordPress desde varios puntos de vista. Hablaremos de la estructura general que encontrarás, junto con un montón de técnicas de optimización que puedes aplicar. También te hablaremos de herramientas y servicios que pueden ayudarte a mantener tus bases de datos en perfecto estado.
Cómo entender la estructura de la base de datos de WordPress
En resumen, la base de datos de WordPress es la columna vertebral de tu sitio web. Alberga casi todo: contenido, datos de los usuarios, configuraciones y mucho más. En WordPress, las «tablas» de la base de datos se encargan de almacenar tipos específicos de información.
La plataforma utiliza los sistemas de gestión de bases de datos MySQL o MariaDB, y podrás acceder a ella con herramientas como phpMyAdmin o Adminer:

Por ejemplo, la tabla wp_posts contiene tus entradas y páginas, mientras que wp_users almacena datos sobre los usuarios de tu sitio web. En breve veremos algunas de estas tablas con más detalle.
Al instalar WordPress, este crea un conjunto de tablas predeterminadas que incluyen todos los casos de uso habituales que podrías necesitar. Sin embargo, los plugins, los temas y la propia instalación también pueden crear tablas para almacenar datos específicos y relacionados.
Este enfoque modular es excelente en muchos aspectos, ya que permite una gran funcionalidad. Sin embargo, por otro lado, un exceso de tablas innecesarias (junto con una mala gestión) también puede provocar que el sistema se sature.
Entender la estructura de la base de datos de WordPress es fundamental por dos razones:
- Rendimiento. Una buena organización de la base de datos te permite recuperar datos más rápido, lo que tendrá un impacto directo en los tiempos de carga y el rendimiento.
- Mantenimiento. Saber qué tablas corresponden a las diferentes partes de tu sitio te ayudará durante el mantenimiento. Por ejemplo, si un plugin concreto está causando problemas, podrías solucionar el problema revisando sus tablas asociadas.
Limpiar y optimizar regularmente las tablas de tu base de datos puede evitar que se vuelvan demasiado grandes y difíciles de manejar. Como ya hemos dicho, el impacto en el rendimiento podría afectarte negativamente.
Tablas específicas de WordPress
Los sitios web de todo tipo usan bases de datos, no solo WordPress. La plataforma tiene sus propios tipos de tablas y roles de base de datos, y si quieres optimizarlos, es importante que los entiendas a fondo.
Aunque aquí no las vamos a repasar todas, seguro que vas a usar algunas tablas más que otras:
wp_options. Aquí se guardan los ajustes generales de tu sitio y es, sin duda, una de las tablas a las que más se accede dentro de tu base de datos. Te conviene mantener esta tabla ligera mediante una buena optimización.wp_postmeta. Aquí se guardan los metadatos de tus entradas. A medida que tu sitio crezca, esta puede convertirse en una de las tablas más grandes de tu base de datos.wp_usersywp_usermeta. Toda la información relacionada con los usuarios de tu sitio y sus metadatos se encuentra en estas dos tablas. En algunos casos excepcionales, puede que tengas que acceder aquí para cambiar una contraseña si te has quedado sin acceso a WordPress.
Recuerda que cada plugin o tema adicional que añadas a tu sitio web también puede modificar esta estructura. Sin embargo, es poco habitual que un tema o plugin elimine una de estas tablas.
Aun así, deberías revisar regularmente y entender estos posibles cambios. Es fundamental para mantener una base de datos optimizada que ayude, en lugar de entorpecer, el rendimiento de tu sitio.
Por qué la optimización de la base de datos de WordPress es necesaria para la mayoría de los sitios web
Optimizar la base de datos de WordPress no solo es una buena práctica, sino que es imprescindible para la mayoría de los sitios web que quieren ofrecer una experiencia fluida. Tu base de datos es el lugar donde se almacenan todos los datos importantes de tu sitio. Su buen estado influye directamente en el rendimiento, la velocidad y la fiabilidad de tu sitio.
Así que hay dos razones principales por las que la optimización periódica de la base de datos de WordPress debería ser un elemento básico de tu flujo de trabajo:
- Mayor velocidad y rendimiento del sitio. Con el tiempo, tu base de datos de WordPress acumulará datos innecesarios o redundantes, como opciones transitorias, revisiones de entradas, comentarios de spam o borradores obsoletos. Esta sobrecarga ralentizará la recuperación de información.
- Mejora de la experiencia de usuario. Los usuarios también esperan una experiencia de navegación fluida y rápida. Una base de datos bien optimizada se traduce en una carga más rápida de las páginas y un procesamiento de datos más eficiente. En pocas palabras, cada interacción en el sitio web depende de consultas a la base de datos. Una mayor eficiencia se traduce en una mejor experiencia de usuario.
También hay razones más avanzadas por las que debes asegurarte de optimizar tu base de datos. Por ejemplo, una base de datos no optimizada supone una carga adicional para tu servidor, ya que este tiene que esforzarse más para encontrar y servir los datos. Esto tendrá un efecto crítico si utilizas un alojamiento compartido con recursos limitados. Es, en parte, una de las razones por las que Kinsta no ofrece alojamiento compartido en sus planes.
Es más, a medida que tu sitio crece, también lo hace tu base de datos. Aunque al principio puedas tener un sistema pequeño y manejable, su complejidad puede aumentar rápidamente. Con una optimización regular, te aseguras de que tu base de datos pueda gestionar el crecimiento de tu sitio sin que el rendimiento se vea afectado.
En resumen, la optimización de la base de datos de WordPress mejorará los tiempos de respuesta. Un retraso en la carga de tan solo unos segundos puede provocar un aumento de las tasas de rebote y la pérdida de tráfico, lo cual no es nada bueno para tu posicionamiento en los buscadores.
Cómo realizar el mantenimiento y la limpieza periódicos
Si limpias y mantienes regularmente tu base de datos de WordPress, dispones de una de las mejores formas de que tu sitio web funcione con la mayor fluidez posible. Sin embargo, con el tiempo, las bases de datos pueden saturarse de datos innecesarios, por lo que es importante seguir un flujo de trabajo regular y constante.
Además, deberías utilizar todas las herramientas y servicios a tu disposición de la forma más óptima posible. La buena noticia es que WordPress ofrece varias formas de mantener tu base de datos.
Si decides usar un plugin, asegúrate de que cumpla con los requisitos de Kinsta y de que no esté en nuestra lista de plugins prohibidos.
Para esta guía usaremos WP-Sweep, un plugin muy bien valorado y que se actualiza con frecuencia.

A lo largo de esta entrada te mostraremos cómo optimizar tu base de datos de WordPress con este plugin, pero también puedes adaptar las instrucciones al plugin que prefieras.
En las siguientes secciones veremos esto con más detalle, y hablaremos tanto del método manual como del uso de WP-Sweep. Más adelante hablaremos de las herramientas propias de Kinsta. Pero primero, veamos algunas tareas previas a la optimización.
Qué hacer antes de ponerte con la optimización
Antes de ponerte manos a la obra con la base de datos, hay algunas tareas sencillas que debes hacer. Para empezar, siempre debes hacer una copia de seguridad completa de tu sitio y de la base de datos. Si ocurre lo peor y se estropea tu sitio, podrás recuperarlo en cuestión de minutos.
También te conviene eliminar cualquier plugin o tema que no uses en tu sitio web. Esto podría resolver algunos problemas, y no solo con tu base de datos. Además, puede ayudar a reforzar la seguridad de tu sitio web.

Sin embargo, ten en cuenta que, dependiendo del plugin o tema, esto puede dejar tablas no deseadas. Por supuesto, esta es precisamente la razón por la que queremos optimizar la base de datos, así que saber qué plugins y temas dejan datos transitorios te será de ayuda más adelante.
La última tarea la encontrarás en cuanto inicies sesión en la herramienta de gestión de bases de datos que utilices. Los errores en la base de datos pueden ser, obviamente, un indicio de problemas de rendimiento, así que deberías resolverlos antes de seguir con la optimización.
En resumen, el proceso consiste en seleccionar todas tus tablas y, a continuación, usar el botón Comprobar tabla para generar un informe.

Si ves «OK» o algo parecido, todo va bien. Sin embargo, hay que solucionar cualquier error antes de seguir adelante. En este caso, quizá sea buena idea enviar una solicitud de soporte.
1. Optimiza las tablas de tu base de datos
El primer paso es optimizar las tablas de tu base de datos. Si lo haces manualmente, ve al enlace Bases de datos de tu herramienta de gestión y elige tu base de datos:

En muchos casos, ya estarás en la base de datos de tu sitio de WordPress. En cualquier caso, verás una lista de tablas dentro de tu base de datos. Solo tienes que seleccionarlas todas a la vez y, a continuación, elegir la opción Optimizar tabla en el menú desplegable antes de hacer clic en Ir:

Al cabo de un rato, verás un informe que resume el estado de cada tabla de tu base de datos:

Con WP-Sweep, ve a Herramientas > Sweep. Desde ahí, desplázate hacia abajo hasta la sección Limpieza de la base de datos (Database Sweep) y haz clic en el botón Sweep que hay junto a la opción Optimizar tablas:

El plugin revisará todas las tablas y, a continuación, te mostrará un mensaje de éxito. En este punto, ya puedes pasar a las revisiones de entradas.
2. Limpia las revisiones de entradas
El sistema de revisiones de entradas de WordPress hace que cada vez que guardas algo, se vayan acumulando con el tiempo. Puedes eliminarlas de tu base de datos fácilmente con consultas SQL. La forma más sencilla de hacerlo es con una sola línea:
DELETE FROM wp_posts WHERE post_type = 'revision';
Esto eliminará todos los tipos de revisiones de entradas de la tabla. Sin embargo, también hay datos asociados en otras tablas. Para capturar y eliminar todo esto, puedes usar las siguientes sentencias SQL:
DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);
Consejo de experto: Cuando trabajas con tablas de bases de datos que tienen muchas filas (sobre todo con uniones más complejas como las de arriba), las consultas que tardan mucho en ejecutarse pueden agotar el tiempo de espera. En MySQL, MariaDB y PostgreSQL, puedes usar una cláusula LIMIT para dividir la tarea en pasos más pequeños:
DELETE FROM wp_postmeta
WHERE post_id NOT IN (SELECT ID FROM wp_posts)
LIMIT 10000;
Esa consulta SQL se puede ejecutar repetidamente — eliminando hasta 10.000 entradas cada vez, en este caso — hasta que tu tabla quede limpia.
Y, por supuesto, debes usar el prefijo de tabla adecuado para tu propia base de datos si copias y pegas estos ejemplos de SQL.
Con un plugin, esta tarea te lleva unos segundos. Al igual que con la optimización general de la base de datos de WordPress, WP-Sweep te ofrece un botón de un solo clic desde dentro de WordPress:

En el futuro, podrías limitar el número de revisiones que usa WordPress accediendo a tu archivo wp-config.php. Añade la siguiente línea al archivo y guarda los cambios:
define( 'WP_POST_REVISIONS', X );
Aquí, X es el número de revisiones que quieres conservar. También podrías poner false, pero no te lo recomendamos. Siempre es mejor tener al menos una revisión a la que recurrir si la necesitas.
3. Elimina los comentarios de spam y los elementos de la papelera
También podemos usar consultas SQL para eliminar comentarios de spam. Ten en cuenta que, cuando moderas los comentarios, los que no quieres se quedan en tu base de datos durante 30 días. Esto significa que los comentarios marcados como spam dentro de ese plazo permanecerán en tu base de datos.
Puedes borrarlos por completo con unas pocas líneas de SQL en tu herramienta de gestión de bases de datos:
DELETE FROM wp_comments, wp_commentmeta
USING wp_comments
LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id
WHERE wp_comments.comment_approved = 'spam’;
Lo mismo ocurre con los elementos que envías a la papelera en WordPress. Puede que haya mucho contenido «en el limbo», que puedes eliminar con otra consulta SQL:
DELETE p, pm, tr
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
WHERE p.post_status = 'trash';
Al igual que con las revisiones de entradas, puedes configurar los valores del tiempo que tarda en eliminarse el contenido de la papelera en el archivo wp-config.php:
define( 'EMPTY_TRASH_DAYS', X )
En WP-Sweep, tienes la opción de eliminar comentarios de spam:

También existe la opción de eliminar los comentarios no aprobados. Esto puede resultar útil en algunas situaciones, pero no te lo recomendamos. En su lugar, modera estos comentarios y, si es necesario, elimínalos.
4. Elimina las etiquetas que no uses
Las taxonomías son importantes para WordPress, pero con el tiempo pueden acumularse en grandes cantidades. Este es un caso de uso excelente para optimizar tu base de datos y, al igual que con otras técnicas, puedes utilizar una consulta SQL:
DELETE t, tt
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;
La opción más cercana para eliminar etiquetas que no se usan en WP-Sweep es Post Orphaned Meta. Esta opción comprueba si tienes algún metadato huérfano y lo elimina:

Aunque esta opción también puede eliminar categorías y otros datos, es una solución segura, sobre todo si ninguna otra entrada o página los utiliza.
5. Deshazte de los pingbacks y trackbacks
No sabemos cuántas páginas de WordPress usan pingbacks y trackbacks hoy en día, pero pueden seguir saturando tu base de datos si dejas la opción activada. Lo primero es comprobar si tienes esta opción desactivada. Es muy fácil: ve a la pantalla Ajustes > Discusión en WordPress:

En la sección Configuración predeterminada de las entradas, asegúrate de desmarcar las opciones «Intentar notificar a cualquier blog…» y «Permitir notificaciones de enlaces…» y guarda los cambios. A continuación, vuelve a tu herramienta de gestión de bases de datos y ejecuta la siguiente consulta:
DELETE c, cm
FROM wp_comments c
LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id
WHERE c.comment_type IN ('trackback', 'pingback’);
Ambos se encuentran en el mismo lugar que los comentarios, aunque el tipo es diferente y es en lo que se centra la consulta. Una vez que hayas completado esta tarea, ¡ya no deberías volver a ver trackbacks ni pingbacks en tu base de datos!
La optimización continua de la base de datos de Kinsta
Si eres cliente de Kinsta, probablemente ya sabes que ofrecemos optimización continua de la base de datos para sitios de WordPress. Es importante saber que esta optimización automática funciona a niveles bajos del servidor de la base de datos —gestionando la caché y el uso de la memoria— y no optimiza los datos de las tablas RDBMS.
Monitorización del rendimiento de la base de datos
Monitorizar el rendimiento de tu base de datos de WordPress es una parte esencial de la gestión de un sitio. Te ayudará a identificar posibles problemas antes de que se agraven y a garantizar que tu sitio siga funcionando de forma eficiente y con buena capacidad de respuesta.
Muchas de las técnicas que tratamos en esta entrada sirven para monitorizar el rendimiento, como usar EXPLAIN en consultas lentas. Sin embargo, hay muchas más posibilidades. De hecho, phpMyAdmin incluye sus propias métricas de rendimiento en la pestaña Status del servidor:

Esto te permite ver los tiempos de ejecución de las consultas y los procesos (en la pestaña Estadísticas de consultas), lo que ayuda a identificar aquellas consultas que necesitan optimización. Para una monitorización avanzada, MySQL Workbench te resultará de gran ayuda:

Esto te ofrece funcionalidades avanzadas para el diseño, el desarrollo y la administración de bases de datos. Además, te proporciona informes de rendimiento y diagnósticos que pueden ayudarte a ajustar tu base de datos.
En WordPress, el clásico plugin Query Monitor te permitirá monitorizar consultas a la base de datos, hooks, condiciones, solicitudes HTTP y mucho más.

Es especialmente útil para detectar consultas lentas e identificar los plugins o temas que las provocan. Sin embargo, en la mayoría de los casos se trata de un plugin de desarrollo, por lo que puede que no sea adecuado para un sitio en producción.
Monitorizar el rendimiento de la base de datos con la herramienta APM
La herramienta de monitorización del rendimiento de aplicaciones (APM) de Kinsta, dentro del panel de control de MyKinsta, ofrece otra forma de vigilar el rendimiento de la base de datos:

APM supervisa tus consultas SQL más lentas:

Puedes acceder a APM a través del panel de control de MyKinsta, concretamente en la pantalla de APM. Ten en cuenta que es posible que tengas que activarla primero:

A partir de aquí, tienes que darle un poco de tiempo a APM para que recopile los datos. Sin embargo, en cuanto estén visibles, podrás revisar aquellas consultas que puedan necesitar una optimización adicional.
Cómo optimizar las consultas a la base de datos para una mayor eficiencia
Optimizar las consultas a la base de datos que utilizas es fundamental para mejorar el rendimiento y la velocidad de tu sitio de WordPress. Unas consultas eficientes se traducen en una recuperación más rápida de los datos, lo que a su vez mejora los tiempos de carga y ofrece una mejor experiencia de usuario.
Dado que puedes utilizar consultas para optimizar la base de datos de WordPress, aquí tienes un par de consejos sobre cómo hacerlas más eficientes:
- Optimiza la estructura de tus consultas. Te darás cuenta de que no usamos wildcards (ni asteriscos) en nuestras consultas de ejemplo. En lugar de usar
SELECT *, sé específico e indica exactamente las columnas que necesitas. Además, usaJOINen lugar de subconsultas siempre que sea posible. Las subconsultas pueden ser menos eficientes, sobre todo si no tienen una buena estructura o si se aplican a conjuntos de datos grandes. - Usa el almacenamiento en caché de consultas. Herramientas como Redis pueden guardar los resultados de las consultas en la memoria. Esto significa que los resultados de la consulta se pueden servir desde la caché en lugar de volver a consultar la base de datos la próxima vez.
Estos son consejos generales, pero hay muchas más cosas que puedes hacer al respecto. Veámoslo rápidamente a continuación.
Consejos avanzados para optimizar y solucionar problemas de la base de datos de WordPress
La «indexación» puede ayudarte a añadir una guía de referencia rápida a tu base de datos. Ayuda al servidor de la base de datos a encontrar datos más rápido sin tener que escanear cada fila de una tabla.
Para conseguirlo, identifica las columnas que se utilizan con frecuencia en tus consultas y plantéate añadirles índices. Puedes hacerlo desde phpMyAdmin (o una herramienta similar). Primero, haz clic en la tabla que quieras indexar y ve a la pestaña Estructura:

A continuación, selecciona las columnas que quieras indexar y elige la opción Índice en la parte inferior de la tabla:

Una vez que guardes los cambios, se indexarán esas columnas.
La instrucción EXPLAIN también puede ayudarte a entender cómo ejecuta MySQL tu consulta. Esto te puede ayudar a detectar ineficiencias y a comprender cómo interactúa tu consulta con los índices. Para ejecutarla, añade la instrucción al principio de una consulta existente. Cuando la ejecutes, SQL desglosará cómo ejecutará la consulta:

Aquí no podemos explicar todo lo relacionado con la instrucción EXPLAIN, aunque la documentación de MySQL incluye casi todo lo que necesitas saber al respecto.
Cómo gestionar bases de datos grandes en WordPress
A medida que un sitio de WordPress crece en contenido, usuarios y tráfico, su base de datos se amplía de forma natural. Una base de datos grande es algo con lo que te vas a encontrar (o que te va a preocupar) muy a menudo al gestionar un sitio.
La mayoría de los consejos que te damos en este artículo pueden servirte para gestionar una base de datos grande y reducirla. Sin embargo, hay muchos otros consejos que podemos darte para aquellas bases de datos que, por su naturaleza, serán más grandes de lo habitual:
- Archiva los datos más antiguos. En lugar de mantener todos los datos activos, plantéate archivar entradas antiguas o datos de usuarios a los que no accedes con frecuencia.
- Usa una red de distribución de contenidos (CDN). Descargar y servir recursos estáticos como imágenes, vídeos y descargas desde otro servidor puede reducir la carga de tu sitio web y ayudar a acelerarlo. Además, tu sitio se cargará más rápido para los usuarios, estén donde estén.
- Consultas personalizadas. Si eres desarrollador de WordPress, escribe consultas eficientes para tus temas y plugins. Esto te ayudará a recuperar solo lo que necesitas y a mantener un alto nivel de eficiencia.
Incluso podrías plantearte técnicas avanzadas como la partición de tablas y el «sharding de bases de datos«. Esto consiste en dividir los datos entre varias bases de datos. Suele ser complejo y, por lo general, requiere una gestión especializada.
Hablando de eso, contar con expertos es imprescindible si quieres que tu base de datos y tu sitio web funcionen a pleno rendimiento. El alojamiento de WordPress de Kinsta es escalable, gestionado y está optimizado para la plataforma.

Los planes empiezan desde 35 $ al mes, y nuestra arquitectura puede soportar desde un simple blog hasta redes de nivel empresarial. Escríbenos para descubrir cómo podemos convertirnos en tu socio de alojamiento a largo plazo, sean cuales sean tus objetivos.
Resumen
Tu base de datos de WordPress es como el motor de un coche: sin un buen ajuste, no rendirá tan bien como necesitas. De hecho, si no optimizas la base de datos de WordPress, podrías pasar del primer al último puesto en los rankings de búsqueda. Tus usuarios también notarán que tu sitio pasa a un segundo plano, por lo que contar con una base de datos en perfecto estado y que funcione rápido es fundamental para el éxito.
Hay muchas formas de conseguirlo, pero una combinación de técnicas manuales, plugins y las propias herramientas de optimización de Kinsta te ofrecerá los mejores resultados. En muchos casos, la automatización puede ayudarte a llevar a cabo muchas de estas tareas sin necesidad de iniciar sesión ni de ejecutar ninguna herramienta específica tú mismo.
Nos encantaría saber si nuestros consejos para optimizar la base de datos de WordPress te han funcionado. ¡Cuéntanos cuál te ha resultado más útil en la sección de comentarios de abajo!