3 dicas imperdíveis com htaccess para você evitar conteúdo duplicado em seu site

Otimizar um site para evitar o conteúdo duplicado é uma questão crucial para os especialistas em SEO.

Mas, este tema também deve ter a sua atenção como desenvolvedor web. Se liga!

Muitos afirmam que o conteúdo duplicado é sempre um vilão na questão de otimização de páginas web. Mas, eu não irei entrar neste mérito agora, afinal, o foco do post é apenas tratar de algumas técnicas para evitar o conteúdo duplicado e não da teoria em si.

Se você tiver curiosidade, poderá acessar o site da Agência Mestre e ver um conteúdo completo sobre conteúdo duplicado.

Para que seja possível a implementação destas dicas é necessário que o seu servidor Apache já possua o módulo mod_rewrite ativado.

mod_rewrite e o .htaccess são usados em conjunto para que seu site tenha a possibilidade de apresentar URLs semânticas e amigáveis ao público.

Antigamente era mais comum encontrar sites que possuem endereços como www.meusite.com.br/index.php?id=1. Hoje em dia, isso já está totalmente em desuso. É muito mais interessante utilizar um endereço assim: www.seusite.com.br/meu-primeiro-post, concorda?

Bem, considerando que você já fez as configurações necessárias para que o arquivo .htaccess funcione corretamente, apresento as minhas dicas utilizadas no meu dia-a-dia.

1. Retirar barra (/) no final da URL

Um endereço www.meusite.com.br e www.meusite.com.br/ são diferentes e se possuírem o mesmo conteúdo, é sim conteúdo duplicado. Então, para evitar isso utilizo o seguinte código para que sempre retire a barra no final do endereço.

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

2. Inserir o www, caso não possua

Um endereço www.meusite.com.br e meusite.com.br são, também, endereços diferentes e é considerado como conteúdo duplicado caso eles exibam o mesmo conteúdo. Então, para evitar isso utilizo o seguinte código:

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

3. Retirar index.php, caso exista

Se você acessar um site com www.meusite.com.br e www.meusite.com.br/index.php e ambos exibirem o mesmo conteúdo, também será considerado como conteúdo duplicado. Neste caso, o problema é resolvido da seguinte forma:

 
    
        RewriteCond    %{THE_REQUEST} ^.*/index.php
        RewriteRule    ^(.*)$ / [R=301,L]
    

Pronto! Assim você garante que seu projeto sempre irá ser acessado sem barra no final (/), sempre com www e evita que a home seja acessada via /index.php.

Aqui, segue o código completo do meu .htaccess utilizados na maioria dos meus projetos.

    
        <IfModule mod_rewrite.c>
            RewriteEngine on
         
            #redirect if exist end slash
            RewriteCond    %{HTTP_HOST} !^\. [NC]
            RewriteRule    ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
         
            #redirect if does not exist www
            RewriteCond    %{HTTP_HOST} !^www\.
            RewriteRule    ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
         
            #redirect if exist index.php
            RewriteCond    %{THE_REQUEST} ^.*/index.php
            RewriteRule    ^(.*)$ / [R=301,L]
        </IfModule>