Canonização de URL: evitando conteúdo duplicado com o .htaccess

Por Vinicius Paes - 9 jul 2008

URLs não canonizadas são os endereços redundantes para a mesma página. Entenda como canonizar suas URLs usando o .htaccess no nosso tutorial.

O que é canonização de URL?

Canonização de URL pode ser definida como os endereços redundantes para a mesma página, um exemplo bem simples permite entender o significado:
Poderíamos ter acesso para o site do mundo SEO pelas seguintes maneiras:

www.mundoseo.com.br
http://mundoseo.com.br
www.mundoseo.com.br/index.html
http://mundoseo.com.br/index.php

Porém todas levam para a página principal do site. Assim os mecanismos de busca aos acessarem os links, terão acessos redundantes ao mesmo conteúdo, caracterizando conteúdo duplicado. Sendo o site penalizado, pois esta é uma técnica black hat.

Desta maneira é interessante editar o .htaccess do seu site, para encaminhar os mecanismos de busca para o endereço correto. Além de ser uma boa prática de SEO e otimização de sites , pois podemos definir o melhor endereço para o mesmo.

Como faço para evitar o conteúdo duplicado?

É necessário ter acesso de administrador ao conteúdo do site, podendo editar os arquivos de configuração, no caso, o arquivo de configuração do servidor apache: “.htaccess” .

htaccess - canonização de url

A edição do mesmo é bem simples, basta abrir o bloco de notas para começar. Insira o código abaixo, substituindo o nome (meu_site), para o do seu site:

RewriteCond %{HTTP_HOST} ^(meu_site.com.br)(:80)? [NC]
RewriteRule ^(.*) http://www.meu_site.com.br/$1 [R=301,L]

Processo finalizado, seu site já está protegido contra conteúdo duplicado que poderia ser ocasionado pelo WWW contra no-WWW.

Sobre o Autor:
Autor
Mestre em Ciência e Tecnologia da Computação pela Universidade Federal de Itajubá, e fascinado pelo desenvolvimento em diversas tecnologias web. É possível encontrá-lo pelo Twitter, Facebook e Google+.

9 Comentários

  1. Rubens Machado disse:

    Por todo lado que procurei falando do .htaccess só explicam a sua função, mas não ensinam nenhuma prática. Consegui editar o meu agora, e o red 301 tá funcionando. Valeu cara!

  2. Fábio Almeida disse:

    Fala cara, tive alguns problemas utilizando o .htaccess no meu site. Queria saber se você não teria um código mais detalhado que até mesmo utilizasse o htpassword?
    Mas o post tá ótimo! Parabéns!

  3. Fala Fábio, o código acima realmente é um código básico pro .htaccess. É possível habilitar diversas outras funçoes. Realmente o htpasswd é muito útil para bloqueio de conteúdo com senha, que acredito que seja seu desejo. Segue um código mais completo:

    deny from all

    Options -Indexes
    AuthUserFile /home/conteudo_protegido/.htpasswd
    AuthGroupFile /dev/null
    AuthName “Please enter your ID and password”
    AuthType Basic
    require valid-user
    ErrorDocument 400 bad-request.php
    ErrorDocument 401 pass.php
    ErrorDocument 402 dolar.php
    ErrorDocument 403 deny.php
    ErrorDocument 404 404.php
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(seu_site.com.br)(:80)? [NC]
    RewriteRule ^(.*) http://www.seu_site.com.br/$1 [R=301,L]
    DirectoryIndex index.php
    order deny,allow

    Qualquer dúvida só falar
    Abraços

  4. Olavo Mello disse:

    Vagner,

    tudo joia. Cheguei até sei artigo pois estou com uma dúvida referente á utilização do .htaccess e gostaria de uma ajuda, se possível.

    Estou utilizando a estrutura completa para gerar urls amigáveis porém minhas imagens utilizam o caminho relativo e por este motivo tenho que inserir o comando de redirecionamento na url do htaccess. [R=301,L]

    Minhas dúvidas são:

    1) Isto irá prejudicar o SEO do site visto que a url exibida é do tipo

    /index.php?pagina=3790&sid=criacao-de-sites.html

    e não

    /3790/criacao-de-sites.html

    ?

    2 ) Retirando o comando citado consigo o resultado que procuro porém as imagens das páginas desaparecem pois utilizam o comando como se fosse parte do endereço das imagens. ( imagens, swf, etc ). Existe alguma solução para resolver este problema ?

    Agradeço desde já e parabéns pelo artigo.

  5. Fabio!
    Há um outro artigo exemplificando a utilização do htpassword. Dependendo de seu servidor, creio que não será possível a utilização do mesmo.
    Abraços

  6. Olá Olavo!
    Sugiro utilizar URL amigáveis em seu web site, para evitar problemas de indexação. Se possível especificar como está fazendo a geração das mesmas, poderia auxiliá-lo de maneira mais direcionada. É mais vantajoso utilizar url absoluta nas imagens, para evitar os problemas, e manter a estrutura do web site de forma otimizada. Desta forma garante uma ótima Otimização de Site e SEO !
    Abraços

  7. Alcantara disse:

    Caro Vinicius.

    Muito bom seu artigo sobre .htaccess.

    Por favor, informe onde é inserido o código:
    RewriteCond %{HTTP_HOST} ^(meu_site.com.br)(:80)? [NC]
    RewriteRule ^(.*) http://www.meu_site.com.br/$1 [R=301,L]?

    Isto é, em que página e onde na página? No texto vc diz apenas que a edição é simples, fácil, etc.

    Saúde e Paz!

    • Vinicius Paes disse:

      Olá Alcantara!

      O arquivo .htaccess em questão deve estar no root do seu site. É possível acessá-lo através de conexão FTP e/ou SSH. Tenha bastante cuidado ao editá-lo, alguns sistemas operacionais ocultam arquivos com extensões desconhecidas (ou entendem como se fossem arquivos de sistema). Para criá-lo é possível utilizar um editor de texto, salvando o arquivo como .htaccess. Ou salvando como .txt e depois alterando o nome e extensão. Após criado, envie para seu servidor onde está hospedado o site (por ftp/ssh). Caso o arquivo .htaccess esteja escrito incorretamente, é possível que ocasione um erro e o seu site pare de funcionar. Não desespere, basta encontrar o arquivo no servidor por ftp e deletá-lo. Caso não encontre o arquivo no servidor (este fique oculto por lá), basta criar um novo arquivo .htaccess, só que desta vez em branco, e enviar para o servidor para sobrescrever o anterior.

      Espero ter ajudado! E tome cuidado!

Deixe o seu comentário!