SEO para ASP.NET 4.0 – Melhorias para o Básico de SEO

AutorPublicado por Frank Marcel em 11 de janeiro 2010

Ao longo de todo o tempo trabalhando com SEO, encontrei diversos sites desenvolvidos em ASP.NET, que por vezes apresentavam os mesmos problemas acerca de sua otimização e que, por vezes, os desenvolvedores dos sites não sabiam como resolver ou passavam por dificuldades para implementar uma solução.

Com o aumento incontestável da importância do SEO para um site, os desenvolvedores do ASP.NET implementaram novas funcionalidades para a versão 4 do produto, a fim de facilitar a aplicação de algumas atividades básicas de SEO, tornando o ASP.NET mais amigável ao processo de otimização.

SEO ASP.net

Conforme anunciado pelo ScottGu’s Blog, as novidades em SEO são:

  • Nova propriedade Page.MetaKeywords
  • Nova propriedade Page.MetaDescription
  • Suporte a URLs Amigáveis
  • Novo método Response.RedirectPermanent()

Page.MetaDescription e Page.MetaKeywords

Obviamente, essas propriedades servem para facilitar a otimização individual de meta description e meta keywords para as páginas de um site. Um exemplo de código com o controlador Page_Load:

void Page_Load(object sender, EventArgs e){
Page.Title = "Título Otimizado da Página";
Page.MetaDescription = "Campo para meta description específica de uma página";
Page.MetaKeywords = "insira,as,keywords,relevantes,da,página,aqui";
}

Também, os valores para meta description e meta keywords podem ser determinados direto no código fonte de um arquivo aspx:

<%@ Page Title = "Título Otimizado da Página"
Description = "Campo para meta description específica de uma página"
Keywords = "insira,as,keywords,relevantes,da,página.aqui"
MasterPageFile = "~/Site.Master"
CodeBehind = "paginaX.aspx.cs"
Inherits = "WebApplication1.pagina" %>

Especialmente no caso de meta keywords, essa melhoria na implemetação de meta tags em páginas ASP.NET é tardia, uma vez que todas Search Engines anunciaram que não consideram meta keywords como fator de rankeamento. Para o uso de meta description, essa propriedade será bem útil, já que esta meta tag ainda tem um importante papel no desempenho de um site em SERPs.

Suporte a URLs Amigáveis no ASP.NET

Este é um problema bastante comum em sites ASP.NET: na maior parte dos casos, as URLs são sobrecarregadas de parâmetros, normalmente recebendo valores numéricos (e não palavras – keywords), o que pode causar problemas com conteúdo duplicado (quando os parâmetros são escritos em uma ordem diferente), dificultam o entendimento da URL e não agregam valor semântico para Search Engines.

O ASP.NET 4 conta com a URL Routing Engine, que visa fazer o mapeamento de URLs amigáveis. Tipicamente,  uma URL tem o seguinte formato:

http://www.site.com/categoria.aspx?id=3339

A URL Routing Engine vai permitir que URLs amigáveis sejam mapeadas para suas versões não-amigáveis, ou seja, uma URL:

http://www.site.com/categoria/eletronicos

Será mapeada para a versão não-amigável e seu conteúdo carregado normalmente. Resta validar questões como redirecionamento da versão não-amigável para a amigável e a possibilidade de acesso do conteúdo via URL não-amigável – para evitar conteúdo duplicado.

Método Response.RedirectPermanent()

O redirecionamento em ASP.NET normalmente é realizado com o método Respose.Redirect(), mas existe um problema: este método retorna o código 302, indicando um redirecionamento temporário, o que não é o quadro ideal para SEO.

O novo método Response.RedirectPermanent() do ASP.NET 4 resolve esta questão respondendo com código 301, redirecionamento permanente, uma indicação de mudança de URL:

Response.RedirectPermanent("nova/url.aspx");

Outros 2 novos métodos também entram para tratar redirecionamentos:

//Redirecionamento 302:
Response.RedirectToRoute("Categorias", new { category = "categoria1" } )
//Redirecionamento 301
Response.RedirectToRoutePermanent("Categorias", new { category = "categoria1" } )

SEO com ASP.NET

Como disse no início do artigo, as novidades no ASP.NET 4 resolvem questões básicas de SEO. Considerando o tempo de vida e importância de SEO para o desempenho de um site, essas novidades chegam atradas para os desenvedores de websites. São questões já muito debatidas, mas que agora estão facilitadas.

Por fim, convido os desenvolvedores que utilizam o ASP.NET para seus comentários e impressões. Até a próxima!

Divulgue este artigo!




Autor Frank Marcel


Coordenador de SEO pela Mestre SEO e estudante do curso de Ciência da Computação da Universidade Federal de Itajubá. Trabalha com otimização de sites desde 2007.


