
🧹 Como eliminar em massa utilizadores do WordPress com um perfil específico
Mil e duzentos registos de spam após uma campanha publicitária. Trezentas contas de teste que ninguém apagou depois do lançamento. Cem Colaboradores que saíram há seis meses. Tudo isto fica na base de dados do site como peso morto, a crescer todos os meses.
Apagar este lastro um a um é trabalho para um robô, não para uma pessoa. A tabela padrão do WordPress mostra 20 utilizadores por página. Com mil contas, isso significa 50 cliques em «Eliminar» e 50 confirmações. À segunda dúzia, apetece fechar o navegador e fingir que o problema não existe.
Mas pode resolver o problema em cinco minutos. O WordPress oferece quatro ferramentas para limpeza em massa de utilizadores por perfil: desde o filtro integrado que não requer plugins até SQL direto no phpMyAdmin. Vamos abordar cada uma com instruções, capturas de ecrã e, mais importante, como evitar bloquear o seu próprio acesso ao site.
💡 Visão geral rápida:
- Faça uma cópia de segurança completa da base de dados e dos ficheiros; isto não é um conselho, é um seguro contra desastres
- Filtre utilizadores por perfil usando as ações em massa integradas; isto funciona para uma ou duas centenas de contas
- Instale o Bulk Delete se precisar de filtros mais finos: por data de registo, inatividade ou ausência de artigos
- Com o WP-CLI, a tarefa resolve-se com um único comando, para qualquer volume, incluindo dezenas de milhares
- O SQL direto dá controlo absoluto, mas exige cuidado: um erro de digitação no WHERE pode custar-lhe o acesso de administrador
O que fazer antes de eliminar
Três ações que o salvam de consequências irreversíveis. Salte alguma delas e arrisca não só o conteúdo, mas a funcionalidade do site.
Cópia de segurança completa. Uma cópia de segurança da base de dados e dos ficheiros é a única forma de reverter uma eliminação em massa. O UpdraftPlus funciona bem (envia cópias para o Google Drive, Dropbox ou o seu S3), tal como o WPvivid. Em alojamentos com cPanel, use o Assistente de Cópias de Segurança integrado; é mais rápido e não sobrecarrega os workers de PHP.
Exportar a lista de utilizadores. Se os dados das contas a eliminar puderem ser necessários para auditoria ou relatórios, exporte-os primeiro. Caminho: «Utilizadores» → «Todos os utilizadores» → botão «Exportar» no topo → formato CSV. Guarde o ficheiro localmente. Não é possível restaurar uma conta após um DELETE da base de dados, apenas a partir de uma cópia de segurança.
Revisão de conteúdo. Filtre os utilizadores por perfil e observe a coluna «Artigos» para ver quantos artigos e páginas ficarão sem autor. Decida antecipadamente: vai transferir o conteúdo para um administrador ao eliminar ou apagá-lo juntamente com as contas? Os comentários de utilizadores eliminados permanecem no site (o autor aparece como «Utilizador eliminado»); isto não os afeta.
Método 1: ações em massa integradas
Não são necessários plugins. Tudo o que precisa já está no núcleo do WordPress. Isto funciona para volumes até umas centenas de contas de uma só vez; acima disso, começam a surgir lentidões e tempos limite.
Passo 1: filtrar por perfil. Vá a «Utilizadores» → «Todos os utilizadores». Por cima da tabela, há uma lista suspensa de perfis. Selecione o que precisa (por exemplo, «Subscritor») e clique em «Filtrar». O WordPress mostrará apenas os utilizadores com esse perfil.

Passo 2: itens por página. Por predefinição, vê 20 entradas. Para trabalho em massa, isso não é suficiente. O botão «Opções de ecrã» (canto superior direito) abre um painel onde pode definir o campo «Número de itens por página» para 200, 500 ou até 999. Clique em «Aplicar», a página será recarregada e mostrará a lista completa num só lote.

Passo 3: seleção em massa. A caixa de verificação no cabeçalho da tabela (ao lado do título «Nome de utilizador») seleciona todos os da página de uma só vez. Depois, desmarque manualmente aqueles que quer manter: administradores, editores, autores principais.

Passo 4: eliminação e reatribuição de conteúdo. No menu suspenso «Ações em massa» acima da tabela, selecione «Eliminar» e clique em «Aplicar». O WordPress perguntará o que fazer com o conteúdo dos utilizadores a eliminar: a opção «Atribuir todo o conteúdo a» mais a seleção de um administrador no campo adjacente preserva os artigos; «Eliminar todo o conteúdo» apaga tudo sem possibilidade de recuperação. Confirme e está feito.

