2009-04-09 20 views
5

Esiste un numero preciso DO e DONT quando si implementano gli URL seo? Molte buone pratiche sembrano corrette per i siti .html ma si suddividono su siti di database di medie/grandi dimensioni.URL SEO con ASP.NET MVC

per quanto ne so l'URL deve essere www.mysite.com/category/page-name-here

Se voglio fare un sito ricco di contenuti e di essere di default la categoria e la pagina sono basati su database - fa questo impedirmi di avere pagine come www.mysite.com/about o www.mysite.com/home in quanto le home page e about potrebbero essere in conflitto.

Sebbene il motore di routing sia flessibile, quanto sopra è fattibile e/o utile?

operativa -Editazione-

Giusto per approfondire la mia domanda, è possibile controllare il motore di routing con un database?

È buona norma per l'URL di contenere una descrizione significativa - ad esempio stackoverflow.com/category/mvc e stackoverflow.com/questions/seo-urls-with-asp-net-mvc è buono (al contrario di stackoverflow.com/category/9955 e stackoverflow.com/questions/734583)

come expirment, desidero prendere il controllo ad un altro livello, poniamo che i due controllori sopra (categoria e domande), ognuno dei quali mostra dati dinamici potrebbe essere modificato per essere semplicemente stackoverflow.com/mvc e stackoverflow.com/seo-urls-with-asp-net-mvc.

Avrei bisogno di assicurarmi che il mio database contenesse una tabella che mi dice che il primo deve essere indirizzato come una categoria e il secondo come una domanda - questo potrebbe essere ottenuto con una semplice ricerca nel database e dovrebbe essere implementato all'interno di Global.asax

La mia domanda è, può essere raggiunto e quali sarebbero le potenziali insidie.

+0

Il codificatore in me dice che questo è un grande sforzo per un piccolo guadagno, ma da quello che mi viene detto da seos, la loro intera esistenza è definita da molti piccoli guadagni. – Gavin

risposta

8

E 'facilmente realizzabile se si aggiungono i percorsi harcoded sopra quelli generici:

// 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" }); 

tutti potevano utilizzare lo stesso controller se si voleva, ma potrebbe essere un po' più facile se hanno usato quelli separati.

L'unico problema che si avrebbe con questo è se si avesse una categoria chiamata "circa" o "casa", ma questo è improbabile che immagino.

Si noti inoltre che you don't have to use ASP.NET MVC to use the routing capability.

5

Per evitare i problemi di cui parli con le pagine statiche (circa, casa, ecc) si potrebbe prendere un paio di aproaches differenti:

  1. Mettere le pagine di categoria dinamica in un percorso separato (ad esempio www.mysite .com/negozio/categoria/nome-pagina-qui)
  2. Inserire le pagine statiche in un percorso separato (ad es. www.mysite.com/pages/su). Ora non puoi avere una categoria chiamata "pagine", ma tutte le altre funzionano.
  3. Metti i percorsi statici sopra i percorsi dinamici. Non è ideale dato che potrebbe potenzialmente nascondere le pagine delle categorie se le tue categorie non vengono definite correttamente, ma anche se hai fatto # 1 o # 2, vorrai comunque farlo come misura just-in-case.

Altri caveat/grattacapi:

  1. avrete anche bisogno per garantire che i nomi delle categorie e dei nomi delle pagine sono unici. Su un sito di grandi dimensioni questo non è sempre banale (o anche pratico) che è probabilmente il motivo per cui vedi URL come quelli qui su Stack Overflow dove l'ID della domanda è in realtà nell'URL, e la parte "nome della pagina" è solo zucchero SEO.

  2. Avrai bisogno di avere una strategia per gestire le modifiche al nome. Se il nome di una categoria o di una pagina viene modificato, è necessario disporre di qualcosa per reindirizzare i collegamenti ai vecchi nomi a quelli nuovi per la massima bontà SEO. Dovrai anche assicurarti che il nuovo nome di una categoria/pagina non sia lo stesso del vecchio nome di un'altra categoria/pagina, il che aggiunge un po 'più di complessità all'immagine.

Tutto ciò che è stato detto, è fattibile, ed è certamente utile secondo me. Soprattutto se prevedi che la maggior parte del tuo traffico provenga dai motori di ricerca.