Skip to content

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

🚀 Redirecionamento de www para não-www usando .htaccess: um guia completo para Grav, WordPress e outros CMS

🚀 Redirecionamento de www para não-www usando .htaccess: um guia completo para Grav, WordPress e outros CMS

O site abre tanto com www como sem, mas os motores de busca veem dois endereços diferentes com conteúdo idêntico. Duplicação de páginas, diluição da autoridade dos links, confusão na Search Console. Parece familiar?

Nem o Grav nem o WordPress resolvem este problema de raiz. O ficheiro .htaccess e exatamente um bloco de código resolvem tudo em cinco minutos. Abaixo estão linhas testadas para servidores Apache: universais, sem domínios fixos no código, com HTTPS e sem. Mais uma forma de verificar que o redirecionamento funciona além do navegador.

💡 Visão geral rápida:

  • Escolha uma versão canónica (com www ou sem) e adicione um redirecionamento 301 universal ao .htaccess
  • Verifique a cadeia de redirecionamento com curl -I ou um verificador online: os navegadores guardam em cache os 301 e podem enganar
  • Um bloco de código resolve simultaneamente o problema do www e força HTTPS

Porquê escolher entre www e sem www

O Google não prefere uma variante em relação à outra; a posição oficial mantém-se inalterada há anos. Mas precisa de escolher uma e manter-se fiel a ela. Sem um redirecionamento, www.site.ru/page e site.ru/page são indexados como URLs diferentes, a autoridade dos links divide-se a meio e as análises contabilizam o mesmo tráfego duas vezes.

Qual escolher? Para projetos grandes, www é mais conveniente: os cookies não se propagam para subdomínios como cdn. e api., e os registos DNS são mais fáceis de configurar. Para sites mais pequenos, a diferença é quase nenhuma. Concentre-se no que já está indexado: escreva site:yourdomain.ru na pesquisa e veja qual a variante que aparece mais vezes nos resultados. Torne essa a canónica.

Nota técnica: o Grav não gera redirecionamentos por si só. O WordPress fá-lo apenas se o siteurl nas definições corresponder explicitamente à variante desejada, mas mesmo isso funciona de forma inconsistente. A solução é uma só: mod_rewrite no Apache via .htaccess.

Onde reside o.htaccess e como não o estragar

O ficheiro .htaccess está localizado na raiz do site, ao lado do index.php ou da pasta wp-admin. Se o ficheiro não existir (Grav sem um modelo pronto, alojamento novo), crie um ficheiro de texto com o nome .htaccess, sendo o ponto inicial obrigatório.

Antes de qualquer edição, descarregue a versão atual para o seu computador. Um erro de sintaxe no .htaccess faz o site cair com um erro 500 instantaneamente. Regra de ouro: uma cópia de segurança local, outra com um nome diferente no próprio servidor (.htaccess.backup). Pode restaurar mesmo sem acesso ao painel de administração, via FTP ou pelo gestor de ficheiros do alojamento.

Para Grav e WordPress, a regra é a mesma: se o ficheiro já contiver RewriteEngine On, não duplique essa linha. Adicione o novo bloco de redirecionamento depois dela. No .htaccess padrão do Grav, esta linha está presente por defeito.

Redirecionamento 301 de www para sem www: código universal

O código abaixo funciona para qualquer domínio; não precisa de substituir example.com manualmente. Conveniente se gere vários sites ou transfere regras entre projetos. Adicione ao .htaccess depois de RewriteEngine On:

1RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
2RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Linha a linha: RewriteCond deteta qualquer anfitrião que comece por www. e captura o domínio entre parênteses. RewriteRule redireciona o pedido para o mesmo caminho sem www, substituindo o domínio capturado via %1. A flag R=301 significa redirecionamento permanente. L diz ao servidor «para, não apliques mais regras». NC torna a verificação insensível a maiúsculas e minúsculas.

Se o site correr em HTTPS, substitua http:// por https:// no RewriteRule. Melhor ainda, use um bloco combinado que resolva tanto o www como o HTTPS numa só passagem:

1RewriteCond %{HTTPS} off [OR]
2RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
3RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

A primeira condição é acionada em pedidos HTTP, a segunda em www. Se qualquer uma for verdadeira ([OR]), o pedido vai para https://domain-without-www/path. Um bloco, dois problemas resolvidos.

Cenário inverso: de sem www para www

Se precisar que a barra de endereço mostre sempre www, use a variante espelhada:

1RewriteCond %{HTTP_HOST} !^www\. [NC]
2RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

A lógica é a mesma, apenas a condição é invertida: se o anfitrião não começar por www, adicionamos www. no início. %{HTTP_HOST} substitui o anfitrião atual na íntegra, ao contrário do bloco anterior onde removemos www. via captura por parênteses.

Versão com HTTPS:

