Cómo limpiar la tabla wp_options

Una de las cosas que más me chirrían de WordPress es la manía de muchos plugins de meter líneas de información en la base de datos, en concreto en la tabla ‘wp_options‘, que a poco que instales y desinstales plugins, se va llenando de porquería, muy al estilo de lo que pasa con el registro de Windows.

Por supuesto, es una mala costumbre, no de WordPress, sino de algunos desarrolladores que, pudiendo crear sus propias tablas, prefieren introducir la información del plugin en la tabla ‘wp_options‘. Y esto, además, no sería un problema si introdujeran una línea de código para limpiar la base de datos de su información al desinstalar el plugin, algo que si hacen algunos programadores.

Pero bueno, si tu base de datos crece y crece en tamaño, y no es por nuevas tablas ni por el crecimiento normal de las tablas wp_posts o wp_comments, es muy probable que sea precisamente la tabla wp_options que ha ido creciendo por plugins con esta fea costumbre.

¿Limpiarlo?, pues bueno, puedes hacerlo manualmente, si conoces las entradas de una instalación estándar de WordPress, pero es una absoluta barbaridad y te puede llevar muchas horas que seguramente prefieras emplear para otras cosas.

Lo mejor es valerte de alguna de estas soluciones:

1. WP-Options manager

Este plugin ofrece un navegador que te permite identificar las entradas en la tabla ‘wp_options‘ de tu base de datos e ir borrándolas selectivamente. Lo que le diferencia de hacer lo mismo desde PHPmyAdmin es que nos ofrece ocultar las entradas por defecto de WordPress, haciendo esta tarea mucho más segura.

Otra funcionalidad interesante es buscar opciones obsoletas, para empezar el borrado por ahí.

Muy recomendable pero hay que usarlo con precaución, como siempre que haces algo directamente con la base de datos, como es el caso.

2. Clean options

Una de las mayores virtudes de este plugin es que detecta opciones obsoletas, e identifica las muy pesadas y habituales entradas de RSS antiguas, que suelen llenar toda tabla ‘wp_options‘.

También es de agradecer que antes del borrado definitivo nos ofrezca una pantalla en la que nos avisa y recuerda todo lo que se va a borrar, para dar el último suspiro antes de hacer el borrado.

3. Eliminar los _transient

Las entradas del tipo ‘_transient‘ son una especie de referencias a cache y los accesos RSS que antes comentaba. Si es tu cáncer particular puedes automatizar el borrado de estas molestas y pesadas entradas en tu tabla wp_options de WordPress añadiendo este código al fichero functions.php o plugin de funciones:

add_action( 'wp_scheduled_delete', 'delete_expired_db_transients' );

function delete_expired_db_transients() {

    global $wpdb, $_wp_using_ext_object_cache;

    if( $_wp_using_ext_object_cache )
        return;

    $time = isset ( $_SERVER['REQUEST_TIME'] ) ? (int)$_SERVER['REQUEST_TIME'] : time() ;
    $expired = $wpdb->get_col( "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout%' AND option_value < {$time};" );

    foreach( $expired as $transient ) {

        $key = str_replace('_transient_timeout_', '', $transient);
        delete_transient($key);
    }
}

Pues bien, esto es lo que hay. Y te recuerdo que siempre, siempre, haz backup de tu base de datos antes de liarla parda con estas cosas, para que no te tengas que arrepentir.

Y si con estos plugins no te llega, siempre puedes dejar la tabla ‘wp_options‘ al estado inicial de la instalación de WordPress con estos sencillos pero radicales pasos:

  1. Ve a ‘Herramientas -> Exportar’ y exporta todo el contenido
  2. Ve a PHPmyAdmin y borra todas las entradas de la tabla ‘wp_options
  3. Ve a ‘miweb.com/wp-admin/install.php’ y actualiza la base de datos
  4. Ve a ‘Herramientas -> Importar’ e importa el contenido antes exportado

Para todo lo demás, usa cuantos menos plugins mejor, y si tienen alguna función de limpieza tras la desinstalación mucho mejor.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(15 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

15 comentarios en “Cómo limpiar la tabla wp_options”

  1. muy buena yo los otros dia tuve que espesar desde 0 con mi sitio web por que me hicieron ataques de DooS y se quedaron algunos sombiz que hacia que consumiera muchooo recurso del server  y en el pro-sexo de limpieza tuve que hacer eso que usted ahora escribe pero a mano 

  2. Muy buenos ´plugins y consejos Fernando.
    En estos días he estado considerando limpiar la tabla wp_options de mi sitio. Pues tal y como lo comentas, en el camino de ser blogger, uno suele utilizar (probar) una gran cantidad de plugins.
    Acumulando así mucha información basura dentro de su base de datos. Es entonces, que de cuando en cuando se hace necesario utilizar plugins y consejos como estos para limpiar la table wp_options.

  3. Muy buen artículo Fernando, yo la verdad es que una vez probé uno de estos plugins, no recuerdo si es alguno de los que nombras y me dio un poco de miedo. 

    La verdad es que la mayoría de las veces me he recorrido la tabla a mano y sin problemas se distingue la mayoría de las veces, normalmente los nombres de la opción son significativos y otra también puedes copiar el nombre de la opción en google y suele aparecer la página del repositorio de wordpress del plugin y ya sabes cual es. No obstante cuando tenga tiempo probaré alguno de los dos que comentas.

    Más plugins deberían de borrar su información al desinstalarse.

    También me ha ocurrido algo extraño a veces con Lightbox plus o con wp-supercache, y es que a veces al desactivarlos y volver a activarlos han perdido las opciones. Cogí la copia de seguridad de la BD y restauré esa linea concreta. Creo que tampoco hay que tener miedo a tocar la BD pero sí cuidado, a mi me ha resuelto problemas muchas veces.

    ¿Si te metes en install.php en un estado normal imagino que sirve como para revisar las tablas y si falta algo lo pone no?

    Muchas gracias por el artículo.

    1. Puedes usar una consulta SQL con la condicion WHERE option_name LIKE '%jetpack_nonce_%'.

      Eso sí, no se si esto se debe borrar o no, te estoy dando la forma rápida para borrar pero no diciendo que lo borres 😉

      1.  Gracias por responder, Juan. Aún estoy intentando comprobar cuál es la utilidad de esas líneas y si se pueden borrar.

  4. Utilidades Gratis

    tengo algún riesgo de eliminar lineas que sean útiles y que deje de funcionar con el clean option o el otro plugin?

  5. Hay algun otro plugin que este actualizada que sirva para realizar lo que mencionas ? o no habria problemas de usarlos

  6. Hola Fernando, Gracias por tus recomendaciones y ayuda. ¿Conoces algún plugin más moderno que estos dos? Ninguno de los dos se ha actualizado en los últimos dos años. ¿Siguen siendo seguros?

  7. Patrick Muñoz

    Una duda con el código para el plugin de funciones, si la tabla wp_options tiene la tabla cambiada a xxxxxxx_options, ¿hay que cambiar algo en el código?

  8. Pingback: ​Manejar datos volátiles en entornos de alto rendimiento | Ayuda WordPress

  9. Pingback: Como limpiar la basurilla que acumula WordPress | Ayuda WordPress

  10. Nosotros tenemos un WordPress con WooCommerce, y esta tabla ocupa 572mb, con todos los plugins de limpieza pasados y a través de PhpyMyAdmin no logramos bajar el peso. No hay borradores, y hemos borrado plugins desactivados y demás basura… ¿Alguna idea? ¡Muchas gracias!

Deja un comentario

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

 

Ir arriba Ir al contenido