Optimizando el rendimiento de la base de datos de WordPress
Fernan Díez Colaboraciones 21/12/2018
Durante los últimos años hemos sido testigos del auge de la optimización del rendimiento de nuestros sitios web como unos pilares fundamentales a tener en cuenta en la calidad de nuestros proyectos.
Los buscadores como Google han premiado con un mejor posicionamiento a las webs más veloces haciendo que el WPO sea un apartado a tener en cuenta en nuestros desarrollos de sitios web, especialmente con WordPress.
El camino tomado inicialmente ha pasado por la implementación de sistemas de caché a nivel de servidor y navegador, la optimización de imágenes o el procesado de recursos CSS y JS en el desarrollo de un sitio web creado con WordPress. Por otro lado, es cierto que las labores de mantenimiento y mejora a nivel de administración de sistemas y bases de datos han pasado a un segundo plano, al menos para los sitios web de tamaño pequeño y mediano, o con un presupuesto más limitado.
En este caso, queremos adentrarnos en el apartado de las bases de datos de nuestro CMS favorito, aportando algunos consejos a tener en cuenta para mejorar el rendimiento de nuestros sitios web en el campo del almacenamiento de datos y consultas a las bases de datos, como valor añadido a nuestras labores como desarrolladores web.
Estructura de la base de datos de WordPress
Antes de comenzar conviene tener algunos detalles básicos como la estructura de tablas de la base de datos de WordPress y su funcionamiento. En este enlace del Codex de WordPress vamos a conocer todos los detalles de cada una de sus doce tablas.
A nivel general, podemos tener en cuenta algunas buenas prácticas a la hora de desarollar nuestros proyectos, teniendo en cuenta que una correcta optimización parte de un buen planteamientos desde el inicio. Algunos consejos básicos que debemos tener en cuenta podrían ser los siguientes.
- WordPress, temas y plugins actualizados
- Desinstalación y eliminación de plugins que no están en uso
- Eliminación de contenido innecesario
Optimización de la base de datos a través de phpMyAdmin
A través de diferentes órdenes podemos realizar labores de mantenimiento que nos permitirán reducir espacio, reparar errores y optimizar las base de datos de nuestras instalaciones de WordPress.
phpMyAdmin es una herramienta de gestión de base de datos MySQL incluida en la mayor parte de paneles de control de alojamientos web y que está a nuestro alcance para poder utilizarla.
También podemos utilizar estas órdenes desde la terminal si disponemos de acceso SSH, nos sentimos cómodos con el proceso y queremos ganar aún más tiempo.
Optimización de tablas
Podemos optimizar tablas concretas de nuestra instalación para reducir el tiempo de las consultas a publicaciones mediante el siguiente comando de SQL.
OPTIMIZE TABLE 'wp_posts'
Reparar tablas
La información corrupta no solo puede retrasar las consultas a nuestra base de datos MySQL sino que además podría hacer que nuestro sitio web fuera inaccesible. Es posible reparar las tablas de nuestra base de datos para evitar este tipo de errores.
REPAIR TABLE 'wp_posts'
Eliminar revisiones de publicaciones
Si mantenemos activa la opción de guardado de revisiones de posts y otras publicaciones, su tamaño puede volverse considerable. Es posible evitar que ese contenido interfiera en el resto de consultas ejecutando órdenes como la siguiente.
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id) LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id ) LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id) WHERE a.post_type = 'revision' AND d.taxonomy != 'link_category';
Eliminar comentarios spam
Otro de los aspectos fundamentales en el mantenimiento de un sitio web con WordPress es lidiar con los comentarios spam. Para eliminarlos de forma ágil podemos recurrir a esta consulta SQL.
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Eliminar etiquetas no utilizadas
Cuando nos enfrentamos al mantenimiento de un sitio web con bastante tiempo y publicaciones acumuladas es habitual encontrarse con etiquetas o tags que no han llegado a ser utilizadas aunque hayan sido publicadas. Es posible eliminar esa categorízación sin valor.
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 ); DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms); DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
Eliminar pingbacks y trackbacks
Cuando los blogs eran blogs, el uso de llamadas entre publicaciones mediante pingbacks y trackbacks estaba al orden del día. En la actualidad es muy probable que no queramos ni almacenar ni mostrar esa información.
DELETE FROM wp_comments WHERE comment_type = 'pingback'; DELETE FROM wp_comments WHERE comment_type = 'trackback';
Plugins recomendados para optimizar bases de datos WordPress
Una vez que conocemos algunos conceptos básicos de optimización de bases de datos MySQL para nuestras instalaciones de WordPress, podemos probar también con algunos plugins que nos permitan ejecutar este tipo de órdenes y consultas de una manera más sencilla a través del propio panel de administración.
Para este tipo de situaciones, podemos recomendar los siguientes plugins.
WP-Optimize
WP-Optimize permite eliminar datos innecesarios de nuestras instalaciones y lanzar procesos de optimización de tablas de nuestra base de datos incluso de manera programada.
Advanced Database Cleaner
Advanced Database Cleaner nos permite eliminar registros y tablas de la base de datos de todos aquellos plugins que hemos tenido istalados en algún momento, pero que ya no están en uso.
Query Monitor
Query Monitor es un plugin que nos permite monitorizar el rendimiento de cada una de nuestras páginas de WordPress a la vez que las estamos visitando. Nos ofrece información valiosa acerca del tiempo de carga del sitio, los límites de memoria de PHP utilizado y las consultas a la base de datos.
Como has podido comprobar hemos recopilado algunos consejos y buenas prácticas, las órdenes de SQL más importantes a tener en cuenta en aspectos de optimización y algunos plugins WordPress fundamentales para poner a punto nuestras instalaciones. Como siempre, el mejor consejo es trabajar de manera ordenada desde el inicio del proyecto y prestar especial atención a la optimización de nuestros proyectos desde el comienzo.