16 Respostas à este post


  • Muito bom o artigo! Trabalho com ASP.NET, e sempre tive dificuldades em criar sites com uma url amigável. Já uso o URL routing a algum tempo no ASP.NET MVC, já imaginava que a microsoft iria colocar isso no ASP.NET.

    [Responder]

  • Muito bom o artigo! Trabalho com ASP.NET e sempre tive dificuldades em criar sites com uma url amigável. Já uso o URL routing a algum tempo com o ASP.NET MVC, já imaginava que a microsoft iria implementar essa funcionalidade no ASP.NET. Ainda não tive contato com o ASP.NET 4.0, mas espero bastante melhorias.

    [Responder]

  • Acho que para obter páginas otimizadas para SEO o ASP.NET MVC é o mais indicado. Já fiz site utilizando ele e deu resultado legal e com menos dor de cabeça do que o ASP.NET apenas.

    [Responder]

    Alexsandro disse,

    Mas agora com o suporte em sua versao 4. Acho que nao iram migrar mais para o ASP.net MVC, é uma pena.!

    [Responder]

  • Oh que bom que tem url amigaveis na versao 4.0.
    So conhecia no ASP.net MVC.

    Muito bom saber disto.

    [Responder]

  • As urls amigáveis já podiam ser feitas há algum tempo implementando uma classe derivada da interface IHttpHandler e mapeando no web.config uma extensão de arquivo ou mesmo um diretório inteiro para ela.

    [Responder]

    Frank Marcel disse,

    Parece que o ASP.NET 4 está facilitando as coisas então.

    [Responder]

    Alexsandro disse,

    Ja ouvi falar mesmo.. mas dizem que na prática nao é tao simples assim. Tem algum documento falando de como fazer isto?

    Valew.

    [Responder]

    Sergio Postarek disse,

    Cria uma class como a do exemplo abaixo:

    public class ConteudoHandler : IHttpHandler
    {
    public ConteudoHandler()
    {
    }

    public void ProcessRequest(HttpContext context)
    {
    string alias = System.IO.Path.GetFileName(context.Request.RawUrl.ToString());

    var conteudo = MetodoQueBuscaConteudo(alias);
    if (conteudo != null)
    {
    HttpContext.Current.Server.Transfer(“/conteudo.aspx?id” + conteudo.Id);
    }
    else
    {
    HttpContext.Current.Server.Transfer(“/Erro/404.aspx”);
    }
    }

    public bool IsReusable
    {
    get
    {
    return true;
    }
    }
    }

    E no web.config vc coloca a seguinte entrada:

    Dessa maneira qualquer coisa que vc chame em /conteudo/meu-conteudo-qualquer vai redirecionar de forma transparente para /conteudo.aspx?id=1234

    [Responder]

    Sergio Postarek disse,

    Oooops faltou o sinal de igual depois de ‘?id’ na linha abaixo. Segue a correção.

    HttpContext.Current.Server.Transfer(”/conteudo.aspx?id=” + conteudo.Id);

    Frank Marcel disse,

    Sergio, faltou o código do web.config.
    Se você utilizar html, separe os caracteres ou eles não vão aparecer. O Wordpress não permite todo tipo de html.

    Obrigado pelas informações!
    Enriqueceu, e muito, o artigo!

    Abraços!

    Sergio Postarek disse,

    Ultima tentativa do web.config:

    <system.webServer>
    <handlers>
    <add name=”ConteudoHandler” path=”conteudo/*” verb=”*” type=”NamespaceQualquer.ConteudoHandler” resourceType=”Unspecified” preCondition=”integratedMode” />
    </handlers>
    </system.webServer>

    Frank Marcel disse,

    Obrigado Sergio!

    Alexsandro disse,

    Valew Sergio, isto vai ser de bom aproveito.
    Desculpe a demora em responder, eu NÃO esqueci deste post. Valew..

  • Não é tardia as mudanças. Acho que veio em boa hora.
    O ASP.NET tem uma arquitetura muito boa para desenvolvimento e essas novas funcionalidades, aliadas as demais do ASP.NET 4, coloca a tecnologia com grande diferencial para desenvolvimento.

    [Responder]

    Frank Marcel disse,

    Olá Luis, disse que são tardias pois resolvem questões básicas de SEO, questões que já são discutidas há anos, e somente agora o ASP.NET facilitou a vida dos desenvolvedores com código simples e nativo da linguagem.

    [Responder]

Deixe um ComentárioDeixe um Comentário

(obrigatório)

(não será publicado)(obrigatório)


Nota: A moderação de comentários pode estar ativa, então não há necessidade de re-enviar o seu comentário.