Skip to content

Tudo para WordPress, desenvolvimento web — e não só

⚙️ Como remover categoria do URL do WordPress: todos os métodos funcionais

⚙️ Como remover categoria do URL do WordPress: todos os métodos funcionais

Os endereços URL no WordPress têm este aspeto por defeito: /category/plugins/ ou /category/news/ ou /category/wordpress/. A palavra «category» não tem qualquer significado para os utilizadores ou para os motores de busca. É um vestígio que apenas alonga o endereço e dilui a estrutura do site.

O problema é que o WordPress não oferece uma opção simples para remover este prefixo através das definições padrão. A maioria dos proprietários de sites ou se resigna ao /category/ ou instala o primeiro plugin que encontra sem compreender as consequências. E pode haver consequências: links quebrados, erros 404 em endereços antigos, duplicados no índice.

Aqui está um guia passo a passo de todos os métodos funcionais para remover o /category/ dos URLs do WordPress: desde a abordagem integrada mais simples até código no ficheiro functions.php. Cada método foi testado em versões atuais do WordPress, com explicações das limitações e potenciais armadilhas.

💡 Visão geral rápida:

  • Mecanismo de permalinks integrado: um truque simples com um ponto através das definições, sem plugins
  • Plugin Remove Category URL: o método mais fácil, com um clique, para quem não quer vasculhar as definições
  • Yoast SEO ou Rank Math: se já tiver um plugin de SEO instalado, ele pode tratar da remoção da base da categoria
  • .htaccess: uma opção para quem prefere controlo manual ao nível do servidor
  • Código no functions.php: um método programático sem plugins, com controlo total sobre a lógica de substituição

Este é o método mais simples que não requer a instalação de qualquer plugin. Utiliza o mecanismo padrão de «Permalinks» do próprio WordPress.

Aceda ao painel de administração, abra Definições → Permalinks. No bloco «Definições comuns», selecione a opção «Estrutura personalizada».

No campo à direita, introduza a seguinte estrutura:

1/%category%/%postname%/

Agora, o momento chave. Desça até ao campo «Base da categoria» e introduza um ponto, o símbolo . (sem aspas). Este é um truque não convencional, mas funcional: o WordPress interpreta o ponto como uma base vazia e deixa de inserir /category/ nos URLs das categorias.

Definições da estrutura de links personalizados

Clique em «Guardar alterações». Pronto, os seus URLs de categoria agora têm o aspeto site.com/wordpress/ em vez de site.com/category/wordpress/.

⚠️ Nota importante: não deixe o campo «Base da categoria» vazio. Se não estiver lá nada, o WordPress volta ao /category/ padrão. É por isso que usamos um ponto: uma string vazia não funciona, mas um ponto sim.

Este método funciona para a maioria dos sites, mas tem uma desvantagem: o ponto no campo da base é um truque que pode quebrar durante atualizações do WordPress ou ao alterar a estrutura de permalinks e voltar atrás. Se quiser uma solução mais fiável, veja os métodos seguintes.

2. Plugin Remove Category URL

Remove Category URL é um plugin minimalista que faz exatamente uma coisa: remove o /category/ dos URLs. Sem definições, sem itens de menu extra no painel de administração.

Página do plugin Remove Category URL no diretório do WordPress

Após a instalação, o plugin começa a funcionar imediatamente. Sem passos adicionais: transfira, ative, verifique o URL da categoria e o /category/ desaparece.

Plugin Remove Category URL ativado no painel do WordPress

Porquê este plugin e não dezenas de alternativas? Pesa quase nada, não adiciona banners publicitários ao painel de administração e é compatível com WPML e WordPress Multisite. Quando desativa o plugin, os URLs voltam automaticamente à estrutura padrão com /category/; o plugin não quebra os permalinks de forma permanente.

Para quem precisa de trabalhar com categorias pai além de remover o prefixo da categoria, existe uma alternativa: FV Top Level Categories. Permite-lhe exibir categorias de qualquer nível de aninhamento como raiz no URL, sem /category/ e sem os slugs dos níveis superiores.

🔗 Remove Category URL no WordPress.org

3. Plugins de SEO: Yoast SEO e Rank Math

Se o Yoast SEO ou o Rank Math já estiverem instalados no seu site, não precisa de um plugin separado para remover o /category/. Ambos os gigantes do SEO têm uma função integrada para remover a base da categoria.

No Yoast SEO:

  • No menu do WordPress, clique em Yoast SEO
  • Vá ao separador Avançadas
  • Abra a secção Links permanentes
  • Ative a opção «Remover o prefixo das categorias»
  • Guarde as alterações

