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.
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!
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.
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.
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.
Mas agora com o suporte em sua versao 4. Acho que nao iram migrar mais para o ASP.net MVC, é uma pena.!
Oh que bom que tem url amigaveis na versao 4.0.
So conhecia no ASP.net MVC.
Muito bom saber disto.
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.
Parece que o ASP.NET 4 está facilitando as coisas então.
Ja ouvi falar mesmo.. mas dizem que na prática nao é tao simples assim. Tem algum documento falando de como fazer isto?
Valew.
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
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);
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!
Ultima tentativa do web.config:
<system.webServer>
<handlers>
<add name=”ConteudoHandler” path=”conteudo/*” verb=”*” type=”NamespaceQualquer.ConteudoHandler” resourceType=”Unspecified” preCondition=”integratedMode” />
</handlers>
</system.webServer>
Obrigado Sergio!
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.
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.
Boa noite, sou programador PHP, mas estou tendo que implementar técnicas básicas de SEO em um site feito em Asp.net, o Google faz alguma diferenciação de PHP para Asp.net? previlgégia a utilização do PHP?
valew obrigado!
Se colocarmos ambas linguagens em condições equivalentes (ambas programadas com qualidade, ambas em servidores de alta performance, etc.), não faz diferença usar uma ou outra.