Como consultor de SEO me gustaría hacer algunas recomendaciones para mejorar el posicionamiento en buscadores de yopogramo.net
Las URL's
Es un hecho que las URL's son de mucha importancia, ya que un duplicado puede terminar perjudicando el SEO, pero en un breve experimento que hice con la estructura actual de las URLs descubrí un par de aspectos que se deberían mejorar.
Como ejemplo, aquí les dejo la estructura de la URL:
http://yoprogramo.net/pregunta/id/titulo-desinfectado
Ahora los problemas que veo son los siguientes:
Al desinfectar la URL elimina por completo las ñ'sLa solución en este caso es simplemente remplazar todos los caracteres a sus versiones simples. En este caso ñ debería ser remplazado por "n" en lugar de ser removido.
La URL depende del id Y del titulo, si por ejemplo el usuario remueve un carácter de la URL el usuario es redirigido a la página principal.Esto es un problema ya que a veces los usuarios eliminan un fragmento de la URL sin querer y terminan en otra parte del sitio.
En este caso se pueden tomar dos caminos:
Solo hacer caso al id e ignorar el resto de la URI: Este es el método que emplea SO. Para evitar el contenido duplicado hacen uso de:
<link rel="canonical" href="http://sitio.com/39/url-real">
Usar el ID y comprobar que el resto de la URL: Este método es un poco más costoso; sin embargo es igual bastante efectivo.
URL Real:
http://sitio.com/39/resto-url
URL que el usuario introduce:
http://sitio.com/39/res
Cuando accesan esto, se usa el ID y se obtiene la URL y
se compara con la que el usuario introdujo. En caso de
no ser correcta se redirecciona con on 301 a la url correcta.
Otra cosa que recomendaría sería una página 404 y una invitación al usuario a realizar una búsqueda en el sitio.
El código
Hay varios aspectos que pueden mejorar el SEO e intentaré nombrar algunos, les recuerdo que esta no ha sido una búsqueda exhaustiva.
Los títulosActualmente la estructura de los títulos es la siguiente:
<title>YoProgramo.net - Titulo de la pregunta</title>
Lo recomendable es invertirlo:
<title>Titulo de la pregunta - YoProgramo.net </title>
Incluso eliminarlo, en mi experiencia eliminar el título de la página no trae nada contraproducente y a mi parecer trae unos cuantos beneficios; sin embargo eso se los dejo a su criterio.
Los HeadersCuando estamos en una página de pregunta, la cabecera de la misma tiene el siguiente código:
<h2>Titulo de la pregunta</h2>
Une pequeña optimización que podría terminar mejorando el SEO e incluso ser de ayuda para los usuarios que están acostumbrados a los "blogs" es usar el siguiente code:
<h1><a href="link-a-la-pregunta" title="Titulo de la pregunta" rel="bookmark">Titulo de la pregunta</a></h1>Link Rel Canonical
Es una buena práctica tener en cuenta que el contenido duplicado puede aparecer por "bugs" o por cualquier error. El contenido duplicado es malo y perjudica a nuestros sitios, por lo que se recomienda "especificar" cuál es la URL que "queremos", usando el siguiente código:
<link rel="canonical" href="http://sitio.com/39/url-real">Unos meta tags
Aunque no muchos están de acuerdo con los META Tags es un hecho que nunca esta demás tenerlos, aunque a mi parecer si sirven para algunos buscadores.
Los que yo recomiendo son los siguientes:
<meta content='Titulo de la pregunta' name='title'/> <meta content='Primeras lineas de la pregunta' name='description'/> <meta content='tag1,tag2,tag3' name='keywords'/> <meta content='general' name='rating'/> <meta content='index,follow' name='robots'/> <meta content='es' name='content-language'/>
Lo que mencioné arriba fue lo que pude apreciar a primera vista; no fue para nada exhaustivo y no tiene que ser tomado en cuenta; sin embargo, espero haber podido ser de alguna ayuda.
Nadie tiene pensado responder ? Cualquier comentario creo que podría servir de ayuda para complementar lo que puse :)
Sobre las n y las ñ, a Google (y a Bing) le da igual una que otra, así que no hay problema en desinfectar el título cambiando ñ por n. Aun así, ñ es un carácter válido en una url (solo que se ve raro en algunos navegadores), por ejemplo: España en Wikipedia
En cuanto a las ids y comprobar los títulos desinfectados, en mi opinión no es necesario porque el caso de que alguien copie la URL cortada no creo que sea muy común (igual me equivoco). Comparando con SO, ellos solo hacen caso del id y probablemente sea bastante menos costoso.
El resto de recomendaciones están muy bien y pueden aplicarse a cualquier otra aplicación web.
Es un hecho que ñ es un carácter válido; sin embargo, como bien mencionas en algunos navegadores se ve mal. Igual y es cuestión de tomar en consideración si vale la pena o no.
Referente a lo de las URL's... te asombrarías de lo común que es que sin querer corten un pedazo de la URL. En mi recomendación pienso que sería más efectivo simplemente usar el ID y el resto de la misma SOLO usarlo por SEO.
Grandioso exolimpo;
Creo que tus sugerencias son impecables y muchas gracias. Puse el ID en la url porque se puede dar el caso (aunque dificil) que 2 preguntas tengan el mismo Slug.
El metodo que desinfecta el slug se llama GenerateSlug y esta en ExtraTools.cs y es el siguiente:
public static string GenerateSlug(string phrase) {
string str = phrase.ToLower();
str = str.Replace("#", "sharp");
str = str.Replace("+", "plus");
str = str.Replace("?", "ask");
str = str.Replace("%", "um");
str = str.Replace("&", "amp");
str = str.Replace(".", "dot");
str = str.Replace("$", "ss");
str = str.Replace("<", "op");
str = str.Replace(">", "cl");
str = str.Replace("á", "a");
str = str.Replace("é", "e");
str = str.Replace("í", "i");
str = str.Replace("ó", "o");
str = str.Replace("ú", "u");
str = Regex.Replace(str, @"[^a-z0-9\s-]", ""); // caracteres no permitidos
str = Regex.Replace(str, @"\s+", " ").Trim(); // espacios en uno
str = str.Substring(0, str.Length <= 55 ? str.Length : 55).Trim();
str = Regex.Replace(str, @"\s", "-");
return str;
}
Solo falta agregar un replace mas, str.Replace("ñ", "n") que me olvidé :P
La parte de Canonical me parece sumamente importante implementarla aquí, por ejemplo, en la paginación de usuarios, se están duplicando paginas. En realidad eso es un error, no debería existir pagina "0". Tengo que solucionarlo.
Lo demás, todo perfecto y aplicable aquí. Muchas gracias!
Que bueno que te ha sido de ayuda. Más adelante intentaré analizar con más conciencia el sitio para ver si hay otros aspectos que se puedan mejorar para beneficiar el SEO.
Hasta ahora, tengo una recomendación más que debería mejorar la velocidad de indexado y es hacer un Site Map. Esto debería ayudar al máximo en especial si es usado en conjunto con Google Webmaster Toools.
Tu Respuesta
YoProgramo.NET es una comunidad para unir y ayudar a los programadores hispanos.
Aquí los desarrolladores pueden encontrar repuesta a sus dudas y colaborar con los demás, compartiendo sus conocimientos y experiencia.