1RewriteCond %{HTTPS} off [OR]
2RewriteCond %{HTTP_HOST} !^www\. [NC]
3RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Use um dos quatro blocos, o que corresponder à sua variante de domínio canónico e presença de HTTPS. Dois blocos seguidos são desnecessários e criarão um salto extra na cadeia de redirecionamento.

Como verificar que o redirecionamento funciona

Não confie no navegador; ele guarda em cache os redirecionamentos 301 e mostra a imagem antiga mesmo depois de editar o .htaccess. Três formas de descobrir a verdade:

  • curl** -I.** No terminal: curl -I http://www.example.com. Uma resposta correta começa com HTTP/1.1 301 Moved Permanently, e o cabeçalho Location: contém o URL de destino. Verifique ambas as variantes, com www e sem.
  • Verificadores online. Redirect Checker ou HTTP Status Code Checker: cole o URL, veja a cadeia completa de redirecionamento e o código de resposta final.
  • Google Search Console. Depois de alterar o domínio canónico, vá às definições da propriedade e especifique a versão preferida. Isto não substitui o .htaccess, mas dá um sinal adicional ao motor de busca.

Uma dica à parte para o Grav: depois de editar o .htaccess, limpe a cache do CMS via Admin → Configuração → Desempenho → Limpar Cache. O Grav guarda páginas em cache de forma agressiva e, sem limpar, o redirecionamento pode não se aplicar a cópias já geradas.

⁉️🤔 Perguntas frequentes

Qual a variante melhor para SEO, com www ou sem?

O Google afirma oficialmente: não há diferença. Escolha uma e mantenha-a. O fator chave é a consistência: links internos, sitemap e tags canónicas devem apontar para uma única variante. De acordo com um inquérito da Ahrefs, cerca de 55% dos sites do top-100 usam a versão sem www, mas ambas as variantes posicionam-se igualmente bem.

O que acontece se não configurar nenhum redirecionamento?

Os motores de busca verão dois sites duplicados independentes. A autoridade dos links dividir-se-á, as páginas começarão a competir entre si nos resultados e os relatórios de análise espalharão o mesmo tráfego por dois anfitriões. Após alguns meses, o cenário típico: metade das páginas indexadas com www, metade sem, posicionamentos instáveis.

É possível resolver sem o.htaccess?

Sim, mas as alternativas são mais complexas ou mais lentas. Plugins do WordPress como o Redirection e o Rank Math funcionam ao nível do PHP; cada pedido passa pelo núcleo do WordPress, criando carga. Para sites de alto tráfego, o .htaccess ao nível do Apache é notoriamente mais rápido. Para o Grav, os plugins de redirecionamento são praticamente inexistentes, pelo que o .htaccess continua a ser o caminho principal. Em servidores NGINX, o equivalente são as diretivas return 301 no bloco server {}.

É preciso configurar um redirecionamento para cada página individualmente?

Não, as regras fornecidas são universais; aplicam-se a todos os URLs do site automaticamente. Um bloco cobre a página inicial, páginas internas, imagens e ficheiros CSS. Redirecionamentos separados de URLs antigos para novos configuram-se adicionalmente com linhas Redirect 301 /old-page /new-page, mas não têm nada a ver com o problema do www.

Erro 500 depois de editar o.htaccess, o que fazer?

Copie o .htaccess.backup de volta via FTP ou pelo gestor de ficheiros do alojamento; o site voltará instantaneamente. Verifique o código à procura de erros de digitação: um espaço em falta, uma barra extra, parênteses desemparelhados. Adicione as regras uma de cada vez e teste após cada alteração. E nunca edite o .htaccess em produção sem uma cópia de segurança atualizada à mão.

O redirecionamento funciona, mas o Google continua a mostrar a versão antiga nos resultados. Porquê?

A reindexação demora de alguns dias a um par de semanas. Certifique-se de que as tags canónicas nas páginas apontam para a variante escolhida e que o sitemap contém URLs sem o anfitrião antigo. Na Search Console, pode solicitar uma nova rastreio através da ferramenta de Inspeção de URL; isto acelera o processo, mas não garante resultados instantâneos.

Qual a variante a definir: o veredito curto

Se o site for novo, opte por sem www e HTTPS. Menos caracteres na barra de endereço, mais fácil de ditar em voz alta, sem problemas de cookies com subdomínios. Para a maioria dos projetos, isto é mais do que suficiente.

Já está indexado com www? Não mexa no que funciona. Configure um redirecionamento de sem www para www, atualize as tags canónicas e siga em frente.

Todo o processo: abra o .htaccess, adicione um dos quatro blocos acima, limpe a cache do CMS, verifique via curl -I. Cinco minutos, e as duplicações desaparecem do panorama de pesquisa. Outras técnicas de .htaccess estão reunidas no guia de configuração do servidor; consulte-o se estiver a configurar um site de forma abrangente.