Domanda

In un domanda ora migrata riguardo agli URL leggibili dall'uomo mi sono permesso di elaborare un mio piccolo cavallo di battaglia:

Quando incontro URL come http://www.example.com/product/123/subpage/456.html Penso sempre che questo sia un tentativo di creare URL gerarchici significativi che, tuttavia, non sono del tutto gerarchici.Quello che voglio dire è che dovresti essere in grado di tagliare un livello alla volta.In quanto sopra, l'URL presenta due violazioni di questo principio:

  1. /product/123 È uno informazione rappresentata su due livelli.Sarebbe più correttamente rappresentato come /product:123 (o qualunque delimitatore tu voglia)
  2. /subpage molto probabilmente non è un'entità in sé (vale a dire, non puoi salire uno livello da 456.html COME http://www.example.com/product/123/subpage è niente").

Pertanto ritengo più corretto quanto segue:

http://www.example.com/product:123/456.html

Qui puoi sempre salire di un livello alla volta:

  • http://www.example.com/product:123/456.html— La sottopagina
  • http://www.example.com/product:123 — La pagina del prodotto
  • http://www.example.com/ - La radice

Seguendo la stessa filosofia, avrebbe senso quanto segue [e fornire un collegamento aggiuntivo all'elenco dei prodotti]:

http://www.example.com/products/123/456.html

Dove:

  • http://www.example.com/products/123/456.html — La sottopagina
  • http://www.example.com/products/123 — La pagina del prodotto
  • http://www.example.com/products — L'elenco dei prodotti
  • http://www.example.com/ - La radice

La mia motivazione principale per questo approccio è che se ogni "elemento del percorso" (delimitato da /) è autonomo1, sarai sempre in grado di navigare verso il "genitore" semplicemente rimuovendo l'ultimo elemento dell'URL.Questo è ciò che (a volte) faccio nel mio esplora file quando voglio andare nella directory principale.Seguendo la stessa logica l'utente (o un motore di ricerca/crawler) può fare lo stesso.Abbastanza intelligente, penso.

D'altra parte (e questa è la parte importante della domanda):Anche se non posso mai impedire che un utente tenti di accedere a un URL che lui stesso ha amputato, sto erroneamente affermando (e onorando) che un motore di ricerca potrebbe fare lo stesso? Cioè, è ragionevole aspettarsi che nessun motore di ricerca (o realmente:Google) proverebbe ad accedere http://www.example.com/product/123/subpage (punto 2, sopra)?(O sto davvero prendendo in considerazione solo il fattore umano?)

Questa non è una questione di preferenze personali.È una domanda tecnica su cosa posso aspettarmi da un crawler/indicizzatore e in che misura dovrei prendere in considerazione la manipolazione degli URL non umani durante la progettazione degli URL.

Inoltre, la "profondità" strutturale di http://www.example.com/product/123/subpage/456.html è 4, dove http://www.example.com/products/123/456.html sono solo 3.Si dice che questa profondità influenzi il posizionamento nei motori di ricerca.Almeno, così mi è stato detto.(È ormai evidente che la SEO lo è non quello di cui so di più.) È (ancora?) vero: la profondità gerarchica (numero di directory) influenza il posizionamento nella ricerca?

Quindi, la mia "intuizione" è tecnicamente valida o dovrei dedicare il mio tempo a qualcos'altro?


Esempio:Farlo (quasi) bene
Il buon vecchio SO lo capisce quasi bene.Caso in questione:profili, ad es. http://stackoverflow.com/users/52162:

  • http://stackoverflow.com/users/52162 — Profilo unico
  • http://stackoverflow.com/users — Elenco degli utenti
  • http://stackoverflow.com/ - Radice

comunque, il URL canonico per il profilo è in realtà http://stackoverflow.com/users/52162/jensgram che sembra ridondante (lo stesso punto finale rappresentato su due livelli gerarchici).Alternativa: http://stackoverflow.com/users/52162-jensgram (o qualsiasi altro delimitatore utilizzato in modo coerente).


1) Trasporta un'informazione completa e non dipendente da elementi "più profondi".

È stato utile?

Soluzione

URL gerarchici di questo tipo "http://www.example.com/product:123/456.html" sono inutili quanto "http://www.example.com/product/123/subpage", perché quando gli utenti vedono i tuoi URL, a loro non interessano gli identificatori dal tuo database, vogliono percorsi significativi.Questo è il motivo per cui StackOverflow inserisce i titoli delle domande negli URL:"http://stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too".

Google sconsiglia la pratica di sostituire query abituali come "http://www.example.com/?product=123&page=456", perché quando ogni sito sviluppa il proprio schema, il crawler non sa cosa significa ciascuna parte, se è importante o no.Google ha inventato meccanismi sofisticati per trovare argomenti importanti e ignorare argomenti non importanti, il che significa che otterrai più pagine nell'indice e ci saranno meno duplicati.Ma questi algoritmi spesso falliscono quando gli sviluppatori web inventano il proprio schema.

Se ti interessano sia gli utenti che i crawler dovresti utilizzare invece URL come questi:

Inoltre, i motori di ricerca assegnano un punteggio più alto alle pagine con parole chiave nell'URL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top