Aunque todos los componentes de un sitio web WordPress son importantes, podría decirse que tu base de datos es clave. Aquí es donde se almacena y se accede a prácticamente toda la información de tu sitio. Como tal, tu juego de optimización de la base de datos de WordPress tiene que ser perfecto.
Una base de datos que sufra de hinchazón y problemas de rendimiento ralentizará tu sitio y perjudicará tu posicionamiento en las búsquedas. Además, podría afectar también a la Experiencia de Usuario (UX, User Experience) en general. A su vez, esto puede afectar a tus cifras de tráfico y repercutir en tus posiciones en los resultados de búsqueda (entre otros problemas).
En este tutorial, veremos la optimización de la base de datos de WordPress desde varios ángulos. Hablaremos de la estructura general que encontrarás, junto con muchas técnicas de optimización que puedes utilizar. También mencionaremos herramientas y servicios que pueden ayudarte a mantener tus bases de datos a pleno rendimiento.
Cómo Entender la Estructura de la Base de Datos de WordPress
En pocas palabras, la base de datos de WordPress es la columna vertebral de tu sitio web. Lo alberga casi todo, como el contenido, los datos de usuario, la configuración y mucho más. En lo que respecta a 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 accederás a ella con herramientas como phpmyAdmin o Adminer:
Por ejemplo, la tabla wp_posts
contiene tus entradas y páginas, mientras que wp_users
contiene datos sobre los usuarios de tu sitio. A continuación veremos algunas de estas tablas con más detalle.
Tras la instalación, WordPress crea un conjunto de tablas predeterminadas para cubrir todos los casos de uso típicos que necesitarías. Sin embargo, los plugins, los temas y la 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 amplia funcionalidad. Sin embargo, por otro lado, demasiadas tablas superfluas (junto con una mala gestión) también pueden provocar hinchazón.
Comprender la estructura de la base de datos de WordPress es crucial por dos razones:
- Rendimiento. Una buena organización de la base de datos te permite recuperar los datos más rápidamente, lo que repercutirá directamente en los tiempos de carga y en el rendimiento.
- Mantenimiento. Saber qué tablas corresponden a las distintas partes de tu sitio te ayudará durante el mantenimiento. Por ejemplo, si un determinado plugin está causando problemas, podrías solucionar los problemas de sus tablas asociadas.
Limpiar y optimizar regularmente las tablas de tu base de datos puede evitar que se vuelvan grandes y difíciles de manejar. Como señalamos, el impacto en el rendimiento podría afectarte negativamente.
Tablas Específicas de WordPress
Todo tipo de sitios utilizan bases de datos, no sólo WordPress. La plataforma tiene sus propios tipos de tablas y funciones de base de datos, y si quieres optimizarlas, es importante que las entiendas perfectamente.
Aunque no vamos a tratarlas todas aquí, algunas tablas te interesarán más que otras:
wp_options
. Almacena la configuración de todo el sitio y es posiblemente una de las tablas más visitadas de tu base de datos. Deberás mantener esta tabla limpia gracias a una buena optimización.wp_postmeta
. Aquí se almacenan los metadatos de tus entradas. A medida que tu sitio crece, ésta puede convertirse en una de las tablas más grandes de tu base de datos.wp_users
ywp_usermeta
. Toda la información relacionada con los usuarios de tu sitio y sus metadatos estará en estas dos tablas. En algunos casos excepcionales, puede que necesites entrar aquí para cambiar una contraseña si no puedes acceder a WordPress.
Recuerda que cada plugin o tema adicional que añadas a tu sitio puede modificar también esta estructura. Sin embargo, sería raro que un tema o plugin eliminara una de estas tablas.
Aun así, debes revisar y comprender regularmente estos posibles cambios. Es clave para mantener una base de datos optimizada que apoye, en lugar de dificultar, 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
Optimizar tu base de datos de WordPress no es sólo una buena práctica; es una necesidad para la mayoría de los sitios que quieren ofrecer una experiencia sin problemas. Tu base de datos es el almacén central de todos los datos importantes de tu sitio. Su salud afecta directamente al rendimiento, la velocidad y la fiabilidad de tu sitio.
Como tal, hay dos razones generales por las que la optimización regular de la base de datos de WordPress debería ser un elemento básico del flujo de trabajo:
- Mejora la velocidad y el rendimiento del sitio. Con el tiempo, tu base de datos de WordPress incluirá algunos 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 la experiencia del 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 la página y un procesamiento más eficaz de los datos. En pocas palabras, cada interacción en el sitio web depende de las consultas a la base de datos. A mayor eficiencia, mejor UX.
También hay algunas razones más avanzadas para asegurarte de que optimizas tu base de datos. Por ejemplo, una base de datos no optimizada somete a tu servidor a una tensión adicional, ya que trabaja más para encontrar y servir 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 de ningún tipo.
Además, a medida que crece tu sitio, también lo hace tu base de datos. Aunque al principio tengas un sistema pequeño y manejable, su complejidad puede crecer rápidamente. Con una optimización regular, puedes asegurarte de que tu base de datos pueda soportar el escalado que emprenda tu sitio sin comprometer el rendimiento.
En resumen, la optimización de la base de datos de WordPress mejorará los tiempos de respuesta. Un retraso en la carga de incluso unos pocos segundos puede provocar un aumento de las tasas de rebote y una pérdida de tráfico, lo que no es una buena noticia 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, tienes una de las mejores formas de mantener tu sitio funcionando lo mejor posible. Sin embargo, las bases de datos pueden hincharse con datos innecesarios con el tiempo, por lo que es importante un flujo de trabajo regular y coherente.
Además, debes utilizar todas las herramientas y servicios a tu disposición de la forma más óptima. La buena noticia es que WordPress ofrece una serie de enfoques para mantener tu base de datos.
Un plugin tendrá innumerables formas de optimizar una base de datos. WP-Optimize es una solución popular para este trabajo. Hay otras, pero ésta tiene grandes valoraciones y críticas en WordPress.org, es gratuita y recibe actualizaciones periódicas.
A lo largo del post te mostraremos cómo optimizar tu base de datos de WordPress utilizando este plugin, pero también puedes extrapolar las instrucciones al plugin que elijas. Si eres cliente de Kinsta, asegúrate de que el plugin que elijas cumpla nuestros requisitos y no aparezca en nuestra lista de prohibidos.
En las próximas secciones veremos esto con más detalle, y abarcaremos el enfoque manual y el uso de WP-Optimize. Más adelante trataremos las herramientas propias de Kinsta. Primero, sin embargo, vamos a tratar algunas tareas previas a la optimización.
Qué Hacer Antes de Abordar la Optimización
Antes de saltar a tu base de datos, hay algunas tareas sencillas que debes realizar. Para empezar, siempre debes hacer una copia de seguridad completa de tu sitio y de tu base de datos. Si ocurre lo peor y estropeas tu sitio, podrás recuperarlo en cuestión de minutos.
También deberás eliminar los plugins o temas que no utilices en tu sitio. Esto podría resolver algunos problemas, y no sólo con tu base de datos. También puede ayudar a reforzar la seguridad de tu sitio.
Sin embargo, ten en cuenta que dependiendo del plugin o tema, esto puede dejar tablas no deseadas. Por supuesto, ésta es la razón exacta por la que queremos optimizar la base de datos, así que entender qué plugins y temas dejan datos transitorios nos ayudará en el futuro.
La tarea final será algo que encontrarás cuando entres en la herramienta de gestión de bases de datos que hayas elegido. Los errores de la base de datos pueden ser, obviamente, una indicación de problemas de rendimiento, por lo que deben ser algo que resuelvas antes de llevar a cabo una mayor optimización.
En resumen, el proceso consiste en seleccionar todas tus tablas y, a continuación, utilizar el botón Comprobar tabla para generar un informe.
Si ves OK o algo similar, es óptimo. Sin embargo, cualquier error debe resolverse antes de continuar. En este caso, una solicitud de soporte puede ser una buena idea.
1. Optimiza las Tablas de Tu Base de Datos
El primer paso es optimizar las tablas de tu base de datos. Con un enfoque manual, dirígete al enlace Bases de datos dentro de tu herramienta de gestión y, a continuación, 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. Simplemente selecciónalas todas en bloque y, a continuación, elige la opción Optimizar tabla del menú desplegable antes de hacer clic en Ir:
Al cabo de un rato, verás un informe con el estado de cada tabla de tu base de datos:
Con WP-Optimize, dirígete a WP-Optimize > Base de datos > Optimizaciones. Desde aquí, haz clic en el botón Ejecutar optimización junto a la opción Optimizar tablas de la base de datos:
El plugin ejecutará todas las tablas y te dará un mensaje de éxito. En este punto, puedes pasar a las revisiones de las entradas.
2. Limpiar las Revisiones de Entradas
El sistema de revisión de entradas de WordPress significa que cada modificación que hagas puede acumularse con el tiempo. Puedes eliminarlas de tu base de datos fácilmente mediante consultas SQL. La forma más sencilla de hacerlo es con una línea:
DELETE FROM wp_posts WHERE post_type = 'revision’;
Esto eliminará todos los tipos de entradas de revisión de la tabla. Sin embargo, también hay datos asociados en otras tablas. Para capturar y eliminar todo esto, puedes utilizar el siguiente fragmento:
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);
Por supuesto, debes utilizar el prefijo de tabla correcto para tu propia base de datos si copias y pegas esto. Con un plugin, esta tarea lleva unos segundos. Al igual que la optimización general de la base de datos de WordPress, WP-Optimize te ofrece un botón de un solo clic desde WordPress:
En el futuro, podrías limitar el número de revisiones que utiliza WordPress accediendo a tu archivo wp-config.php. Aquí, 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 te gustaría mantener. También podrías especificar aquí false
, pero no lo recomendamos. Siempre querrás tener al menos una revisión a la que recurrir si la necesitas.
3. Borrar Comentarios Spam y Elementos Eliminados
También podemos utilizar consultas SQL para eliminar comentarios spam. Ten en cuenta que cuando moderas comentarios, los no deseados permanecen 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 eliminarlos completamente 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’;
Es un caso similar para los elementos que envías a la papelera dentro de WordPress. Puede haber 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 establecer valores para el tiempo que tardan en eliminarse los elementos de la papelera dentro de wp-config.php:
define( 'EMPTY_TRASH_DAYS', X )
Dentro de WP-Optimize, hay tres opciones para ayudarte a eliminar los comentarios spam y la papelera de WordPress:
También existe la opción de eliminar comentarios no aprobados. Esto puede ser útil en algunas situaciones, pero no lo recomendamos. En su lugar, modera estos comentarios y luego elimínalos si es necesario.
4. Eliminar Etiquetas No Utilizadas
Las taxonomías son importantes para WordPress, pero con el tiempo pueden convertirse en una enorme colección. 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 las etiquetas no utilizadas dentro de WP-Optimize es Limpiar los metadatos de las entradas. Esto evalúa si tienes metadatos huérfanos y los eliminará:
Aunque esta opción puede eliminar también categorías y otros datos, es una solución segura, especialmente si ninguna otra entrada o página los utiliza.
5. Eliminar Pingbacks y Trackbacks
No estamos seguros de cuántos sitios web de WordPress utilizan pingbacks y trackbacks en la era actual, pero aún pueden saturar tu base de datos si dejas la configuración activada. La primera tarea es comprobar si tienes desactivada esta opción. Se trata de una tarea sencilla dentro de la pantalla Ajustes > Comentarios dentro de WordPress:
En la sección Ajustes por Defecto de las Entradas, asegúrate de desmarcar las opciones «Intentar avisar a cualquier blog…» y «Permitir avisos 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 su tipología es diferente y es en lo que se centra la consulta. WP-Optimize ofrece dos opciones distintas para cada uno de ellos:
Una vez que completes este trabajo, ¡no deberías volver a ver trackbacks ni pingbacks en tu base de datos!
Utilizar la Optimización Automática de la Base de Datos de WordPress de Kinsta
Los clientes de Kinsta no necesitarán un plugin de optimización de la base de datos de WordPress. Realizamos optimizaciones automáticas continuas las 24 horas del día para todos tus sitios. Por extensión, esto significa que no necesitarás saber nada sobre consultas SQL, dónde se sitúan los datos dentro de tu base de datos o cualquier otra cosa relevante para la optimización de la base de datos de WordPress.
La Optimización Continua de Bases de Datos forma parte de nuestra Monitorización del Rendimiento de las Aplicaciones (APM). Esto mantiene tu base de datos (y tu sitio) de WordPress ágiles y eficientes sin necesidad de intervención manual.
APM limpia tu base de datos eliminando datos innecesarios como transitorios, metadatos huérfanos y comentarios spam. De este modo, puedes asegurarte de que tu base de datos permanece optimizada sin necesidad de intervención.
El uso de APM no es el tema central de este post, pero lo tratamos en nuestra documentación. En lo que respecta a la supervisión de la base de datos, APM vigila las consultas SQL más lentas que se ejecutan:
Accedes a APM a través del panel MyKinsta, concretamente a la pantalla APM. Ten en cuenta que puede que tengas que activarlo primero:
A partir de aquí, tienes que darle un poco de tiempo al APM para que recopile los datos. Sin embargo, una vez que esté visible, podrás comprobar aquellas consultas que puedan necesitar una mayor optimización.
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 crucial para mejorar el rendimiento y la velocidad de tu sitio WordPress. Unas consultas eficientes significan una recuperación más rápida de los datos, lo que a su vez conlleva una mejora de los tiempos de carga y una mejor experiencia de usuario.
Dado que puedes utilizar consultas para llevar a cabo la optimización de la base de datos de WordPress, aquí tienes un par de consejos sobre cómo puedes hacerlas más eficientes:
- Optimiza las estructuras de tus consultas. Observarás que no utilizamos wildcards (o asteriscos) en nuestras consultas de ejemplo. En lugar de utilizar
SELECT *
, sé específico con respecto a las columnas exactas que necesitas. Además, utilizaJOIN
en lugar de subconsultas siempre que sea posible. Las subconsultas pueden ser menos eficientes, especialmente si no tienen una buena estructura o implican grandes conjuntos de datos. - Utiliza la caché de consultas. Herramientas como Redis pueden almacenar los resultados de las consultas en 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 vagos, pero hay muchas más cosas que puedes hacer. Veámoslo rápidamente a continuación.
Optimización Avanzada de la Base de Datos de WordPress y Consejos para Solucionar Problemas
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 los datos más rápidamente sin escanear cada fila de una tabla.
Para conseguirlo, identifica las columnas que se utilizan con frecuencia en tus consultas y considera la posibilidad de añadirles índices. Puedes hacerlo desde phpMyAdmin (o similar). Primero, haz clic en la tabla que quieras indexar y dirígete 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:
Cuando guardes los cambios, se indexarán esas columnas.
La sentencia EXPLAIN
también puede ayudarte a comprender cómo ejecuta MySQL tu consulta. Esto puede ayudarte a detectar ineficiencias y a comprender cómo interactúa tu consulta con los índices. Para ejecutarla, añade la sentencia al principio de una consulta existente. Cuando la ejecutes, SQL desglosará cómo ejecutará la consulta:
No podemos explicar aquí todo lo relativo a la sentencia EXPLAIN
, aunque la documentación de MySQL trata casi todo lo que necesitas saber sobre ella.
Controlar el Rendimiento
Supervisar el rendimiento de tu base de datos de WordPress es una parte esencial del funcionamiento de un sitio. Te ayudará a identificar posibles problemas antes de que se agraven y garantizará que tu sitio siga siendo eficiente y responda bien.
Muchas de las técnicas que cubrimos en esta entrada irán dirigidas a la supervisión del rendimiento, como el uso de 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 Estado del servidor:
Esto te permite ver los tiempos de ejecución de las consultas y los procesos (en la pestaña Estadísticas de consulta), lo que ayuda a identificar las consultas que necesitan optimización. Para una monitorización avanzada, MySQL Workbench te será de gran ayuda:
Te ofrece funciones avanzadas para el diseño, desarrollo y administración de bases de datos. También proporciona informes de rendimiento y diagnósticos que pueden ayudarte a ajustar tu base de datos.
Dentro de WordPress, el perenne plugin Query Monitor te permitirá supervisar las consultas a la base de datos, los hooks, los condicionales, las peticiones HTTP y mucho más.
Es especialmente útil para detectar consultas lentas e identificar los plugins o temas que las causan. En la mayoría de los casos, sin embargo, se trata de un plugin de desarrollo, por lo que puede no ser adecuado para un sitio en producción.
Cómo Gestionar Grandes Bases de Datos en WordPress
A medida que un sitio WordPress crece en contenido, usuarios y tráfico, su base de datos se amplía de forma natural. Una base de datos grande será algo con lo que te encontrarás (o de lo que te preocuparás) a menudo cuando dirijas un sitio.
La mayoría de los consejos que damos en este artículo pueden servir para una base de datos grande, y para reducirla. Sin embargo, hay muchos otros consejos que podemos dar para aquellas bases de datos que serán inherentemente más grandes de lo habitual:
- Archiva los datos más antiguos. En lugar de mantener todos los datos activos, considera la posibilidad de archivar las publicaciones antiguas o los datos de usuario a los que no accedes con regularidad.
- Utiliza una Red de Entrega de Contenidos (CDN, Content Delivery Network). Descargar y servir recursos estáticos como imágenes, vídeos y descargas desde otro servidor puede reducir la carga de tu sitio y ayudar a acelerarlo. Además, tu sitio se cargará más rápido para los usuarios, independientemente de dónde se encuentren.
- Consultas personalizadas. Si eres desarrollador de WordPress, escribe consultas eficientes para tus temas y plugins. Esto te ayudará a obtener sólo lo que necesitas y a mantener alta la eficiencia.
Incluso puedes considerar técnicas avanzadas como la partición de tablas y la «fragmentación de bases de datos» En este caso, los datos se dividen en varias bases de datos. Suele ser complejo y normalmente requiere una gestión experta.
Hablando de eso, los expertos son necesarios cuando se trata de obtener un alto rendimiento de tu base de datos y de tu sitio web adjunto. El alojamiento WordPress de Kinsta es escalable, administrado y optimizado para la plataforma.
Los planes comienzan desde 35 $ al mes, y nuestra arquitectura puede soportar desde un simple blog hasta redes de nivel empresarial. Escríbenos para saber cómo podemos convertirnos en tu socio de alojamiento a largo plazo, independientemente de tus objetivos.
Resumen
Tu base de datos de WordPress es como el motor de un coche: si no se pone a punto, no funcionará tan bien como necesitas. De hecho, la falta de optimización de la base de datos de WordPress podría hacerte caer del primer al último puesto en las posiciones de búsqueda. Tus usuarios también notarán que tu sitio se convierte en un segundón, por lo que una base de datos de primera que funcione rápido es crucial para el éxito.
Hay muchas formas de hacerlo, pero una combinación de técnicas manuales, plugins y las propias herramientas de optimización de Kinsta te proporcionarán los mejores beneficios. En muchos casos, la automatización puede ayudarte a llevar a cabo muchas de estas tareas sin necesidad de conectarte o ejecutar tú mismo ninguna herramienta específica.
Nos encantaría saber si nuestros consejos de optimización de la base de datos de WordPress te han funcionado. ¡Haznos saber cuál ha tenido más impacto en la sección de comentarios de abajo!
Deja una respuesta