
🧹 Cómo eliminar usuarios de WordPress en lote con un rol específico
Mil doscientos registros de spam después de una campaña publicitaria. Trescientas cuentas de prueba que nadie eliminó tras el lanzamiento. Cien colaboradores que se fueron hace seis meses. Todo esto permanece en la base de datos del sitio como peso muerto, creciendo cada mes.
Eliminar este lastre uno por uno es trabajo para un robot, no para una persona. La tabla estándar de WordPress muestra 20 usuarios por página. Con mil cuentas, eso significa 50 clics en «Eliminar» y 50 confirmaciones. Para la segunda docena, usted quiere cerrar el navegador y fingir que el problema no existe.
Pero puede resolver el problema en cinco minutos. WordPress ofrece cuatro herramientas para la limpieza masiva de usuarios por rol: desde el filtro integrado que no requiere ningún plugin hasta SQL directo en phpMyAdmin. Cubriremos cada una con instrucciones, capturas de pantalla y, lo más importante, cómo evitar bloquearse usted mismo del sitio.
💡 Resumen rápido:
- Haga una copia de seguridad completa de la base de datos y los archivos; esto no es un consejo, es un seguro contra desastres
- Filtre usuarios por rol usando las acciones en lote integradas; esto funciona para cien o doscientas cuentas
- Instale Bulk Delete si necesita filtros más precisos: por fecha de registro, inactividad o ausencia de publicaciones
- Con WP-CLI, la tarea se resuelve con un solo comando, para cualquier volumen, incluyendo decenas de miles
- SQL directo da control absoluto pero requiere cuidado: un error tipográfico en WHERE puede costarle el acceso de administrador
Qué hacer antes de eliminar
Tres acciones que le salvan de consecuencias irreversibles. Sáltese cualquiera de ellas y arriesgará no solo el contenido, sino la funcionalidad del sitio.
Copia de seguridad completa. Una copia de seguridad de la base de datos y los archivos es la única forma de revertir una eliminación masiva. UpdraftPlus funciona bien (envía copias a Google Drive, Dropbox o su S3), al igual que WPvivid. En un hosting con cPanel, use el Asistente de copias de seguridad integrado; es más rápido y no carga los procesos de PHP.
Exportar la lista de usuarios. Si los datos de las cuentas que se van a eliminar pudieran necesitarse para auditoría o informes, expórtelos primero. Ruta: «Usuarios» → «Todos los usuarios» → botón «Exportar» en la parte superior → formato CSV. Guarde el archivo localmente. No puede restaurar una cuenta después de un DELETE de la base de datos, solo desde una copia de seguridad.
Revisión de contenido. Filtre usuarios por rol y observe la columna «Publicaciones» para ver cuántas entradas y páginas quedarán sin autor. Decida de antemano: ¿transferirá el contenido a un administrador al eliminar o lo borrará junto con las cuentas? Los comentarios de usuarios eliminados permanecen en el sitio (el autor se muestra como «Usuario eliminado»); esto no les afecta.
Método 1: acciones en lote integradas
No se necesitan plugins. Todo lo que necesita ya está en el núcleo de WordPress. Esto funciona para volúmenes de hasta un par de cientos de cuentas de una vez; más allá de eso, empieza a encontrar ralentizaciones y tiempos de espera agotados.
Paso 1: filtrar por rol. Vaya a «Usuarios» → «Todos los usuarios». Sobre la tabla hay una lista desplegable de roles. Seleccione el que necesite (por ejemplo, «Suscriptor») y haga clic en «Filtrar». WordPress mostrará solo los usuarios con ese rol.

Paso 2: elementos por página. Por defecto, ve 20 entradas. Para el trabajo en lote, eso no es suficiente. El botón «Opciones de pantalla» (arriba a la derecha) abre un panel donde puede establecer el campo «Número de elementos por página» en 200, 500 o incluso 999. Haga clic en «Aplicar», la página se recargará y mostrará la lista completa en un solo lote.

Paso 3: selección masiva. La casilla de verificación en el encabezado de la tabla (junto al título «Nombre de usuario») selecciona a todos en la página a la vez. Después, desmarque manualmente aquellos que quiera conservar: administradores, editores, autores clave.

Paso 4: eliminación y reasignación de contenido. En el menú desplegable «Acciones en lote» sobre la tabla, seleccione «Eliminar» y haga clic en «Aplicar». WordPress le preguntará qué hacer con el contenido de los usuarios que se eliminan: la opción «Atribuir todo el contenido a» más la selección de un administrador en el campo adyacente conserva las publicaciones; «Eliminar todo el contenido» borra todo sin posibilidad de recuperación. Confirme y habrá terminado.

