Cómo limpiar la base de datos de WordPress

Optimizar tu base de datos es importante. Es posible que no lo notes si tienes un sitio web pequeño, pero si lo has estado gestionando ya durante un tiempo o es una página web grande, probablemente verás y notarás la diferencia cuando limpies tu base de datos.

Cada entorno y configuración es diferente, por lo que no existe un «código mágico» que haga esto por ti. Pero te daré todo tipo de consejos y trucos sobre optimización para el sistema de administración de bases de datos más popular: MySQL. WordPress también lo usa.

¡Stop! La base de datos es el componente más importante de tu web. Es muy delicada. Es obligatorio hacer una copia de seguridad de todo tu sitio web, incluida la base de datos, antes de realizar cambios en la misma. Si no lo haces, corres el riesgo de perder datos. Así mismo, tampoco nos hacemos responsables de ningún daño que causes a tu web.

1) Eliminar metadatos huérfanos y duplicados

WordPress tiene una variedad de entradas que contienen información adicional sobre tu base de datos. Por ejemplo, tus usuarios tienen una dirección de correo electrónico, un sitio web, una biografía; tus publicaciones tienen un contenido, un título, un extracto; los comentarios tienen un autor, un campo de correo electrónico, etc. Esta información a veces puede estar duplicada o huérfana (no pertenecer a nada). En tales casos, estos datos simplemente no tienen valor y pueden desordenar la base de datos de WordPress. Por lo tanto, deben limpiarse para mejorar el rendimiento y obtener una base de datos ordenada.

En primer lugar, vamos a definir los términos “huérfano” y “duplicado”:

  • Metadatos huérfanos: en WordPress, esto hace referencia a datos que ya no están asociados con una publicación o página en particular, usuario, comentario, término u otro elemento. Esto puede ocurrir si el elemento en cuestión se elimina incorrectamente o si los datos se importan o exportan incorrectamente.
  • Metadatos duplicados: estos son los datos que están duplicados en la base de datos de WordPress, lo que puede generar confusión e inconsistencia en la información. Esto puede suceder, por ejemplo, cuando una publicación o página se importa o exporta incorrectamente, o cuando los datos se ingresan manualmente varias veces. En ocasiones, un complemento defectuoso que no está codificado correctamente también puede ser la causa.

Ahora veamos los tipos individuales de metadatos.

  • Metadatos de publicaciones: los metadatos de publicaciones es la información que proporcionas a tu audiencia sobre cada publicación, como la fecha de publicación, el autor, las etiquetas de publicación no utilizadas o los campos de publicación personalizados no utilizados. Los metadatos de publicaciones también pueden ser información técnica interna, como la plantilla de publicación utilizada.
  • Metadatos de usuario: los metadatos de usuario son datos asociados con una cuenta de usuario, como el nombre, la dirección de correo electrónico y la información del perfil. Los metadatos de usuario huérfanos son metadatos de usuario que ya no están asociados con una cuenta de usuario.
  • Metadatos de comentarios: algunos ejemplos de metadatos de comentarios en WordPress son el nombre de un comentarista, la dirección de correo electrónico, la dirección IP y la URL del sitio web. Otros metadatos pueden incluir el contenido del comentario, la fecha y hora en que se realizó el comentario y el estado del mismo (aprobado, pendiente, spam, etc.).
  • Metadatos de términos: los metadatos de términos te permiten almacenar datos para términos (etiquetas, categorías u otras taxonomías personalizadas) de manera similar a los metadatos de publicación. Estos metadatos pueden incluir información como descripciones de términos, imágenes de términos y campos de términos personalizados. WordPress también puede usar la tabla de base de datos wp_termmeta (utilizada por los metadatos de términos) para rastrear y analizar el comportamiento y la actividad del usuario relacionada con los términos.
  • Relación de términos: las publicaciones o páginas están asociadas con categorías y etiquetas, y esta asociación se mantiene en la tabla de base de datos wp_term_relationships. Esto se llama relación de términos.

Para limpiar todos estos datos, puedes usar un plugin como WP-Sweep. Simplemente instálalo, ve a Herramientas > Sweep ¡y empieza a «barrer» todos los datos que necesites!

