Limpiar base de datos de WordPress

Limpiar base de datos de WordPress

Si tienes un WordPress de más de tres años o con gran actividad de comentarios y entradas, es posible que te hayas encontrado con un problema habitual en los gestores CMS: La base de datos va creciendo día a día, comiéndose los recursos del hosting. Te explicamos cómo limpiar tu base de datos de WordPress de una manera fácil y (relativamente) segura.

¿Cómo saber que nuestra base de datos es demasiado grande?

El primer indicador de que el tamaño de la base de datos es excesivo, es el propio hosting. Si te ha pasado, ya sabes de qué hablo. Cuando contratas un hosting lo haces con unas características concretas, que siempre intentas que se adapte a la situación de tu web, para no pagar de más. Según va creciendo la base de datos, va consumiendo el espacio dedicado a la misma. Llega un momento en que recibirás un correo del proveedor de hosting avisando de que el espacio MySQL está cerca de consumirse totalmente.

Tamaño de base de datos en hosting

Estos son algunos indicadores de que nuestra base de datos es demasiado grande:

  • Alerta de hosting – Recibimos un aviso de nuestro hosting diciéndonos que se está llegando al máximo contratado
  • Auditoría web Realizar una auditoría web de vez en cuando es muy recomendable, ya que ayuda a encontrar los problemas antes de que sean evidentes
  • Número de tablas – Un vistazo a nuestra base de datos de WordPress y podemos ver que existen demasiadas tablas nuevas
  • Tamaño de las tablas – Una consulta MySQL nos puede dar los tamaños en MB que tienen las tablas

Ya vimos estas consultas en «Cómo limpiar la base de datos de PrestaShop«, como el sistema es el mismo, podemos utilizarlas, también, para WordPress. En el caso de querer saber el tamaño completo puedes usar esta consulta:

SELECT table_schema,
     sum( data_length + index_length ) / 1024 / 1024 "MB"
 FROM information_schema.TABLES
 GROUP BY table_schema

Si lo quieres desglosados por tablas, el código es el siguiente:

SELECT 
      table_schema, 
      table_name, 
      round(((data_length + index_length) / 1024 / 1024), 2) 'Tamaño (MB)' 
 FROM information_schema.TABLES 
 ORDER BY (data_length + index_length) DESC
Base de datos de tamaño mediano
Base de datos de WordPress de tamaño medio. Para ser una web sin tienda tiene un tamaño considerable.
Base de datos grande - Urge limpiar
Base de datos de WordPress de gran tamaño. Urge limpiar tablas.

Estructura de la base de datos de WordPress

Si has hecho la consulta por tablas verás que algunas pesan unos pocos KB, mientras que otras pueden llegar a algunos megas ¿Cuál es su tamaño adecuado? Para entenderlo mejor vamos a ver cuales son algunas de las tablas que forman parte de WP.

  • wp_comments: Almacena los comentarios que dejan los usuarios.
  • wp_commentmeta: Datos asociados a los comentarios
  • wp_options: La más delicada, aquí van los ajustes que hacen funcionar WordPress.
  • wp_posts: El grueso del contenido se almacena aquí (entradas, páginas, productos…).
  • wp_postmeta: Datos asociados a los elementos de wp_posts
  • wp_users: Tabla de datos de usuario.
  • wp_usermeta: Datos asociados de wp_users.

Pues bien, una de las tablas que suele llenarse de morralla es la wp_comments. Si ocupa varios MB debemos sospechar que algo pasa. Parte de la culpa la tiene en que también se guarda todo el SPAM que clasificamos como tal. Incluso comentarios borrados se pueden mantener en la base de datos. Esto hace que, con el paso del tiempo, esta tabla vaya creciendo más y más.

Pasos para limpiar la base de datos

Lo más importante es ser metódico, no hacer las cosas sin pensar, porque un error con la base de datos nos puede arruinar todo el sitio web. Los pasos que te recomendamos seguir son los siguientes:

  • Modo mantenimiento – Coloca tu sitio en modo mantenimiento. Para ello puedes usar un plugin. El modo mantenimiento «cierra» tu web para que los usuarios no puedan navegar por ella, dejando un aviso de que en breve estarás de nuevo operativo. Esto es especialmente importante en tiendas con WooCommerce, de manera que no se pierdan pedidos y registros.
  • Copia de seguridad – Realiza una copia de seguridad. Como solo vamos a tocar la base de datos no necesitamos copiar los archivos, aunque nunca está de más.
  • Realiza la limpieza – Borra y elimina los datos sobrantes, de manera manual o con algún plugin (más abajo te explicamos cómo).
  • Pruebas – Cuando hayas acabado realiza pruebas, muchas pruebas. No abras el sitio web hasta asegurarte de que todo funciona correctamente. Un error en este punto puede ser fatal.
  • Repetir o finalizar – Si todo está correcto puedes abrir, de nuevo, el sitio. Si hay algún problema puedes recuperar la copia previa y volver a intentarlo.

Limpiar la base de datos de WordPress con un plugin

Para limpiar la base de datos de una manera fácil, podemos recurrir a algunos de los plugins que realizan esta tarea en WordPress. Aquí voy a explicar cómo hacerlo con WP-Sweep.

Tienes que acceder al backoffice de tu web y desde Plugins / Añadir nuevo, insertar el nombre del módulo en el buscador. Una serie de tarjetas te mostrarán las coincidencias. Para habilitar este plugin tan solo tenemos que clicar en «Instalar ahora» y, esperando un momento, cuando cambie el botón, en «Activar».