El método integrado es fiable para volúmenes pequeños y medianos. Pero cuando se trata de miles, cada página genera docenas de consultas SQL a través de PHP, y el servidor o bien falla por max_execution_time o se detiene por completo. Para esos casos, use las herramientas a continuación.
Método 2: plugin Bulk Delete
Bulk Delete es un plugin gratuito con más de 300.000 instalaciones activas. Su principal ventaja frente al método estándar es el procesamiento por lotes. El plugin elimina usuarios en bloques de 50 a 100, sin generar picos de carga en la base de datos. Además, ofrece filtros que no existen en el núcleo de WordPress.
La instalación es la habitual: «Plugins» → «Añadir nuevo» → busque «Bulk Delete» → «Instalar» → «Activar». Tras la activación, aparece una sección «Bulk WP» en el menú lateral y, dentro de ella, «Bulk Delete Users».
Aquí selecciona el rol que desea eliminar y configura uno o más filtros adicionales:
- fecha de registro: anterior o posterior a una fecha especificada;
- inactividad: usuarios que no han iniciado sesión en los últimos N días;
- sin publicaciones: cuentas sin ninguna entrada;
- valor de campo meta: por ejemplo, eliminar a todos los que tengan
billing_country = 'RU'.

Antes de ejecutar la eliminación, asegúrese de hacer clic en «Preview Users»; el plugin mostrará una lista de IDs y correos electrónicos que coinciden con los filtros. Verifique que va a eliminar exactamente a quienes necesita. Luego marque la casilla de confirmación y haga clic en «Bulk Delete».
Entre las alternativas destacables se encuentran WP Bulk Delete, que puede eliminar no solo usuarios sino también entradas, páginas, comentarios y taxonomías (un limpiador universal, aunque algunas funciones son de pago), y User Role Editor, que es principalmente una herramienta para editar roles y crear otros personalizados, pero cuya interfaz también incluye la eliminación masiva por rol (en la pestaña «Users»).
Método 3: WP-CLI
WP-CLI resuelve la tarea con un solo comando de consola. Sin paginación, sin tiempos de espera. Necesita acceso shell al servidor (SSH en un VPS, hosting dedicado o entorno de desarrollo local). En un hosting compartido económico, WP-CLI no suele estar disponible.
Primero, obtenga los IDs de todos los usuarios con el rol deseado:
1 wp user list --role=subscriber --format=ids
La salida es una cadena de IDs separados por espacios: 12 45 78 134 256. Elimínelos reasignando el contenido al administrador (ID=1):
1 wp user delete 12 45 78 134 256 --reassign=1
Puede hacerlo en un solo comando, sin la lista intermedia:
1 wp user delete $(wp user list --role=subscriber --format=ids) --reassign=1
La bandera --delete-posts en lugar de --reassign borra por completo tanto a los usuarios como su contenido. Úsela solo si está seguro de que no necesita el contenido de las cuentas eliminadas.
WP-CLI trabaja directamente con la base de datos, sin pasar por PHP. Para cien mil usuarios, el comando se ejecuta en 2 a 5 segundos. Esto es órdenes de magnitud más rápido que cualquier plugin y más seguro que el SQL manual, porque wp user delete realiza una limpieza en cascada de los metadatos sin dejar filas huérfanas.
Método 4: SQL directo
Para quienes necesitan control absoluto sobre cada consulta. SQL a través de phpMyAdmin o la consola MySQL no impone restricciones, pero tampoco perdona errores.
Primero, haga una copia de seguridad de la base de datos. Esto no es una recomendación; es un requisito estricto. Un solo error tipográfico en WHERE (por ejemplo, administrator en lugar de subscriber) y perderá el acceso al sitio. La recuperación solo es posible desde un volcado.
Inicie sesión en phpMyAdmin a través del panel de su hosting, seleccione la base de datos de WordPress y abra la pestaña «SQL».
Paso 1: encuentre los IDs. Los roles se almacenan en la tabla wp_usermeta, campo meta_key = 'wp_capabilities'. Sustituya subscriber por el rol deseado y ajuste el prefijo wp_ si es diferente:
1 SELECT u.ID, u.user_login, u.user_email 2 FROM wp_users u 3 JOIN wp_usermeta um ON u.ID = um.user_id 4 WHERE um.meta_key = 'wp_capabilities' 5 AND um.meta_value LIKE '%subscriber%';
Revise visualmente el resultado. Copie los IDs obtenidos.
Paso 2: reasigne el contenido. Sustituya 1 por el ID del usuario al que transferirá las entradas. La lista 123, 456, 789 debe contener los IDs del paso 1:
1 UPDATE wp_posts 2 SET post_author = 1 3 WHERE post_author IN (123, 456, 789);
Paso 3: elimine usuarios y metadatos. Exactamente en este orden:
1 DELETE FROM wp_users WHERE ID IN (123, 456, 789); 2 DELETE FROM wp_usermeta WHERE user_id IN (123, 456, 789);
Si también necesita eliminar entradas y comentarios, limpie primero las tablas secundarias:
1 DELETE FROM wp_comments WHERE user_id IN (123, 456, 789); 2 DELETE FROM wp_posts WHERE post_author IN (123, 456, 789);
Y solo después, wp_users y wp_usermeta. El orden es crítico: primero los registros secundarios, luego los principales; de lo contrario, obtendrá violaciones de clave foránea.
Después de ejecutar el SQL, asegúrese de verificar que los usuarios eliminados hayan desaparecido realmente del panel de administración y que las entradas (si las reasignó) sean visibles bajo el nuevo autor.
⁉️🤔 Preguntas frecuentes
¿Se puede restaurar un usuario eliminado?
No. WordPress no almacena las cuentas eliminadas en una papelera, a diferencia de las entradas y páginas. La única forma de recuperarlas es restaurar desde una copia de seguridad de la base de datos. Por eso mismo, una copia de seguridad completa antes de cualquier eliminación masiva es innegociable: es su único seguro.
¿Qué sucede con el contenido de un usuario eliminado?
Depende de la opción elegida durante la eliminación. La opción «Atribuir todo el contenido a» más un administrador significa que las entradas y páginas se conservan, solo cambia el autor. La opción «Eliminar todo el contenido» borra entradas, páginas y archivos multimedia sin posibilidad de recuperarlos. Los comentarios de los usuarios eliminados permanecen en el sitio, con el autor mostrado como «Usuario eliminado»; eliminarlos es una operación aparte.
¿Cuál es el método más rápido para más de 10 000 usuarios?
WP-CLI. Un solo comando
wp user delete $(wp user list --role=subscriber --format=ids) --reassign=1se ejecuta en 2 a 5 segundos incluso para cien mil cuentas. SQL a través de phpMyAdmin también es rápido, pero requiere copiar manualmente los IDs entre consultas. Los plugins y el método integrado son inútiles para esos volúmenes: procesan los datos a través de PHP y chocan con los límites demax_execution_time.
¿Necesito eliminar wp_usermeta junto con los usuarios?
Sí. Si solo elimina
wp_users, quedarán enwp_usermetafilas huérfanas con metadatos de cuentas inexistentes. No romperán el sitio, pero inflan la base de datos. El plugin Bulk Delete y WP-CLI (wp user delete) limpian los metadatos automáticamente. Con SQL manual, asegúrese de añadir una segunda consulta:DELETE FROM wp_usermeta.
¿Puedo eliminar solo usuarios sin entradas?
Sí. El plugin Bulk Delete tiene un filtro listo para usar «Usuarios sin entradas». En WP-CLI, encadene dos comandos: primero obtenga los IDs de los usuarios con el rol, luego para cada uno verifique si tiene entradas usando
wp post list. En SQL, añada la condiciónAND u.ID NOT IN (SELECT DISTINCT post_author FROM wp_posts).
Ahora, sobre seguridad en la práctica. El escenario más peligroso es la eliminación vía SQL sin una vista previa. Incluso los administradores experimentados cometen errores en el WHERE. Una copia de seguridad antes del SQL es una regla que da resultado una de cada cien veces. Pero esa única vez es cuando salva el sitio.
Qué elegir para su tarea
Cuatro métodos cubren cualquier escenario, desde un par de docenas de registros de spam hasta cien mil cuentas muertas. Aquí tiene una matriz rápida:
- Menos de 200 usuarios, no quiere instalar plugins → acciones masivas integradas. Tres clics y el problema está resuelto.
- Hasta 5000, necesita filtros por fecha o inactividad → plugin Bulk Delete. La opción más segura para quienes no trabajan con la consola.
- Cualquier volumen, tiene acceso SSH → WP-CLI. Un comando, de 2 a 5 segundos, listo.
- Su propio servidor, necesita control sobre cada DELETE → SQL directo. Pero solo si sabe exactamente lo que hace y ha hecho una copia de seguridad.
La regla principal no depende del método: copia de seguridad, copia de seguridad y otra copia de seguridad. La base de datos de WordPress no perdona las eliminaciones accidentales, y el hosting no guarda copias para siempre. Haga una copia de seguridad ahora, y solo entonces abra la lista de usuarios.



