Instalar plugins WordPress es fácil, igual que instalar temas WordPress, pero a veces hay plugins que se resisten, como por ejemplo, los plugins de caché, que no son tan fáciles de desinstalar. Y no son los únicos que no se desinstalan del todo.
En principio el concepto es fácil:
- Ve a la administración de tu WordPress > Plugins
- Haz clic en Desactivar.
- Una vez desactivado haz clic en Borrar.
Hecho esto el plugin está inactivo y has borrado la carpeta, y archivos dentro de esa carpeta, del plugin, pero ¿has desinstalado completamente el plugin?
Muchas veces no es así, pues en ocasiones los plugins pueden dejar restos en los siguientes sitios:
- Líneas adicionales en el archivo wp-config.php
- Líneas adicionales en el archivo .htaccess
- Tablas nuevas en la base de datos
- Información propia en las tablas de WordPress
- Archivos y directorios adicionales en las carpetas raíz, wp-content, uploads, plugins.
Así que, el primer paso para poder identificar lo que es de WordPress y lo que añaden los plugins es saber qué compone una instalación estándar de WordPress y qué no.
Índice de contenidos
Qué hay en una instalación WordPress estándar
Tablas de la base de datos
Las tablas por defecto de la base de datos de un WordPress recién instalado son 12, estas:
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_termmeta
- wp_terms
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
Y en el caso de una instalación multisitio hay otras 6 tablas adicionales:
- wp_blogs
- wp_blog_versions
- wp_registration_log
- wp_signups
- wp_site
- wp_sitemeta
Visto lo cual, si en una instalación sencilla de WordPress tienes más de 12 tablas ya puedes dar por hecho que algún plugin, o incluso el tema, ha creado alguna tabla adicional. Igualmente, en una instalación multisitio, si tienes más de 18 tablas.
Carpetas de una instalación WordPress
Por defecto, WordPress crea estas carpetas principales:
- wp-admin
- wp-includes
- wp-content
- plugins
- themes
Más adelante, cuando tenga algo de vida, normalmente crecerá un poco, así:
- wp-admin
- wp-includes
- wp-content
- languages
- mu-plugins
- plugins
- themes
- upgrade
- uploads
Y, en ambos casos, todas estas carpetas menos uploads tendrán subcarpetas.
Como verás, si algún plugin mete archivos y/o carpetas en subcarpetas adicionales la cosa sería realmente complicada. Afortunadamente la mayoría de los plugins que hacen estas cosas añaden carpetas y/o archivos a wp-content y/o uploads.
¿Dónde encuentro residuos de plugins WordPress desinstalados?
En base a lo anterior, los sitios sospechosos más habituales donde puedes encontrar residuos de plugins desinstalados serían los siguientes:
- Carpetas y/o archivos adicionales dentro de wp-content y/o uploads.
- Tablas adicionales en la base de datos.
- Líneas adicionales en la tabla wp_options de WordPress (casi todos)
Cómo desinstalar del todo un plugin WordPress
Visto lo anterior son muchas cosas a revisar, y conscientes de que cada desarrollador y cada plugin es un mundo, y de que no hay un estándar de cómo un plugin debe desinstalarse, no nos queda otra que revisar manualmente cada vez que desinstalemos un plugin.
Pero para ello vamos a ver algunos casos concretos, tanto de los que lo hacen bien y se dejan desinstalar del todo, como de los que te dejan basurilla por todas partes.
Los plugins de caché
Como ya vimos en un artículo anterior los plugins de caché son de los que más residuo dejan y suelen requerir acciones manuales.
Y como no vamos a repetir todo lo explicado en aquella ocasión te animo a echar un vistazo al artículo en cuestión, con información y guías detalladas para desinstalar los plugins de caché para WordPress más populares, este:
Cómo desinstalar completamente los plugins de caché en WordPress
Plugins que se desinstalan totalmente (o casi)
Son muchos más los plugins que se desinstalan completamente que los que no lo hacen. Hay miles, así que no vamos a citarlos a todos.
No obstante te dejo algunos (bastante) buenos ejemplos a destacar, que tienen su propio desinstalador:
- Broken Link Checker: Tiene un script que si lo ejecutas se desinstala del todo, y menos mal, porque crea mucha información en tu base de datos.
- Gravity Forms: Al desinstalarlo te pide confirmación para borrar toda su información, que borra las 9 tablas de la base de datos que añadió. Solo te quedará limpiar líneas manualmente en la tabla wp_options (ya te dije que de esto pecan la mayoría).
- WordFence: Si instalas el plugin WordFence Assistant (recomendable siempre) puedes borrar todas las 23 tablas del plugin al desinstalarlo.
Mi consejo es que no te fíes de ninguno, y siempre busques – al menos – si han dejado carpetas, archivos, nuevas tablas o – casi siempre – información adicional en la tabla wp_options.
Plugins que requieren trabajo adicional para desinstalarlos del todo
También son muchos, de hecho son legión, y no sabría ni por dónde empezar, así que tomaremos algunos casos significativos como ejemplo, para saber qué mirar y que posibilidades ofrecen para desinstalarlos.
WooCommerce
Si alguna vez has instalado WooCommerce para probar si instalabas una tienda online y luego has desistido tras probar por el motivo que sea, debes saber que no está desinstalado del todo aunque lo hayas desactivado y borrado.
De hecho, desde la propia página oficial de WooCommerce se indica que para desinstalar completamente el plugin, antes de desactivarlo, debes añadir la siguiente línea a tu archivo wp-config:
/* Desinstalar totalmente WooCommerce */ define( 'WC_REMOVE_ALL_DATA', true);
De este modo, cuando lo desactives y lo borres, esa constante borrará las, nada menos que, 16 tablas que añade a tu base de datos, estas:
- wp_wc_download_log
- wp_wc_webhooks
- wp_woocommerce_api_keys
- wp_woocommerce_attribute_taxonomies
- wp_woocommerce_downloadable_product_permissions
- wp_woocommerce_log
- wp_woocommerce_order_itemmeta
- wp_woocommerce_order_items
- wp_woocommerce_payment_tokenmeta
- wp_woocommerce_payment_tokens
- wp_woocommerce_sessions
- wp_woocommerce_shipping_zones
- wp_woocommerce_shipping_zone_locations
- wp_woocommerce_shipping_zone_methods
- wp_woocommerce_tax_rates
- wp_woocommerce_tax_rate_locations
Luego elimina esa línea de tu wp-config.php.
En caso contrario, si ya desactivaste y borraste el plugin te tocará borrar las tablas manualmente desde PHPMyAdmin, bien una a una o seleccionando las anteriores todas de golpe, como en la siguiente captura…
Nota importante: Antes de modificar y/o borrar nada en la base de datos haz copia de seguridad
Yoast SEO
Otro de los plugins más populares también deja bastante residuo si lo desinstalas.
Yoast SEO crea 2 tablas:
- wp_yoast_seo_links
- wp_yoast_seo_meta
Pero también almacena información en :
- wp_usermeta – valores meta_key como wpseo_title.
- wp_postmeta – valores meta_key para varios IDs de entrada, incluidos:
- _yoast_wpseo_linkdex
- _yoast_wpseo_title
- _yoast_wpseo_metadesc
- _yoast_wpseo_focuskw
- _yoast_wpseo_focuskw_text_input
- _yoast_wpseo_primary_category
- _yoast_wpseo_content_score
Y todo esto después de desactivar y borrar.
Akismet
Akismet almacena montones de datos en la tabla wp_commentmeta, que seguirán ahí después de borrar el plugin. Y estoy hablando de miles de líneas.
EWWW Image Optimizer
Este plugin para optimización de imágenes, tras borrarlo, almacena rutas a tus imágenes, en su tamaño original, el tamaño tras comprimirlas y el porcentaje de reducción.
Todo lo guarda en una única tabla, wp_ewwwio_images.
También tendrás que borrar manualmente la carpeta ewww, dentro de wp-content.
¿Y los shortcodes?
Otra de la basurilla que suelen dejar los plugins cuando los desinstalas son los shortcodes que usen para mostrar contenidos de cualquier tipo.
Esta es otra tarea adicional que tendrás que realizar, normalmente buscando en la pantalla de entradas por el shortcode del plugin y, a continuación, editando la entrada que lo contenía.
Resumiendo ¿qué hago?
Pues si has leído todo lo anterior, yo lo resumiría así:
- Antes de nada haz copia de seguridad de la base de datos y archivos
- Ve a tu Escritorio > Plugins y desactiva el plugin
- También en Escritorio > Plugins borra el plugin
- Borra cualquier carpeta y/o archivo adicional que instalase el plugin
- Borra cualquier tabla de la base de datos que añadió el plugin al instalarlo
- Si usaba shortcodes búscalos y bórralos de tus entradas y/o páginas
- Revisa la tabla wp_options a ver si ha dejado líneas propias
Que el Codex te acompañe y de fuerza, la vas a necesitar.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Que buen post Fernando! En función de como esté programado el plugin puede dejar más o menos residuos, los desarrolladores de plugins deberían plantearse darle al usuario de opción de borrar todo el contenido del plugin al borrarlo y no tener que ir buscando que cosas que no se han eliminado.
Muchas gracias.
Hay algunos que sí lo hacen, a ver si cunde el ejemplo
Hola Fernando, Me encanta leer tus artículos recién me levanto. Hace tiempo instalé Woocomerce, después lo desinstalé sin borrar las carpetas. Ahora estoy considerando volver a instalarlo. Mi duda es ¿si lo vuelvo a instalar las carpetas se duplican o usa las existentes?
Mejor bórralo e instala la nueva versión actualizada
Gracias. Ya borré las carpetas gracias a tu artículo fue fácil. Ahora tengo el problema con Elementor, no aparece en la lista de plugins instalados y al intentar instalarlo me dice que ya existe. En public_html/wp-content/plugins está la carpeta de Elementor pero no sé que debo hacer. ¿Tienes algún artículo para solucionarlo? Saludos.
simplemente borra la carpeta
Gracias, me ha sido de mucha utilidad en un momento de desconocimiento grande.
hola instale un plugin y me salio esto
Error en la base de datos de WordPress: [Specified key was too long; max key length is 1000 bytes]
CREATE TABLE IF NOT EXISTS `wpof_sb_Blocks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `wp_owner_id` int(11) unsigned NOT NULL, `key_id` int(11) NOT NULL, `block_name` varchar(255) NOT NULL, `locked` tinyint(1) NOT NULL DEFAULT 1, `notify_redeem` tinyint(1) NOT NULL DEFAULT 1, UNIQUE KEY `block_name` (`block_name`), UNIQUE KEY `id` (`id`) );