2) Limpiar tablas de plugins desinstalados

A veces, un plugin deja sus tablas en la base de datos cuando lo eliminas. Estas tablas contienen información que el plugin utiliza, por lo que si no se va a usar más en un futuro cercano, esta información debe eliminarse.

Para ello, utilizamos el plugin Plugins Garbage Collector:

1) Instala el plugin.

2) Ve a Herramientas > Limpieza de la base de datos.

3) Asegúrate de que la opción Buscar en las tablas que no son WP esté seleccionada y haz clic en Escanear base de datos.

4) Espera a que se complete el escaneo y el plugin te mostrará una lista de todas las tablas en la base de datos que ha encontrado, resaltadas en diferentes colores.

  • Verde significa que la tabla pertenece a un plugin que está activo.
  • Azul significa que la tabla pertenece a un plugin que está instalado pero desactivado.
  • Rojo significa que la tabla pertenece a un plugin que se ha desinstalado.

¡Atención! El plugin solo debe ayudarte a tomar una decisión. No confies ciegamente en sus resultados, porque no es perfecto. Por este motivo, te recomiendo que procedas de la siguiente manera.

5) Fíjate en cada una de las líneas rojas, elimina el prefijo y búscalas en Google para saber a qué plugin pertenecen. Por ejemplo, intentemos averiguar a qué plugin pertenece la tabla wp_wpr_rucss_resources

  1. Eliminamos el prefijo de la base de datos que está presente en todas las tablas. En nuestro caso, es wp_. Nos queda wpr_rucss_resources
  2. Busca en Google «wpr_rucss_resources», incluidas las comillas: https://www.google.com/search?q=%22wpr_rucss_resources%22&oq=%22wpr_rucss_resources%22&sourceid=chrome&ie=UTF-8 
  3. Descubrimos que la tabla pertenece a WP Rocket. 
  4. Hora de decidir. ¿Desinstalamos en su momento el plugin y no lo necesitaremos en el futuro? Si es así, marcamos la casilla junto al nombre de la tabla, no la otra.

Algunos consejos útiles para trabajar con este plugin.

  • Los falsos positivos son más comunes que los falsos negativos. En otras palabras, el plugin encontrará con mayor frecuencia tablas que pertenecen a un plugin pero que están marcadas como desconocidas («Unknown») que tablas que no pertenecen a ningún plugin instalado pero que están marcadas como que sí pertenecen a un plugin.
  • No elimines nada que no sepas a qué pertenece.
  • Si tienes líneas rojas junto con líneas azules/verdes que siguen el mismo patrón en el nombre (por ejemplo, wp_wpf_modules, wp_wpf_meta_values_bk, wp_wpf_meta_values…), no las elimines. Puede ser que el plugin simplemente no haya reconocido correctamente las tablas en rojo.

3) Limpiar las tablas de la base de datos predeterminadas de WordPress

Una instalación de WordPress por defecto tiene las siguientes tablas de base de datos:

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_termmeta
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

Como cualquier otra tabla de base de datos de WordPress, estas pueden llenarse con información innecesaria que puedes limpiar.

wp_comments

Si quieres optimizar la tabla wp_comments la mejor manera es simplemente deshacerse del spam y de los comentarios eliminados. Ni siquiera necesitas un plugin para hacer esto. Simplemente accede a tu escritorio de WordPress y elimínalos de la sección de comentarios.

wp_options

Esta es, con diferencia, la tabla más importante de WordPress, por lo que es crucial optimizarla. Si no sabes lo que estás haciendo, es posible que tu web deje de funcionar, ya que esta tabla contiene información no solo sobre los ajustes y configuraciones de tus plugins, sino también sobre el propio WordPress, como la URL del sitio o la estructura de enlaces permanentes. 

Aquí hay varias tareas de optimización que podemos hacer.

Eliminar datos transitorios

En WordPress, los datos transitorios son una forma para que los plugins almacenen datos temporalmente en caché en la base de datos, como por ejemplo los resultados de consultas complejas de bases de datos. Los datos transitorios ayudan a mejorar el rendimiento de tu sitio web porque reducen la cantidad de veces que tu página necesita ejecutar la misma consulta. 

