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.
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.
Estos son algunos indicadores de que nuestra base de datos es demasiado grande:
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
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.
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.
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:
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».
Una vez instalado tienes que abrir la herramienta de limpieza, que se encuentra en Herramientas / Sweep.
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».
Este plugin nos muestra en «Barrido de entradas» varios elementos, relacionadas con estas, que podemos eliminar.
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.
En la siguiente tabla, en «Barrido de comentarios» podrás ver una lista de los que son susceptibles de ser borrados:
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.
«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.
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.
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.
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.
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í:
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!
En este artículo, aprenderás qué es el Lazy Loading y cómo implementarlo fácilmente en tu… Leer más
En esta guía práctica, te explicamos qué es el presupuesto de rastreo, por qué es… Leer más
¿Alguna vez te has encontrado con un mensaje que te invita a actuar, ya sea… Leer más
Una de las preguntas más comunes entre los desarrolladores web que comienzan a usar JavaScript… Leer más
Descubre qué es y para qué sirve la preimpresión digital para conseguir una buena impresión… Leer más
Ampliamos información para las redes sociales. Descubre cómo gestionar correctamente los consentimientos necesarios en las… Leer más