Melhorando a indexação de seu site ou blog com URLs amigáveis (friendly urls)
No artigo anterior, falei que páginas dinâmicas são ótimas ferramentas para gerenciar conteúdos de grandes sites, mas podem ser uma dor de cabeça para os mecanismos de busca.
O próprio Google fala isso em suas Diretrizes para Webmasters:
“Se você decidir usar páginas dinâmicas (aquelas em que o URL contém um caracter “?”), saiba que nem todo spider do mecanismo de pesquisa rastreia as páginas dinâmicas tão bem quanto as estáticas. É aconselhável que os parâmetros sejam poucos e curtos.”
Na verdade, o Google pode ignorar algumas páginas dinâmicas do seu site, caso cause problemas ao seu crawler (robô de indexação).
Como é dito na Central de Ajuda do webmaster:
“…o Google indexa páginas dinâmicas, incluindo as páginas .asp, .php e as que contêm pontos de interrogação em seus URLs. No entanto, essas páginas podem causar problemas ao nosso crawler e podem ser ignoradas. Se você suspeitar que suas páginas dinâmicas estão sendo ignoradas, sugerimos que você crie cópias estáticas dessas páginas para nosso crawler…”
O google então sugere que você crie cópias estáticas das páginas dinâmicas. Como fazer isso?
A solução é converter URLs dinâmicas para URLs amigáveis (friendly urls) aos mecanismos de busca (search-engine friendly URLs). Dessa forma os mecanismos de busca irão interpretar essas páginas como estáticas e irão indexá-las sem problemas.
Por exemplo converter (reescrever) uma URL dinâmica do tipo http://www.seusite.com.br/index.php?section=artigos&data=09-08-2004 em uma url estática do tipo http://www.seusite.com/artigos/09/08/2004. Dessa forma , quando alguém acessar a url http://www.seusite.com/artigos/09/08/2004 estará na verdade acessando, sem saber, a URL dinâmica http://www.seusite.com.br/index.php?section=artigos&data=09-08-2004.
É como um redirecionamento, só que não fica visível para o usuário que a página foi reescrita, já que o endereço na barra de endereços do browser não muda e nenhum cabeçalho HTTP é enviado.
A seguir, apresentarei uma solução que serve apenas para usuários do Apache. Caso você utilize php ou outra linguagem em servidor Apache, isso servirá para você. Vamos ver então como melhorar a indexação de seu site usando urls amigáveis:
1 - É necessário primeiramente que esteja habilitadado no servidor o módulo mod_rewrite e que seja possível o uso de arquivos .htacccess. Logo, verifiquem isso junto ao seu provedor de hospedagem (host) antes de continuar.
Mod_rewrite é um módudo do Apache que faz uso de um arquivo chamado .htaccess para reescrever urls, podendo usar expressões regulares.
Para verificar você mesmo se o mod_rewrite está habilitado, crie um arquivo chamado info.php com o seguinte script:
<?php
phpinfo();
?>
Faça o upload desse arquivo para o seu servidor, e digite na barra de endereços de seu browser http://www.seusite.com.br/info.php. Procure pelo cabeçalho Apache e depois por “Loaded Modules” (ou Módulos Carregados). Você deverá encontrar mod_rewrite entre os módulos listados ali. Se não estiver, entre em contato com seu provedor e solicite a habilitação desse módulo.
2 - Crie um arquivo chamado .htaccess em seu computador. A esse arquivo, acrescente as seguintes linhas:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.+)\/?([0-9]*)\/?$ /index.php?s=$1&p=$2
A primeira e segunda linhas devem sempre ser incluídas, pois a primeira (Options +FollowSymLinks) faz com que o Apache aceite links simbólicos no sistema, seguindo os diretórios ou arquivos que os links apontam e a segunda, habilita o módulo mod_rewrite. A terceira linha é um exemplo que deverá ser alterada de acordo com a estrutura de sua url, usando expressões regulares.
No exemplo acima, supondo que tivéssemos uma url dinâmica do tipo http://www.seusite.com.br/index.php?s=delphi&p=1, reescrevemos ela para uma url estática do tipo http://www.seusite.com.br/delphi/1. Como?
- RewriteRule define o início de uma regra de reescrita.
- A expressão ^(.+)\/?([0-9]*)\/?$ representa a url virtual ou estática, e /index.php?s=$1&p=$2 representa a URL real ou dinâmica. As expressões “$1″ e “$2″ significam, respectivamente o primeiro e segundo conjunto de caracteres agrupados por parênteses na expressão da esquerda. Acesse o artigo Gerenciamento de URLs - Criando URLs amigáveis do Bruno Torres para maiores detalhes.
Se você achou meio complicado, você poderá criar urls amigáveis (frindly urls) sem expressões regulares de forma automática e em alguns segundos:
Utilize a ferramenta URL Rewriting disponível em nosso blog. Cole sua url dinâmica (ex. http://www.seusite.com.br/index.php?s=delphi&p=1) na caixa de texto apropriada, e submeta o formulário. Serão mostrados a seguir 2 códigos. O primeiro, para representar sua url dinâmica como url estática em formato de página simples (http://www.seusite.com.br/index-s-delphi-p-1.html). E o segundo código, para representar sua url no formato de diretório (ex. http://www.seusite.com.br/index/s/delphi/p/1/).
Escolha e copie um dos códigos e cole-o no arquivo .htaccess. No exemplo acima, os códigos que serão gerados são apresentados a seguir:
Options +FollowSymLinks
RewriteEngine on
RewriteRule index-s-(.*)-p-(.*)\.html$ index.php?s=$1&p=$2
ou
Options +FollowSymLinks
RewriteEngine on
RewriteRule index/s/(.*)/p/(.*)/ index.php?s=$1&p=$2
Isso é tudo que você precisa para colocar no arquivo .htaccess.
3 - Agora que você já criou seu arquivo .htaccess, faça o upload dele para o servidor no diretório raiz de seu site e teste no browser digitando a url estática (url amigável).
Dica Importante: Ao criar urls amigáveis, você deverá incluir um arquivo robots.txt no seu site que impeça as páginas dinâmicas de serem indexadas, para garantir que elas não sejam consideradas como conteúdo duplicado. Ou então redirecionar todas as páginas dinâmicas para as suas respectivas versões estáticas, usando o redirecionamento 301(301 redirect). Ou seja, toda vez que alguém digitar no browser a url dinâmica (por exemplo, http://www.seusite.com.br/index.php?section=artigos&data=09-08-2004), deverá ser redirecionado para a url estática, http://www.seusite.com/artigos/09/08/2004.
Espero ter ajudado. No próximo artigo falarei como criar urls amigáveis em Asp e Asp.net.