WordPress extrae cada plugin en wp-content/plugins/<slug>. Si el directorio ya existe, no mezcla a ciegas el paquete nuevo. Puede contener un plugin activo, una actualización incompleta, una copia subida manualmente o código distinto con el mismo slug.
No lo borres hasta identificar contenido, versión y dependencias de datos.
Identifica el directorio exacto
Anota nombre y origen del paquete, versión prevista y ruta indicada por el error. Inspecciona el directorio mediante acceso autorizado.
Comprueba:
archivo principal y cabecera
versión actual
fechas de modificación
tamaño y número de archivos
estado de activación
actualización fallida reciente
No ejecutes PHP desconocido para identificarlo.
Comprueba si está activo
Revisa Plugins si es accesible o la opción active_plugins mediante WordPress o WP-CLI. En multisitio, la activación de red se guarda aparte.
Un plugin ausente de la pantalla puede conservar archivos si cambió el nombre principal o la cabecera está dañada.
No renombres ni elimines un plugin comercial activo bajo tráfico sin plan de interrupción.
Haz copia de archivos y base
Archiva el directorio existente fuera de la ruta pública de plugins y copia la base. Los plugins guardan ajustes y contenido en MySQL, y un hook de desinstalación puede eliminarlos.
Retirar una carpeta normalmente no ejecuta ese hook, pero confirma el comportamiento.
Conserva el paquete fiable y su checksum u origen.
Averigua por qué quedó la carpeta
Busca extracción interrumpida, disco o inodos agotados, permisos incorrectos o una subida manual fallida. Consulta registros con la misma hora.
Si contiene una versión antigua completa, puede tratarse de una sustitución y no de una instalación nueva.
Corrige recursos y propiedad antes de repetir.
Revisa colisiones de slug y edición
Dos productos pueden compartir slug, especialmente un plugin gratuito y su sustituto premium. Compara cabeceras, fabricante y ruta documentada.
No instales el segundo encima salvo que el proveedor admita sustitución directa. Quizá el plugin base deba permanecer activo y el complemento usar otro directorio.
Compara con el paquete fiable
Haz diff de archivos o checksums contra el paquete oficial. Un PHP adicional desconocido necesita revisión de seguridad antes de restaurar.
No copies solo archivos ausentes dentro de un directorio incierto; mezclar versiones causa errores y conserva código vulnerable retirado.
Para premium, usa la descarga licenciada del fabricante.
Sustituye el directorio de forma atómica
En staging, desactiva si hace falta, renombra la carpeta antigua y coloca una copia completa con el slug exacto.
plugin-slug -> plugin-slug.backup
plugin-slug.new -> plugin-slug
Conserva propietario y permisos. Evita mantener dos copias activas con slugs distintos porque pueden declarar las mismas clases.
Limpia OPcache.
Gestiona migraciones de base de datos
La versión nueva puede migrar esquema y opciones al activarse. Lee las notas y crea otra copia antes de un salto grande.
No actives y desactives repetidamente mientras la migración falla. Conserva el primer error y usa el proceso documentado.
Revertir archivos puede no deshacer cambios de datos.
Conserva traducciones y recursos locales
Las traducciones oficiales suelen vivir fuera del directorio, pero algunos fabricantes guardan CSS generado, licencias o plantillas dentro. Identifica datos escribibles antes de sustituir.
Mueve solo recursos documentados a la ubicación compatible. No arrastres PHP desconocido al paquete limpio. Regenera recursos con la herramienta del plugin.
Verifica y limpia
Prueba la función real, administración, cron, REST o AJAX y registros. Confirma que WordPress muestra la versión prevista.
Conserva la carpeta anterior fuera de la raíz pública durante la ventana de reversión y elimínala después. El mantenimiento recurrente debe comprobar espacio, permisos e integridad; el mensaje es una protección de WordPress contra mezclas incontroladas.