Cuando un plugin crea un dato transitorio, opcionalmente establece una fecha de caducidad. Este es un paso tanto lógico (no querrías recuperar datos antiguos) como de mantenimiento (evitas el desorden en la base de datos). WordPress elimina el dato transitorio cuando el plugin lo solicita y WordPress detecta que se ha alcanzado la fecha de caducidad.

Pero hay un problema. ¿Qué sucede si un plugin crea muchas filas con datos transitorios, pero lo eliminas y el mismo plugin no se encarga de eliminar tales datos transitorios completamente? Lo que pasará es que tendrás muchos transitorios que no se volverán a solicitar nunca y, por lo tanto, no podrán caducar. Así pues, estos transitorios permanecerán en la base de datos durante años y no harán más que ocupar espacio innecesario. 

Puedes verificar manualmente qué datos transitorios pertenecen a qué plugin, pero dado que es trabajo de chinos, yo te recomiendo lo siguiente: 

  1. Elimina todos los transitorios con WP-Sweep.
  2. Espera alrededor de un mes.
  3. Comprueba otra vez cuántos transitorios tienes con WP-Sweep. Si tienes aproximadamente el mismo número, significa que los transitorios eliminados en realidad se han usado y se han recreado. Si tienes un número mucho más bajo, ¡felicidades!, has eliminado transitorios que no necesitabas.

Dado que los datos transitorios son solo datos cacheados, no debería haber ningún problema en eliminarlos. Sin embargo, deberías hacerlo solo cuando tu web tenga poca o nada de tráfico, especialmente si tienes una tienda online o usuarios potencialmente conectados.

Limpiar «autoloads»

Los datos cargados automáticamente son datos que tu WordPress tiene que coger cada vez que alguien abre una página de tu web, y se configuran con el campo de autoload en la tabla wp_options.

Como hemos comentado antes, la tabla wp_options contiene todo tipo de datos importantes para tu sitio de WordPress, como la URL del sitio, la configuración de los plugins, la configuración de tu tema, etc., pero a menudo también contiene datos que ya no se usan porque el plugin al cual tales datos pertenecían no limpió lo que debía limpiar al eliminarse. Teniendo en cuenta que uno de los principales problemas de los sitios web de WordPress es la gran cantidad de «autoloads» en la tabla wp_options (muchos desarrolladores configuran el campo de autoload de sus plugins/temas a yes por defecto, aunque teóricamente no todos los plugins deberían forzar la carga de sus datos en cada página), debemos priorizar la eliminación de «autoloads» para evitar una web lenta.

Eliminar «autoloads»

Así pues, nuestro objetivo tiene que ser localizar todos los «autoloads» que ya no se necesitan. El mejor plugin para esto, si no quieres ensuciarte las manos con phpMyAdmin, es Advanced DB Cleaner. En la pestaña Opciones, puedes ver toda la tabla wp_options, filtrar por los datos cargados automáticamente y eliminarlos de allí. Echemos un vistazo a cómo hacerlo.

1) Ve a Herramientas > WP DB Cleaner > Opciones.

2) Ordena de mayor tamaño a menor tamaño.

3) Ahora ve de arriba a abajo y busca solo las opciones donde la carga automática esté activada.

4) Para cada «autoload», búscalo en Google y averigua a qué pertenece. Puede ser un plugin, un tema o el propio WordPress. Bórralo solo si estás seguro de que no lo necesitas.

El tamaño total de los datos cargados automáticamente no debería exceder 1 MB y nuestro objetivo debería ser tener menos de 500 KB. La pregunta es cómo podemos comprobar el tamaño total. Para esto tenemos un plugin creado poir un servidor: Autoload Checker.

Comprobar el tamaño total de los «autoloads»

1) Instala el plugin Autoload Checker.

2) Ve a Herramientas > Autoload Checker.

3) En la parte de arriba te saldrá el tamaño total.

Eliminar opciones no utilizadas

Pero no solo es necesario limpiar las opciones cargadas automáticamente. Como con cualquier otra base de datos, tienes que deshacerte de todo lo que no se necesita. Muchos plugins dejan su configuración en la tabla wp_options después de la desinstalación y ni siquiera proporcionan un botón para eliminarla.

