Como fazer o redirect 301 no htaccess

Como fazer o Redirect 301 no htaccess

As postagens vêm com o propósito de fazer com que seu blog alcance mais tráfego de forma orgânica usando técnicas de SEO. Dito isto, existem alguns pequenos fatores que podem causar um impacto negativo na posição do seu site nos mecanismos de busca. Nesta postagem falo como fazer o redirect 301 no htaccess resolvendo esses problemas.

Antes de tudo, entenda o que é o redirect 301

Em resumo e sem entrar em termos mais técnicos, redirect 301 ou, traduzindo, redirecionamento 301, é um redirecionamento permanente de uma URL para outra. Ela informa aos usuários e aos mecanismos de busca que uma página foi movida permanentemente para outra URL garantindo assim, que eles vão ser enviados para a página correta.

Algumas situações onde eventualmente você usará o redirect 301:

  • Você trocou de domínio e precisa enviar os usuários para a nova URL;
  • As URLs do seu site estão desatualizadas e você precisa enviar os usuários para as páginas novas;
  • Adquiriu um certificado SSL e tem que forçar o HTTPS nos links;
  • Quando você quer remover conteúdo duplicado em seu site.

Lembra do impacto negativo no site?

Você já deve ter visto por aí algo sobre conteúdo duplicado e que isso pode vir a prejudicar suas estratégias de SEO, bem como sua posição nos mecanismos de busca. Vamos esquecer um pouco a questão do plágio, que também é considerado pelo Google como conteúdo duplicado. O que quero salientar é que de forma não intencional, podemos ter conteúdo duplicado em nosso site.

Em resumo, conteúdo duplicado é quando há duas ou mais páginas com conteúdo idêntico ou quase idêntico dentro de um domínio ou em vários domínios.

Não há muita transparência por parte do Google quanto as regras para ranqueamento de um site. Na maioria dos casos, o conteúdo duplicado não é intencional, dessa forma, o Google não penaliza diretamente o site por esse fator.

Como assim não penaliza diretamente?

O Google não vai penalizar seu site ou algo do tipo por ter conteúdo duplicado, exceto em casos bem extremos. Contudo, por ter páginas idênticas ou quase idênticas, os mecanismos de buscas não vão saber qual página será a mais relevante para aparecer nos resultados de pesquisa. Além de tudo, o Google interpretará que seu conteúdo é irrelevante para os usuários fazendo com que seu site tenha um classificação baixa dentro das pesquisas.

Como resolver esse problema com redirect 301 no htaccess?

É nessa parte que entra o redirect 301 e o htaccess. Existem algumas formas de fazer esse procedimento, você pode usar algumas linguagens de programação mas usando o arquivo htaccess essa tarefa se torna muito mais fácil.

Antes, saiba o que é o arquivo htaccess

O arquivo htaccess é um arquivo de configuração usado em alguns servidores web, principalmente os servidores baseados em Apache. Esse arquivo nos possibilita a alteração de algumas configurações do servidor, isso vai desde a proteção de conteúdo ou pastas por senha até fazer redirecionamentos, que é o assunto que estamos tratando aqui.

Para você conseguir editar o arquivo htaccess é necessário que você tenha acesso FTP ou que seu serviço de hospedagem tenha um gerenciador de arquivos com a funcionalidade de edição.

O arquivo htaccess tem um papel importante dentro de um servidor. Qualquer configuração mal feita pode levar o seu site a ficar fora do ar, então, caso não se sinta seguro para editar esse arquivo, entre em contato com alguém que entenda do assunto.

Vamos aos cenários

Mostrarei abaixo algumas situações onde você pode encontrar conteúdo duplicado mostrando também a sua resolução usando redirect 301 no htaccess.

Você adquiriu um certificado SSL, logo, você precisa forçar os links de http para https

Se você já leu postagens para aprender a criar um site, certamente já ouviu falar em proteger sua página com um certificado SSL. Em resumo, SSL é um protocolo que criptografa a comunicação entre um navegador e um servidor garantindo que o dados seja transmitidos de forma segura.

Logo após a instalação de um certificado SSL , você notará que o site possui um cadeado na barra de endereço. Ainda nesta barra, dará para ver que a URL do site começa com https ao invés de http.

Site com certificado SSL instalado

Acontece que alguns dos links do seu site possa conter o http. Sim, mesmo que tenham o mesmo domínio, um site http e um https são considerados diferentes para os mecanismos de busca, entretanto, podemos resolver isso fazendo um redirect 301 no htaccess onde vamos forçar os links para https. Para isso, basta adicionar o seguinte código no arquivo htaccess:

# REDIRECT 301: DE HTTP DE HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Redirecionando de www para não www

Semelhantemente ao http e https, os mecanismos de busca também consideram que um site www e sem www são completamente diferentes. Ao adicionar o trecho de código abaixo redirecionaremos o site de www para não www:

# REDIRECT 301: DE WWW PARA NÃO WWW
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

Um adendo! Se você, em algum lugar da sua aplicação, definiu a URL sem o www e no arquivo htaccess você fizer o redirect 301 para uma URL com o www, seu site pode ficar com o erro ERR_TOO_MANY_REDIRECTS. Fique atento a esse detalhe.

Se preferir você pode fazer o inverso, de NÃO www para www com o seguinte código:

# REDIRECT 301: DE NÃO WWW PARA WWW
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]
</IfModule>

Podemos combinar esses códigos, redirecionando de http para https e de www para não www

Os trechos de códigos acima só fazem apenas uma coisa mas podemos combinar esses códigos em apenas um. O código abaixo redireciona o site de http para https e de www para não www:

# REDIRECT 301: DE HTTP PARA HTTPS E DE WWW PARA NÃO WWW
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>

E ainda, podemos redirecionar de http para https e não www para www:

# REDIRECT 301: DE HTTP PARA HTTPS E DE NÃO WWW PARA WWW
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>

Com a finalidade de checar se suas URLs estão certas, existem algumas ferramentas na web onde podemos verificar se todas as URLS do site estão sendo redirecionadas para a URL de destino. Posso citar o woorank que faz um analise do seu site e dá um relatório com dicas para melhora-lo.

Relatório do site Woorank

Como havia citado anteriormente, há outras formas de fazer um redirect 301 usando algumas linguagens de programação, mas acredito que com essas dicas e utilizando o arquivo htaccess seja a melhor forma e mais fácil de garantir que todas as URLs funcionem corretamente, evitando assim, o conteúdo duplicado em seu site, que por consequencia, evitando a perca de posições nos mecanismo de busca.