2009-04-09 24 views
5

¿Hay un DO definido y DONT al implementar seo urls? Una gran cantidad de buenas prácticas parece estar bien para los sitios .html, pero se divide en sitios de bases de datos medianas y grandes.SEO URL con ASP.NET MVC

yo sepa la URL debe ser www.mysite.com/category/page-name-here

Si deseo hacer un sitio rico en contenido y ser por defecto la categoría y la página de la base de datos son impulsados ​​- hace esto me impide tener páginas como www.mysite.com/about o www.misitio.com/home ya que las páginas de inicio y de inicio podrían entrar en conflicto.

Aunque el motor de enrutamiento es flexible, ¿es factible y/o valioso lo anterior?

operación -Editar-

Sólo para explicar en detalle mi pregunta, ¿es posible controlar el motor de enrutamiento con una base de datos?

Es una buena práctica para la dirección URL que contenga una descripción significativa - por ejemplo stackoverflow.com/category/mvc y stackoverflow.com/questions/seo-urls-with-asp-net-mvc es bueno (en contraposición a stackoverflow.com/category/9955 y stackoverflow.com/questions/734583)

como expirment, me gustaría tomar el control a otro nivel, que permite decir que los dos controladores anteriores (categoría y preguntas), cada una de las cuales muestra datos dinámicos podría ser modificada para que sea simplemente stackoverflow.com/mvc y stackoverflow.com/seo-urls-with-asp-net-mvc.

Tendría que asegurarme de que mi base de datos contenía una tabla que me dice que la primera se enruta como una categoría y la segunda como preguntas; esto podría lograrse mediante una simple búsqueda en la base de datos y debería implementarse dentro de Global.asax

Mi pregunta es, ¿se puede lograr esto y cuáles serían los peligros potenciales?

+0

El codificador en mí dice que esto es un gran esfuerzo para una pequeña ganancia, pero por lo que me dicen los seos, toda su existencia se define por muchas ganancias pequeñas. – Gavin

Respuesta

8

es fácilmente factible si se suman las rutas harcoded por encima de los genéricos:

// AboutController.Index() 
routes.MapRoute( 
    "About", 
    "about", 
    new { controller = "About", action = "Index" }); 

// HomeController.Index() 
routes.MapRoute( 
    "Home", 
    "home", 
    new { controller = "Home", action = "Index" }); 

// ArticleController.Index(string category, string pagename) 
routes.MapRoute( 
    "Article", 
    "{category}/{pagename}", 
    new { controller = "Article", action = "Index" }); 

todos ellos podrían usar el mismo controlador si quería, pero podría ser un poco más fácil si se utilizan separadas.

El único problema que podría tener con esto es si tiene una categoría llamada "sobre" o "inicio", pero es poco probable que me imagine.

También se debe tener en cuenta que you don't have to use ASP.NET MVC to use the routing capability.

5

Para evitar los problemas que mencionas con las páginas estáticas (aproximadamente, casa, etc.) que podría tardar unos aproaches diferentes:

  1. Poner las páginas de categorías dinámicas en una trayectoria separada (por ejemplo www.mysite .com/shop/category/page-name-here)
  2. Coloque las páginas estáticas en una ruta diferente (p. ej., www.misitio.com).com/pages/about). Ahora no puede tener una categoría llamada "páginas", pero todas las demás funcionarían.
  3. Ponga las rutas estáticas por encima de las rutas dinámicas. No es ideal, ya que podría ocultar páginas de categorías si nombra mal sus categorías, pero incluso si lo hizo n. ° 1 o n. ° 2, aún así debería hacerlo como una medida pormenorizada.

salvedades Otros/trampas:

  1. También tendrá que asegurarse de que sus nombres de las categorías y los nombres de las páginas son únicos. En un sitio grande, esto no siempre es trivial (o incluso práctico), por lo que probablemente veas URL como las que están aquí en Stack Overflow donde el ID de la pregunta está realmente en la URL, y la parte del "nombre de página" es solo SEO.

  2. Deberá tener una estrategia para manejar los cambios de nombre. Si se cambia el nombre de una categoría o el nombre de una página, deberá tener algo en su lugar para redirigir los enlaces a los nombres anteriores a los nuevos para obtener la máxima bondad de SEO. También querrá asegurarse de que el nuevo nombre de una categoría/página no sea el mismo que el anterior de otra categoría/página, lo que le agrega un poco más de complejidad a la imagen.

Dicho todo esto, es factible, y ciertamente vale la pena en mi opinión. Especialmente si espera que la mayor parte de su tráfico provenga de los motores de búsqueda.