Puedes usar el plugin Advanced Database Cleaner para esto, pero la función que te permite determinar a qué plugin pertenece una determinada opción solo está disponible en su plan de pago. Es decir, si no quieres gastar dinero, tendrás que confiar en nuestro mejor amigo: Google. Ya sabes cómo va:

  • Ve a Herramientas > WP DB Cleaner > Opciones.
  • Busca en Google cada opción y averigua a qué pertenece. Puede ser un plugin, un tema o el mismo WordPress. Elimínala solo si estás seguro de que no la necesitas.

wp_postmeta

Esta tabla de base de datos en especial es bastante problemática. No hay una forma obvia de limpiarla, por lo que todo debe hacerse a mano. Y no solo eso, es una tabla que tiende a crecer mucho y rápido.

Me gustaría aprovechar esta oportunidad para enseñaros esta increíble entrada de David Greenwald en rawkblog.com. Repasa todo en detalle y lo explica de una manera muy clara.

oEmbed cache

WordPress almacena todos los datos de oEmbed en la base de datos para mejorar la velocidad de carga, que es básicamente el código que se necesita de recursos externos como YouTube, Twitter o Google Maps. Si hay muchas entradas antiguas eliminadas que usan oEmbed, podrían llenar la base de datos innecesariamente. En este caso, esta caché debe vaciarse.

Obviamente no puedes saber si hay muchas entradas antiguas eliminadas que han usado oEmbed. Por lo tanto, puedes limpiar esta caché de vez en cuando con seguridad con, una vez más, WP-Sweep.

wp_posts

La tabla wp_posts contiene cada entrada, página o tipo de contenido personalizado en tu sitio. Así que, la forma más obvia de reducir su tamaño es eliminar todas las entradas o páginas innecesarias.

Sin embargo, dentro de esta tabla también se encuentran las revisiones. Las revisiones son versiones antiguas de tus entradas o páginas que se almacenan en la base de datos en caso de que quieras restaurarlas. A veces, el número de estas versiones puede llegar a ser demasiado grande, por lo que ocupa espacio en la base de datos y, en el peor de los casos, ralentiza tu sitio web.

Nuevamente, puedes usar WP-Sweep, pero ten en cuenta que no te permite mantener una cierta cantidad de revisiones. Eliminas o todo o nada. Si quieres mantener una cantidad específica de revisiones, puedes usar el plugin Advanced Database Cleaner y configurarlo para mantener la cantidad de días de revisiones que elijas.

4) Optimización de tablas

Las tablas de tu base de datos se comportan de alguna manera como las unidades de disco duro en Windows. ¿Recuerdas la palabra «desfragmentación» que solías ver en los ordenadores con Windows? Si ejecutas el comando OPTIMIZE TABLE en tablas MySQL, se reorganiza la memoria física de los datos de la tabla de la base de datos y los datos del índice asociado para ahorrar espacio en disco y mejorar la eficiencia al acceder a la tabla. Puedes optimizar las tablas de tu base de datos de WordPress de dos maneras.

Esto puede llevar algo de tiempo según el tamaño de los datos y los índices, pero mientras no se te vaya la luz, no pasará nada. Como decía, este proceso es similar a desfragmentar un ordenador.

WP-Sweep

Puedes volver a utilizar el plugin WP-Sweep y su opción «Optimize Tables».

phpMyAdmin

Si usas phpMyAdmin, puedes optimizar las tablas de tu base de datos con un solo clic. Para hacerlo, sigue estas instrucciones:

1) Inicia sesión en phpMyAdmin. Si no sabes cómo hacerlo, tu proveedor de alojamiento puede ayudarte.

2) Haz clic en Databases en el área superior.

3) Selecciona la base de datos correspondiente.

4) Haz clic en Check All (a menos que quieras seleccionar un grupo específico de tablas) y luego selecciona Optimize table.

5) Deberías recibir un mensaje de confirmación. ¡Y ya está!

En esta entrada pueden haber enlaces de afiliado a productos y servicios en los que a veces podrás obtener descuentos si compras algo, y yo, como autor de la entrada, una pequeña comisión. No te preocupes, nunca pagarás de más y nunca verás enlaces de afiliados de algo que yo mismo no utilice o recomiende.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *