SEO on Rails: URLs Amigáveis
Deixar as URLs de sua aplicação amigáveis pode fazer uma grande diferença no ranking dos mecanismos de busca. Isso significa fazer com as URLs fiquem mais simples, criando endereços que sejam legíveis e que tragam alguma informação sobre o conteúdo da página.
Vejamos alguns exemplos de URLs complexas:
index.php?section=cine&category=comedy
ou
/cgi-bin/index.cgi?id=6F7YCH&page=6
Quais os problemas de ter URLs complexas?
- A complexidade da URL torna o endereço difícil de memorizar
- Em alguns casos fica difícil de saber o que você vai encontrar antes de clicar em um link desse tipo
- A tecnologia utilizada pelo aplicativo fica exposta
- Se a tecnologia utilizada no site tiver que ser alterada (php para ruby, por exemplo), todas as URLs antigas ficarão inválidas
A solução com Rails
Para quem usa Rails, principalmente da maneira Restful, já tem esses problemas minimizados. Basta fazer um scafold e as URLs para as actions já ficam em um formato simples, como no nosso exemplo de locadora abaixo:
Lista de filmes
http://locadora.com/filmes
Detalhes de um filme com id igual a 12
http://locadora.com/filmes/12
Novo filme
http://locadora.com/filmes/new
Edição de um filme com id igual a 12
http://locadora.com/filmes/12/edit
Esse é um dos conceitos de REST: a URL deve descrever o recurso disponibilizado. Acha que está bom? Está, mas podemos melhorar ainda mais. Não seria melhor se ao invés de identificadores numéricos, tivéssemos o próprio título do filme na URL? Por exemplo, a página com detalhes do filme teria a endereço:
http://locadora.com/filmes/de-volta-para-o-futuro
Existem algumas maneiras de fazer isso em um aplicação Rails. Uma bem simples é instalando o plugin permalink_fu:
$ script/plugin install git://github.com/cyu/permalink_fu
Depois de instalado, basta fazer a seguinte chamada nosso Model Filme, para usar o campo título como identificador na URL:
class Filme < ActiveRecord::Base has_permalink :titulo end
Logicamente o campo título terá seus caracteres especiais e espaços removidos para poder ser usado como endereço http.
Essa abordagem só é viável quando o título do filme é único, pois ficaria impossível distinguir entre dois filmes com o mesmo título, já que ambos teriam a mesma URL. Para estes casos, podemos sobrescrever o método to_params, usando o helper PermalinkFu.escape do plugin para remover acentos e espaços do campo que queremos usar na composição do endereço:
Assim, teríamos o formato: http://locadora.com/filmes/12-de-volta-para-o-futuro Essa solução causa um pequeno efeito colateral, já que o parâmetro recebido pelo controller em
class Filme < ActiveRecord::Base
def to_param
"#{id}-#{PermalinkFu.escape(titulo)}"
end
end
class FilmesController < ApplicationController
def show
@filmes = Filme.find(params[:id].to_i)
respond_to do |format|
format.html # show.rhtml
format.xml { render
ml => @filmes.to_xml }
end
end
end
Note que é necessário uma conversão do paramêtro ID para o tipo inteiro, em params[:id].to_i, para que o find funcione corretamente.
O uso de URLs amigáveis, além de deixar os endereços de sua aplicação mais fáceis de entender e de lembrar, também fazem com que o posicionamento nos buscadores melhore, já que palavras chave pesquisadas passam a aparecer também nos seus links.
Leia mais sobre o uso de URLs amigáveis:
Criando URLs amigáveis em brunotorres.net






Muito boa a dica.
Aprendi isso quando trabalhei em agencia de turismo que trabalhava com sites de hotel. Acabei por aplicar isso nas ulrs do sistema de e-commerce que estou fazendo em Rails, alguns exemplos:
/departamentos/automotivos-subwoofer-e-woofer
/produtos/mochila-targus-tsb07501us-league-15-4-azul
/fabricantes/targus
Temos recebido um bom retornos dos clintes com o uso destas urls, e não apenas bons resultados no buscador.
Olá Flávio,
Acho que este ultimo passo não é necessário( @filmes = Filme.find(params[:id].to_i)), pois o rails já converte esse params[:id] para int.
Pelomenos faz algum tempo que isto acontece.
Abraços,
Eduardo
Meu nome é Alexandre, faço parte do buscar letras, tivemos um problema grave com Urls amigáveis, se você tiver interesse em saber como solucionamos o problema visite esse link:
http://br.forums.wordpress.org/topic/97
E caso tenha alguma dica, para nos fornecer agrademos…
parabéns pelo post e tudo de bom….
Esse comando tá quebrado: script/plugin install git://github.com/cyu/permalink_fu
Abraço.
Não está quebrado, apenas está faltando o .git no final!!
script/plugin install git://github.com/cyu/permalink_fu.git
Muito boa dica ! ajudou muito flavio vlw !