No Rank Math:

  • No painel de administração, vá a Rank Math → Definições gerais
  • Abra o separador WooCommerce (sim, está aí, e não em Links permanentes)
  • Encontre a opção «Remover base da categoria» e ative-a

Ambos os plugins fazem o mesmo que o Remove Category URL, mas através do seu próprio mecanismo interno. Vantagem: não são necessários plugins extra. Desvantagem: se mudar para um plugin de SEO diferente, a base da categoria pode voltar e terá de reconfigurar.

Página de definições do Yoast SEO no painel do WordPress

A propósito, se ainda está a escolher entre o Yoast e o Rank Math, aqui está a nossa comparação detalhada que o ajudará a decidir.

4. Edição manual do.htaccess

Um método para quem prefere o controlo ao nível do servidor. A remoção do /category/ via.htaccess funciona através de uma regra mod_rewrite que redireciona de forma transparente todos os URLs de categoria para endereços sem o prefixo.

Precisará de acesso ao ficheiro .htaccess na raiz do site, via FTP, gestor de ficheiros do alojamento ou cPanel. Abra o ficheiro e adicione a seguinte linha antes do bloco # BEGIN WordPress:

1RewriteRule ^category/(.+)$ http://www.site.com/$1 [R=301,L]
Código RewriteRule para .htaccess num editor de texto

Substitua www.site.com pelo seu domínio real. A regra cria um redirecionamento 301 de todos os URLs que comecem por /category/ para endereços sem este prefixo.

⚠️ Atenção: este método só funciona em servidores Apache. No Nginx, precisará de uma linha análoga na configuração:

1rewrite ^/category/(.+)$ /$1 permanent;

Antes de fazer alterações, faça uma cópia de segurança do .htaccess. Um erro de sintaxe neste ficheiro fará cair o site inteiro com um erro 500.

Se o seu site correr em Nginx, o equivalente direto da regra acima parece igualmente simples, mas é adicionado à configuração do bloco do servidor, e não ao .htaccess. Depois de adicionar a regra, recarregue o Nginx com o comando nginx -s reload. Ao contrário do Apache, o Nginx não lê .htaccess, pelo que um erro de sintaxe na configuração principal também faz cair o site, mas não de forma tão irreversível: o Nginx simplesmente não arranca após o recarregamento, deixando o processo de trabalho anterior em execução. Teste a configuração com o comando nginx -t antes de aplicar.

5. Código no functions.php

Um método programático para quem quer remover /category/ sem plugins e sem editar configurações do servidor. O código é adicionado uma vez ao functions.php do tema ativo e funciona através de um filtro padrão do WordPress.

Antes de adicionar o código, certifique-se de que o campo "Base da categoria" nas definições de permalinks não está vazio e não contém um ponto; deve ser o padrão (category). O filtro procura a palavra "category" no URL e, se não a encontrar, o método não funcionará.

Abra Aparência → Editor de Ficheiros do Tema, selecione functions.php e adicione este código antes da tag de fecho ?> (se não houver tag, adicione-o simplesmente no final do ficheiro):

1function remove_category_from_url($string, $type) {
2 if ($type !== 'single' && $type === 'category' && strpos($string, 'category') !== false) {
3 $url_without_category = str_replace('/category/', '/', $string);
4 return trailingslashit($url_without_category);
5 }
6 return $string;
7}
8add_filter('user_trailingslashit', 'remove_category_from_url', 100, 2);

Como funciona:

  • O filtro user_trailingslashit é chamado sempre que o WordPress gera um URL de categoria
  • A função verifica se se trata realmente de uma categoria (não um artigo, não uma etiqueta) e se o URL contém /category/
  • Se ambas as condições forem cumpridas, /category/ é removido e a barra final é preservada através de trailingslashit()

Depois de adicionar o código, vá a Definições → Permalinks e clique simplesmente em "Guardar"; isto limpará a cache de permalinks e aplicará a nova regra.

Este método é o mais flexível: tem controlo total sobre a lógica de substituição e pode adicionar exceções para categorias específicas ou adaptar o código para uma estrutura de URL não padrão.

Código de programação no ecrã, configuração de URLs do WordPress

Se preferir ver o processo em ação, aqui está um pequeno tutorial em vídeo em inglês: instalar o plugin Remove Category URL e verificar o resultado em dois minutos.

⁉️🤔 Perguntas frequentes

As categorias vão desaparecer do site depois de remover /category/ dos URLs?

Não. As categorias permanecem totalmente funcionais: os arquivos de categoria funcionam, os artigos são exibidos nelas e a taxonomia mantém-se intacta. Apenas o endereço no navegador muda. Esta é uma alteração puramente cosmética na estrutura dos permalinks; o WordPress continua a reconhecer as categorias pelo ID interno, e não pelo prefixo do URL.

