Como utilizar o ASP.NET Routing para melhorar a indexação e leitura das URLs do seu site pelos mecanismos de busca – SEO

Olá pessoal, tudo bom?

Como todos sabemos, uma das coisas que ajudam a melhorar o posicionamento do seu site junto aos mecanismos de busca (Google, Bing, etc) é a qualidade das URLs que o mesmo divulga, veja o exemplo abaixo:

  • URL ruim: http://www.seusite.com/conteudo/cursos.aspx?codigo=365
  • URL boa: http://www.seusite.com/curso/ciencia-da-computacao

No exemplo, as duas URLs levariam para a mesma página, mas convenhamos que a segunda é muito mais legível que a primeira e, essa legibilidade, é levada em conta pelos mecanismos de busca, pois os mesmos consideram as palavras da URL como keywords que ajudam na indexação do conteúdo do site.

O ASP.Net possui um mecanismo chamado de Routing que ajuda o desenvolvedor a “transformar” suas URLs em caminhos mais amigáveis, vejamos os passos:

  1. Crie um projeto do tipo ASP.NET (neste exemplo adotaremos o C# como linguagem de programação)
  2. Adicione uma referência para o asembly System.Web.Routing
  3. Adicione (caso já exista edite) o arquivo Global.asax e proceda conforme abaixo:
    a) Importe o namespace System.Web.Routing

    ...
    using System.Web.Routing;
    ...
    

    b) Adicione o método RegisterRoutes e depois acrescente o código correspondente no método Application_Start

    ...
    public class Global : System.Web.HttpApplication
    {
       void RegisterRoutes(RouteCollection routes)
       {
          routes.MapPageRoute(
             "cursos",               //Nome da rota
             "curso/{nomecurso}",    //URL com parametro
             "~/Rota.aspx"           //Página que vai manipular a rota
          );
       }
    
       protected void Application_Start(object sender, EventArgs e)
       {
          RegisterRoutes(RouteTable.Routes);
       }
    ...
    ...
    
  4. Adicione a página Rota.aspx e no método Page_Load acrescente o código a seguir:
    ...
    protected void Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
       {
          if (RouteData.Values["nomecurso"] != null)
          {
             switch (RouteData.Values["nomecurso"].ToString().Trim())
             {
                case "ciencia-da-computacao":
                   Server.Transfer("~/ExibeCurso.aspx?codigo=10");
                   break;
                case "sistemas-informacao":
                   Server.Transfer("~/ExibeCurso.aspx?codigo=26");
                   break;
                default:
                   Response.Redirect("http://www.seusite.com");
                   break;
             }
          }
       }
    }
    ...
    ...
    

Pronto, a partir daí, sua URL que no exemplo exibe os cursos oferecidos por uma determinada instituição, passaria a ser identificada como http://www.seusite.com/curso/ciencia-da-computacao

Um grande abraço,
Eduardo Henrique Rizo
[twitter-follow screen_name='eduardorizo' show_count='yes']

Post relacionado

16 comentários em “Como utilizar o ASP.NET Routing para melhorar a indexação e leitura das URLs do seu site pelos mecanismos de busca – SEO”

  1. Eduardo, blz?

    Fiz o download do exemplo… e não funcionou. Quando eu digito /ExibeCurso.aspx?codigo=10, embora o label receba o valor (através do switch que você colocou no PageLoad da página), a URL não é mudada, continua em sua forma “não-amigável”.

  2. Eduardo.. eu de novo!

    Consegui. Obrigado mais uma vez. Fazia tempo que eu estava na procura de um tutorial assim.

    Fica só uma dica para complementar. Quando se muda a URL, se os arquivos .css, js ou qualquer referência no não estiver com o caminho absoluto, eles perderão a referência. Então.. o conselho é sempre colocar ” ../ ” na hora de “chamar” esses arquivos.

    Exemplo:
    <link href=”../css/estilo.css” rel=”stylesheet” type=”text/css” /> //NÃO DÁ PAU!
    <link href=”css/estilo.css” rel=”stylesheet” type=”text/css” /> // ADEUS CSS!

    – A dica vale para imagens também.

    – Percebi que somente o caminho dos arquivos referenciados na página que a URL está sendo tratada que têm as referencias modificadas. Ou seja, se a página tiver uma MasterPage, os links da master page continuam iguais, sem a necessidade de alterações.

  3. Pingback: ASP.NET Routing e error 404 do IIS « Blog do Eduardo H. Rizo

  4. Bom dia Eduardo, fiz conforme o artigo creio q funcionou, mas parece q deu erro em outro codigo q uso, Page.Title = SiteMap.CurrentNode.Title +” – TV Cidade”; ele nao esta puxando o Web.sitemap me parece, oq fazer para solucionar esse erro?

    Abraços

      1. Eduardo, era algo como objeto nulo, mas ja resolvi o erro hhehe, obrigado 😉 Abraços

Deixe um comentário