Canonização de Domínio

Por que alguém deve se preocupar com isso? O motivo na verdade é simples. Pense na forma como um usuário cria um link para seu site quando o menciona. Na maioria das vezes o link é criado utilizando-se o domínio junto ao "www", pois trata-se de uma experiência aprimorada ao longo do tempo.

Desde o início do período comercial da Web no Brasil e em outros países, o usuário está acostumado em utilizar o "www", principalmente naqueles casos onde pensa em uma palavra-chave e digita a mesma com o "www" e prefixos ".com.[país]" para encontrar o que procura na Web. Ou seja, a forma mais natural de construção de links para um domínio principal, também, é utilizando os três "Ws". Isso não exclui a possibilidade do usuário tentar acessar o site diretamente do domínio sem o "www".

O que ocorre é que ainda é comum encontrar redirecionamentos ao acessar esse domínio para uma URL sem "www". Não se trata de uma tragédia do ponto de vista de otimização de sites, mas de algo que pode ser evitado ou melhorado, como uma boa prática ou mesmo um requinte na configuração, de modo a melhorar aspectos relacionados à regras, bem como engenharia de suas URLs.

Utilizando o WWW

Para que exista uma canonização da URL com o "www" é simples. Nesse caso, é possível utilizar uma técnica que consiste em transformar a URL para que ela se transforme sempre em um artefato com "www". Pense no caso daquele usuário que acessa seu site para fazer um "CTRL + C" no domínio e aquele outro que digita o domínio com o "www". Se você utiliza o domínio sem "www" o site sofrerá com uma certa diluição de popularidade. É como se fossem links para lugares diferentes.

No caso do Apache, por exemplo, a configuração dependerá somente de algumas linhas de código. Para isso, basta utilizar o mod_rewrite (módulo do Apache para reescrita de URLs) onde este reescreverá a URL especificamente conforme a regra colocada no ".htaccess". A regra é escrita no ".htaccess" da seguinte forma:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^exemplo.com$ [NC]
RewriteRule ^(.*) http://www.exemplo.com/$1 [R=301,L]


Perceba que basicamente a regra consiste em o servidor transformar uma URL sem "www" (no "RewriteCond") em uma URL com "www", através de um protocolo 301 (no "RewriteRule") entregue ao agente, que nesse caso poderá ser um robô (de mecanismo de busca) ou mesmo um navegador. Dessa forma, qualquer URL que não possua "www" irá recebê-lo.

Canonizando a URL

Outro cenário a se comentar, é daquelas páginas iniciais, que contém "index.php" (ou html), por exemplo. É possível fazer com que o "index.php|html" e afins, desapareça. Para isso, basta realizar um redirecionamento parecido com o realizado no exemplo acima:

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]


Essa regra irá fazer com que qualquer URL requisitada que tenha "/index.html" ou "/index.php" transformá-la em "/" ou seja: "www.exemplo.com/index.php" se transformará em "www.exemplo.com/".

Concluindo: antes de iniciar seu link building dê atenção para detalhes como esses citados acima. Não se trata de uma estratégia única, mas de um "coringa" que poderá servir de complemento e integração entre on page e off page, e assim, ser o diferencial entre um resultado e outro.

Referências

"Construindo Websites que todos encontram!" - Aarron Walter, 2010
"Search Engine Optimization with PHP" - Sirovich; Darie, 2007

Ferramenta para escrita no .htaccess

htaccesseditor

Comentários

Rafael Lôbo disse…
Grande Erick,

conforme o exemplo que você passou, o mesmo não funciona. Segue o código no qual eu consegui fazer funcionar.

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

Um grande abraço.
Erick Formaggio disse…
Oi Rafael,

Dependendo da versão do apache o mesmo exige algumas particularidades.
No meu, funcionou... testei o código que você mandou, e no meu apache não funcionou. Fator "Jesus" né?
Vou perguntar para um colega meu especialista em Apache qual é o "pulo do gato" e te dou um feedback, mas valeu por compartilhar!

abração!
Erick Formaggio disse…
Oi Rafael,

Testei novamente, copiei e colei o código que escrevi, realmente, um erro de digitação. Tinha um "$" a mais que faz com que em algumas versões do apache dê erro mesmo.

Tks pelo aviso.
abs!
Rafael Lôbo disse…
Ficou bom agora.
Não precisa dos escapes.
=) Está funcionando perfeitamente.
Abração

Postagens mais visitadas deste blog

Ferramentas de Gerenciamento e Produtividade

A pirâmide invertida

LGPD: Conceitos e desafios importantes