Preciso de configurar redirecionamentos 301 depois de alterar os URLs?

Sim, absolutamente. Depois de remover /category/, os endereços antigos com /category/ tornam-se inacessíveis. Se houver links externos a apontar para eles ou se já estiverem indexados pelos motores de busca, irá obter erros 404. O método.htaccess (método 4) adiciona automaticamente um redirecionamento 301. Ao usar plugins ou código no functions.php, certifique-se de que o WordPress redireciona corretamente os URLs antigos; isto geralmente acontece de forma automática, mas vale a pena verificar alguns endereços antigos depois de fazer as alterações.

O que devo fazer se alguns URLs ainda contiverem /category/ depois das alterações?

Muito provavelmente, é um problema de cache. Limpe a cache dos permalinks: vá a Definições → Permalinks e clique simplesmente em «Guardar» sem alterar nada. Se estiver a usar um plugin de cache (WP Rocket, W3 Total Cache), limpe a cache do mesmo. Ao nível do servidor, certifique-se de que as regras do mod_rewrite no.htaccess não entram em conflito com as novas definições.

Remover /category/ afeta o SEO?

Sim, mas apenas de forma positiva se for feito corretamente. URLs mais curtos recebem mais cliques nos resultados de pesquisa, são mais fáceis de ler e são indexados mais rapidamente. Uma investigação da Backlinko mostra que URLs mais curtos estão correlacionados com melhores classificações. O ponto-chave é não se esquecer dos redirecionamentos 301 dos endereços antigos para não perder o PageRank acumulado.

Que método devo escolher para o WooCommerce?

Para lojas online em WooCommerce, as melhores opções são o plugin Remove Category URL (que lida corretamente com categorias de produtos) ou a função integrada do Rank Math (Remove Category Base). Ambos os métodos não entram em conflito com os endpoints do WooCommerce como /product-category/. O método do ponto no campo «Category base» também funciona para o WooCommerce, mas teste-o primeiro em staging; algumas versões do WooCommerce são sensíveis a valores não padronizados neste campo.

Estes métodos funcionam no WordPress Multisite?

Parcialmente. O plugin Remove Category URL afirma ser compatível com Multisite, mas, na prática, quando ativado em rede, processa apenas o site principal; para os subsites, precisa de o ativar individualmente. O método do ponto no campo «Category base» funciona em cada site da rede separadamente; as definições não são herdadas. O código do functions.php para Multisite requer uma verificação adicional is_multisite() e, idealmente, deve ser movido para um MU-plugin para não ficar vinculado ao tema. A edição manual do.htaccess no Multisite é a menos desejável: a estrutura de URLs da rede é mais complexa e um erro no RewriteRule quebra todos os sites de uma só vez.

Que método para remover /category/ é o mais adequado para si?

Cada um dos cinco métodos tem o seu próprio caso de uso. Aqui está uma matriz de seleção rápida:

  • Não quer instalar plugins extra: método 1 (ponto no campo base). Demora 30 segundos, não adiciona código ao site.
  • Quer o mínimo de esforço: método 2 (Remove Category URL). Instalar e esquecer.
  • Já tem o Yoast ou o Rank Math no seu site: método 3. Use o que já está a funcionar.
  • Prefere controlo ao nível do servidor: método 4 (.htaccess). Mas lembre-se de fazer backup.
  • É um programador que precisa de flexibilidade: método 5 (código no functions.php). Adicione a lógica de que precisa especificamente.

Para a maioria dos utilizadores, o método 2 (Remove Category URL) é o ideal: é simples, não requer conhecimentos técnicos e não quebra o site quando desativado. Se já estiver a usar o Yoast SEO, ative a opção lá; não instale plugins desnecessários.

Experimente o método que melhor se adapta ao seu fluxo de trabalho e verifique o resultado em dois ou três URLs de categoria. Se tudo funcionar, fez a escolha certa.

Depois de fazer as alterações, é útil passar o seu site por qualquer crawler de SEO (Screaming Frog, Sitebulb ou Netpeak Spider): ele mostrará se apareceram erros 404 nas páginas de categoria e se os redirecionamentos 301 dos URLs antigos estão a funcionar corretamente. Verifique também o seu sitemap XML separadamente: depois de alterar a estrutura de permalinks, este deve atualizar-se automaticamente, mas por vezes é gerado a partir de uma versão em cache. No Yoast SEO, basta clicar em «Guardar» nas definições do sitemap; no Rank Math, o botão «Refresh Sitemap» está na secção Sitemap Settings. Isto demora um minuto, mas protege-o de situações em que o Google recebe um sitemap com URLs antigos.