WP-Sweep. Plugin para limpiar la base de datos de WordPress

Una vez instalado tienes que abrir la herramienta de limpieza, que se encuentra en Herramientas / Sweep.

Herramienta para limpiar base de datos de WordPress

Podrás ver un análisis de toda tu web, con los elementos que el plugin considera que se podrían borrar. Para cada elemento, representado uno por línea, nos da dos opciones: Barrer (limpiar) y Detalles (listado de elementos).
Por motivos de rendimiento, solo se mostrarán 500 elementos si haces clic en «Detalles».

Eliminar revisiones de entradas en WordPress

Este plugin nos muestra en «Barrido de entradas» varios elementos, relacionadas con estas, que podemos eliminar.

Borrar datos de entradas

De este cuadro, seguramente, el valor más interesante a limpiar son las revisiones.

Cada vez que pulsas el botón de guardar en tu entrada, se almacena en la base de datos una copia completa del artículo. Esto permite una función muy interesante de WordPress: Rescatar y comparar antiguas versiones del artículo por medio de un histórico. Sin embargo tiene una pega, como no podía ser de otra manera, y es que la base de datos se va hinchando revisión tras revisión.

Borrar comentarios de spam

En la siguiente tabla, en «Barrido de comentarios» podrás ver una lista de los que son susceptibles de ser borrados:

  • Comentarios que no han sido aprobados – Puede ser que no revisemos los comentarios y nos encontremos más de 300 comentarios sin moderar. Podemos hacer borrón y cuenta nueva.
  • Spam – Aunque estén clasificados como tal, y no se muestren en nuestra web, se siguen almacenando en la base de datos, con el consiguiente consumo de espacio.
  • Borrados – ¿Borrados? Sí, borrados. Aunque eliminemos el comentario pueden quedar elementos almacenados en la base de datos.
  • Metas de comentarios no usados – Esto es, los datos relacionados con comentarios que no hacen referencia a ninguno actual.
  • Metas de comentarios duplicados – Se trata de los datos de los comentarios que están duplicados y, por lo tanto, se puede simplificar
Borrar comentarios en WordPress

Eliminar Usuarios

Normalmente no tendrás una gran lista de usuarios en tu web. Sin embargo, si la gente puede registrarse en la misma, se irán almacenando sus fichas de usuario en la base de datos y, lo que es más incontrolable, información cruzada en otras tablas sobre estos usuarios. Si, por algún motivo, quieres eliminar datos relacionados con usuarios, el plugin también te da la opción en «Barrido de usuarios». En concreto te dejará borrar datos sobre usuarios que ya no existen y datos duplicados.

Borrar datos sobre usuarios

Eliminar términos

«Barrido de términos» te muestra términos y etiquetas que no están siendo usadas o que se encuentran duplicadas.

Cuidado con la última opción, como el propio plugin te avisa, puede haber términos sin utilizar pero que podrían pertenecer a borradores. Asegúrate de que no existe ninguna entrada clasificada como borrador.

Borrar términos relacionados

Borrado de opciones

La siguiente tabla, «Barrido de opciones», te permitirá eliminar opciones de plugins que tenían una función temporal, pero han dejado información en la base de datos.

Opciones de WP-Sweep

Optimizar las tablas de la base de datos

La última tabla, «Barrido de datos», es crucial y básica. Una vez hayas borrado las opciones deseadas, tendrás que pulsar «Barrer» en «Optimizar las tablas» para que se reorganicen los datos y el ahorro de espacio sea efectivo. Para entenderlo con un ejemplo: Con las otras opciones has vaciado el armario, pero tu habitación, ahora, tiene un gran mueble vacío que no se está usando y que ocupa un gran espacio. Optimizando la tabla eliminamos todos los armarios vacíos.

Optimizar base de datos WordPress

Eliminar todos los elementos sobrantes

El plugin nos ofrece una última opción: «Barrer todo». Yo no te lo recomiendo, teniendo la opción de seleccionar qué quieres borrar y qué no, creo que es mucho mejor decidirlo uno mismo. Pero si estás decidido a hacer una limpieza total, en vez de ir uno a uno, puedes usar esta opción que ejecutará todas las acciones disponibles.

Resultado

Una vez realizada la limpieza puedes volver a consultar el tamaño de la base de datos, en nuestros dos ejemplos del principio, borrando, básicamente, revisiones y spam, quedaron así:

Base de datos optimizada
Nuestro primer ejemplo bajó de 90 a 12 MB
Base de datos optimizada WP
La otra base de datos bajó de 255 a 195 MB

En el primer caso, con el simple uso de este plugin, se ha bajado el tamaño casi 80 MB. En el segundo hemos conseguido 60 MB que, aunque está bien, desde luego aún queda una base de datos de un tamaño considerable. Cuando algo así pasa es que estamos ante casos más especiales: 195 MB sigue siendo demasiado para un WordPress normal. Aunque, como caso especial, escapa un poco a la intención del artículo, sí que te diré que esta segunda web tenía un problema con los log de un plugin de seguridad, cuya tabla ocupaba unos 175 MB. Tras unas acciones adicionales conseguimos dejar la base de datos en 10 MB, lo que supuso un ahorro total de… ¡245 MB!

Base de datos optimizada con acciones adicionales
Resultado final de una base de datos de 255 MB

Dejar una respuesta

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

Puedes usar estas etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>