O método integrado é fiável para volumes pequenos e médios. Mas quando se lida com milhares, cada página gera dezenas de consultas SQL através do PHP, e o servidor ou falha no max_execution_time ou fica completamente bloqueado. Para esses casos, use as ferramentas abaixo.
Método 2: plugin Bulk Delete
Bulk Delete é um plugin gratuito com mais de 300 000 instalações ativas. A sua principal vantagem face ao método padrão é o processamento em lote. O plugin elimina utilizadores em lotes de 50 a 100, sem criar picos de carga na base de dados. E oferece filtros que não existem no núcleo do WordPress.
A instalação é a habitual: «Plugins» → «Adicionar Novo» → pesquisar por «Bulk Delete» → «Instalar» → «Ativar». Após a ativação, surge uma secção «Bulk WP» no menu lateral e, dentro dela, «Bulk Delete Users».
Aqui seleciona o perfil a eliminar e configura um ou mais filtros adicionais:
- data de registo: antes ou depois de uma data especificada;
- inatividade: utilizadores que não iniciaram sessão nos últimos N dias;
- sem publicações: contas sem um único artigo;
- valor de campo meta: por exemplo, eliminar todos com
billing_country = 'RU'.

Antes de executar a eliminação, clique sempre em «Preview Users»; o plugin mostrará uma lista de IDs e emails que correspondem aos filtros. Verifique se está a eliminar exatamente quem precisa. Depois, marque a caixa de confirmação e clique em «Bulk Delete».
Entre as alternativas relevantes contam-se o WP Bulk Delete, que pode eliminar não só utilizadores, mas também artigos, páginas, comentários e taxonomias (um limpador universal, embora algumas funcionalidades sejam Pro), e o User Role Editor, que é sobretudo uma ferramenta para editar perfis e criar perfis personalizados, mas cuja interface também dispõe de eliminação em lote por perfil (separador «Users»).
Método 3: WP-CLI
O WP-CLI resolve a tarefa com um único comando de consola. Sem paginação, sem tempos limite. Precisa de acesso shell ao servidor (SSH num VPS, alojamento dedicado ou ambiente de desenvolvimento local). Em alojamento partilhado económico, o WP-CLI normalmente não está disponível.
Primeiro, obtenha os IDs de todos os utilizadores com o perfil pretendido:
1 wp user list --role=subscriber --format=ids
O resultado é uma string de IDs separados por espaços: 12 45 78 134 256. Elimine-os com reatribuição de conteúdo para o administrador (ID=1):
1 wp user delete 12 45 78 134 256 --reassign=1
Pode fazê-lo num só comando, sem a lista intermédia:
1 wp user delete $(wp user list --role=subscriber --format=ids) --reassign=1
A flag --delete-posts, em vez de --reassign, apaga completamente tanto os utilizadores como o seu conteúdo. Utilize-a apenas se tiver a certeza de que o conteúdo das contas eliminadas não é necessário.
O WP-CLI trabalha diretamente com a base de dados, contornando o PHP. Para cem mil utilizadores, o comando executa em 2 a 5 segundos. Isto é ordens de grandeza mais rápido do que qualquer plugin e mais seguro do que SQL manual, porque o wp user delete propaga a limpeza pelos metadados sem deixar linhas órfãs.
Método 4: SQL direto
Para quem precisa de controlo absoluto sobre cada consulta. O SQL através do phpMyAdmin ou da consola MySQL não impõe restrições, mas também não perdoa erros.
Primeiro, faça uma cópia de segurança da base de dados. Isto não é uma recomendação; é um requisito obrigatório. Um erro de digitação no WHERE (por exemplo, administrator em vez de subscriber) e perde o acesso ao site. A recuperação só é possível a partir de um dump.
Inicie sessão no phpMyAdmin através do painel de alojamento, selecione a base de dados do WordPress e abra o separador "SQL".
Passo 1: encontrar os IDs. As funções são armazenadas na tabela wp_usermeta, campo meta_key = 'wp_capabilities'. Substitua subscriber pela função desejada e ajuste o prefixo wp_ se for 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%';
Reveja o resultado visualmente. Copie os IDs resultantes.
Passo 2: reatribuir conteúdo. Substitua 1 pelo ID do utilizador para o qual está a transferir os artigos. A lista 123, 456, 789 deve conter os IDs do passo 1:
1 UPDATE wp_posts 2 SET post_author = 1 3 WHERE post_author IN (123, 456, 789);
Passo 3: eliminar utilizadores e metadados. Exatamente por esta ordem:
1 DELETE FROM wp_users WHERE ID IN (123, 456, 789); 2 DELETE FROM wp_usermeta WHERE user_id IN (123, 456, 789);
Se também precisar de eliminar artigos e comentários, limpe primeiro as tabelas dependentes:
1 DELETE FROM wp_comments WHERE user_id IN (123, 456, 789); 2 DELETE FROM wp_posts WHERE post_author IN (123, 456, 789);
E só depois, wp_users e wp_usermeta. A ordem é crítica: primeiro os registos dependentes, depois os registos principais, caso contrário terá violações de chaves estrangeiras.
Depois de executar o SQL, certifique-se de que os utilizadores eliminados desapareceram mesmo do painel de administração e de que os artigos (se os reatribuiu) estão visíveis com o novo autor.
⁉️🤔 Perguntas frequentes
Um utilizador eliminado pode ser recuperado?
Não. O WordPress não armazena contas eliminadas numa reciclagem, ao contrário dos artigos e páginas. A única forma de as recuperar é restaurar uma cópia de segurança da base de dados. É exatamente por isso que uma cópia de segurança completa antes de qualquer eliminação em massa é inegociável: é o seu único seguro.
O que acontece ao conteúdo de um utilizador eliminado?
Depende da escolha feita durante a eliminação. A opção "Atribuir todo o conteúdo a" mais um administrador significa que os artigos e páginas são preservados, apenas com um autor diferente. A opção "Eliminar todo o conteúdo" apaga artigos, páginas e ficheiros multimédia sem possibilidade de recuperação. Os comentários de utilizadores eliminados permanecem no site, com o autor apresentado como "Utilizador Eliminado"; a sua eliminação é uma operação separada.
Qual é o método mais rápido para mais de 10 000 utilizadores?
WP-CLI. Um único comando
wp user delete $(wp user list --role=subscriber --format=ids) --reassign=1é executado em 2 a 5 segundos, mesmo para cem mil contas. O SQL através do phpMyAdmin também é rápido, mas requer a cópia manual de IDs entre consultas. Os plugins e o método integrado são inúteis para estes volumes: processam os dados através do PHP e atingem os limites demax_execution_time.
Preciso de eliminar o wp_usermeta juntamente com os utilizadores?
Sim. Se eliminar apenas de
wp_users, ficarão linhas órfãs com metadados de contas inexistentes emwp_usermeta. Não partem o site, mas incham a base de dados. O plugin Bulk Delete e o WP-CLI (wp user delete) limpam os metadados automaticamente. Com SQL manual, certifique-se de que adiciona uma segunda consulta:DELETE FROM wp_usermeta.
Posso eliminar apenas utilizadores sem artigos?
Sim. O plugin Bulk Delete tem um filtro pronto "Utilizadores sem artigos". No WP-CLI, encadeie dois comandos: primeiro obtenha os IDs dos utilizadores com a função e, depois, para cada um, verifique a existência de artigos usando
wp post list. Em SQL, adicione a condiçãoAND u.ID NOT IN (SELECT DISTINCT post_author FROM wp_posts).
Agora sobre segurança na prática. O cenário mais perigoso é a eliminação via SQL sem uma pré-visualização. Até administradores experientes cometem erros no WHERE. Uma cópia de segurança antes do SQL é uma regra que compensa uma vez em cada cem. Mas essa única vez é quando salva o site.
O que escolher para a sua tarefa
Quatro métodos cobrem qualquer cenário, desde umas dezenas de registos de spam até cem mil contas mortas. Aqui está uma matriz rápida:
- Menos de 200 utilizadores, não quer instalar plugins → ações em massa integradas. Três cliques e o problema fica resolvido.
- Até 5 000, precisa de filtros por data ou inatividade → plugin Bulk Delete. A opção mais segura para quem não trabalha com a consola.
- Qualquer volume, tem acesso SSH → WP-CLI. Um comando, 2 a 5 segundos, está feito.
- Servidor próprio, precisa de controlo sobre cada DELETE → SQL direto. Mas apenas se souber exatamente o que está a fazer e tiver feito uma cópia de segurança.
A regra principal não depende do método: cópia de segurança, cópia de segurança e mais uma cópia de segurança. A base de dados do WordPress não perdoa eliminações acidentais e o alojamento não guarda cópias para sempre. Faça uma cópia de segurança agora e só depois abra a lista de utilizadores.



