Portada Wordpress Cómo Evitar que wp_options Aumente de Tamaño en WordPress
Si eres usuario de WordPress y tienes una tienda online, posiblemente la hayas creado con WooCommerce, que es el plugin que convierte WordPress en toda una tienda online.
Si ya has trabajado un poco con el popular gestor de contenidos y plugin WooCommerce, sabrás que tiene un montón de opciones para personalizar todo a tu gusto y el sistema se encarga de todas las tareas internas de forma que no tengas que preocuparte mucho de los aspectos técnicos.
Pero es posible que en algún momento no tengas más remedio que preocuparte de algún aspecto técnico, como cambiar la versión de PHP o realizar un actualización de seguridad del sistema.
Al fin de al cabo, estamos trabajando con un sistema informático y al igual que en algún momento quizás nos toque cambiar la rueda de un coche sin ser mecánicos, trabajando con WordPress es posible que tengamos que realizar alguna acción para solucionar problemas internos del sistema.
WordPress funciona muy bien y es bastante estable, al igual que WooCommerce, pero como todo en la vida puede fallar y hoy vamos a ver uno de estos problemas, no muy habituales pero que pueden pasar y tienen una fácil solución…. si sabemos cómo actuar.
WordPress trabaja de forma dinámica con la base de datos, esto quiere decir que las peticiones de los usuarios se generan al vuelo, cada vez que realizan una acción en la web, explicado de una forma quizás demasiado simple.
Pero es importante que sepas que la base de datos de WordPress es imprescindible y necesaria para el correcto funcionamiento del CMS y por lógica, de WooCommerce.
Si la base de datos tiene algún problema, es posible que esté acumulando datos innecesarios y no queremos una base de datos con un tamaño excesivo, ya que esto implica lentitud en las peticiones.
Las páginas tardan más en cargar y corremos el riesgo de que los clientes / usuarios abandonen nuestro sitio web, perdiendo posibles ventas o usuarios.
Una de las causas más comunes por las que nuestra base de datos puede crecer a un tamaño desproporcionado, sobre todo si usamos WooCommerce para nuestra tienda online, es por culpa de las llamadas wc_sessions acumuladas en la tabla wp_options.
Si esto nos pasa, tenemos que hacer dos cosas.
La primera, obviamente, es eliminarlas para bajar el tamaño de la base de datos.
Y la segunda, asegurarnos que no vuelve a pasar.
El equipo de WooCommerce sabe de este problema, así que tenemos una opción especialmente dedicada a borrar las sesiones de los clientes.
Para encontrar esta opción, sólo tenemos que acceder al administrador de nuestro WordPress e ir a WooCommerce > Estado > Herramientas.
Aquí encontraremos una opción para borrar las sesiones de los clientes que estén activas, pero ¡cuidado!, ya que esta acción borrará todos los datos de sesión del cliente de la base de datos, incluidos los carritos y carritos guardados en la base de datos.
Así que parece recomendable poner la tienda en mantenimiento antes de hacerlo para no fastidiarle la compra a algún cliente.
Tan solo tenemos que hacer click en el botón y se cerrarán las sesiones abiertas.
Si hay un demasiadas sesiones activas, es posible que nuestro hosting no tenga los recursos o el tiempo de espera máximo para hacerlo y nos toque hacerlo eliminarlas directamente desde la base de datos.
Para esto entraremos en cPanel y accederemos a la herarmienta phpMyAdmin.
PhpMyAdmin no está hecho para todo el mundo, así que si no lo has tocado nunca, te recomendamos encarecidamente que hagas una copia de seguridad de la base de datos, antes de intentar nada.
Una vez dentro de phpMyAdmin, selecionamos la base de datos y pulsamos en el botón de SQL. Aquí tendremos que copiar el siguiente código y ejecutarlo:
DELETE FROM wp_options WHERE option_name LIKE '_wc_session_%' OR option_name LIKE '_wc_session_expires_%'
Con esto se eliminarán todas la sesiones abiertas y nuestra base de datos debería de bajar de tamaño considerablemente.
Pese a que cualquier instalación de WordPress / WooCommerce pueden ser un mundo distinto, hay dos causas principales que motivan que las wc_seassions sean un problema.
Unos son los llamados bots, que no son otra cosa que programas informáticos que realiza ciertas tareas, de manera repetitiva y constante (como si fuera un robot) en Internet.
En el caso que nos ocupa los bots pueden estar creado wc_seassions añadiendo productos a nuestro carrito.
Así que para detenerlos, haremos uso del famoso archivo robots.txt y sólo tendremos que añadir lo siguiente:
User-agent: * Disallow: /*add-to-cart=*
Si tienes dudas de cómo hacer esto en la siguiente guía explicamos cómo hacerlo:
La otra opción es que hayamos desactivado, consciente o inconscientemente, el cron de WordPress.
Esto es común en algunos casos en los que parece que el los recursos del hosting están llegando a su límite.
El cron de WordPress es insaciable y realiza multitud de peticiones, por lo que muchos usuarios prefieren tener algo de control sobre las llamadas del cron.
En esta guía hablamos de cómo anular el cron de WordPress y crear uno en cPanel, que se ejecute cuando nosotros queramos, pero si está mal hecho y no funciona, este puede ser el problema.
De todas formas, puedes ver de una manera muy sencilla si el cron de WordPress está desactivado.
Esto podemos verlo echándole un vistazo al archivo wp-config.php de nuestra instalación de WordPress.
Si en alguna de las lineas vemos lo siguiente:
define('DISABLE_WP_CRON', 'true');
Debemos eliminarla o comentar la linea para dejar que WordPress la tome en cuenta.
De esta manera el cron de WordPress volverá a funcionar y a limpiar las sesiones abiertas de WordPress.