martedì 5 febbraio 2008

Joomla 1.5: SEF Integrato e Duplicazione Contenuti

Finalmente è uscita la versione stabile di Joomla 1.5. Di sicuro questo già lo sanno tutti coloro che sono in qualche modo interessati a Joomla perché la notizia è stata ampiamente pubblicizzata, come d'altra parte è giusto visto l'interesse che ruota intorno a questo cms.

La mia intenzione non è però quella di dare un annuncio in ritardo, ma piuttosto iniziare a fare qualche riflessione sulla nuova versione.

Leggendo i commenti e le prime impressioni in giro per i vari forum dedicati all'argomento, mi pare di capire che una delle novità che è stata accolta più favorevolmente sia il supporto integrato per le url pulite (senza parametri) ottimizzate per i motori di ricerca (clean urls, SEF urls chiamiamole un po' come si vuole).

Parliamone iniziando da un esempio concreto. Supponiamo di voler creare un sito strutturato in sezioni e categorie nel modo mostrato dalla figura

Per prima cosa creiamo le sezioni e le categorie da Contenuti -> Gestione Sezioni e Contenuti -> Gestione Categorie nell'area di amministrazione di Joomla.

Faccio notare che sia le sezioni che le categorie oltre al Titolo hanno un proprio campo Alias. Lo possiamo lasciare vuoto, ma è bene sapere che esiste, si vedrà alla fine perché.

Poi pensiamo ai menu. Proprio per mantenere l'esempio il più semplice possibile creeremo un menu standard (Articoli) a due livelli: le voci di menu del primo livello saranno del tipo Aspetto sezione, quelle del secondo livello saranno del tipo Aspetto categoria.

Creiamo ovviamente una voce di menu per ogni sezione e ogni categoria. Prima si creano le voci menu Aspetto sezione, lasciando il campo Elemento impostato su Principale.

Poi si creano le voci di menu Aspetto categoria, selezionando per il campo Elemento il valore corrispondente alla rispettiva sezione.

Nel campo Titolo possiamo mettere il nome della sezione o categoria e il campo Alias (notare che esiste un campo Alias anche per la voce del menu) possiamo lasciarlo vuoto.

La struttura del menu Articoli deve apparire come in figura

Il menu può essere pubblicato su tutte le pagine in posizione left. La visualizzazione di un menu strutturato in questo modo è gestita automaticamente da Joomla: quando si clicca su una voce relativa ad una sezione il menu si espande a mostrare i link a tutte le categorie sottostanti.

L'effetto nel template Beez è questo

Niente di nuovo. Anche con la vecchia versione le cose funzionavano così. Proviamo però a vedere cosa succede quando si attivano le SEF url.

Andiamo a Sito -> Configurazione e nel box Configurazione SEO impostiamo a tutte e tre le opzioni Friendly URL per i motori di ricerca, Utilizza mod_rewrite, Aggiungi il suffisso agli URL.

Se non lo si è già fatto occorre rinominare il file htaccess.txt in .htaccess nella cartella dove abbiamo installato Joomla.

Partendo dalla prima pagina del nostro sito di esempio navighiamo uno dei link del menu Articoli che abbiamo creato. Poiché tutti i link di primo livello sono di tipo Aspetto sezione, arriviamo ad una pagina contenente la lista di tutte le categorie contenute nella sezione. Controllando la barra degli indirizzi del nostro browser vedremo una url del tipo

.../alias_voce_menu_aspetto_sezione.html

Fino a qui tutto è a posto, la url è pulita, senza parametri. Va solo notato che per la creazione della url viene utilizzato il campo Alias della voce del menu non quello della sezione. Nel nostro caso abbiamo utilizzato il nome della sezione come titolo del menu e quindi i due alias sono identici, in quanto quando il campo Alias è lasciato vuoto viene automaticamente valorizzato utilizzando il campo Titolo corrispondente.

Se la spiegazione non è chiara (il che, devo ammetterlo, è piuttosto probabile) provate a costruire un sito di prova con una struttura simile al nostro sito di esempio e fate qualche esperimento cambiando i valori dei campi Alias delle voci di menu e delle sezioni e categorie e verificando come cambiano le url.

Ma il punto più importante non è questo.

Siamo arrivati ad una pagina che mostra l'elenco delle categorie contenute in una sezione. Diamo un'occhiata ai link su questa pagina: nel corpo della pagina abbiamo i link che conducono alle liste degli articoli di ogni categoria e strutturati in questo modo

.../alias_voce_aspetto_sezione/x-alias_categoria.html

Dove x è l'ID della categoria.

Il menu laterale si è espanso e mostra le voci di tipo Aspetto categoria con link strutturati in queso modo

.../alias_voce_aspetto_sezione/alias_voce_aspetto_categoria.html

Ora è facile capire che i link nel menu e quelli nel corpo della pagina conducono alle stesse pagine (l'elenco degli articoli della categoria). Il fatto che in una situazione come questa Joomla utilizzi il campo Alias della voce del menu per i link nel menu e il campo Alias della categoria per i link nella pagina, porta ad un problema di duplicazione di contenuto: una stessa pagina è raggiungibile, e quindi indicizzabile dai motori di ricerca, sotto due url diverse.

Non voglio affrontare l'argomento se la duplicazione di contenuto possa portare a vere e proprie penalizzazioni di un sito, oppure i motori di ricerca (Google in particolare) si limitino a filtrare ed escludere dall'indice i doppioni senza altre conseguenze. Da quello che leggo in giro le opinioni sul punto non sono sempre concordi.

In ogni caso, motori di ricerca a parte, questa situazione crea una struttura del sito poco lineare ed ordinata.

Quello che abbiamo visto è solo un esempio, ma ci sono altre situazioni in cui si genera contenuto duplicato: per esempio se si inserisce una voce Aspetto articolo in un menu, il link all'articolo avrà una struttura diversa da quello presente sulla pagina con l'elenco degli articoli della categoria. Quindi anche in questo caso avremo più url per uno stesso contenuto.

Va detto per precisione che nelle stesse situazioni anche le url standard (con i parametri) generano contenuto duplicato. Ne ho parlato in relazione alle url SEF solo perché, essendo queste più semplici, la cosa è resa molto più evidente e comprensibile.

Questa è la situazione. Soluzioni personalmente non ne ho trovate, almeno non per Joomla in configurazione base. Resta da vedere se il problema sarà risolto da componenti SEF di terze parti. Qualcosa comincia a vedersi anche per Joomla 1.5, ma ne parlerò dopo aver fatto qualche test.

3 commenti:

Zeno ha detto...

è stato molto utile leggere questa guida, grazie. migliore e più diretto di tanti sparsi in rete.
devo creare un sito con jommla 1,5 ed ero in alto mare. grazie mille

Anonimo ha detto...

non solo è vero quello che dici tu, ma se per caso hai due categorie uguali (con lo stesso nome, che so, "alimentazione") in due sezioni diverse (tipo "cani" e "gatti") e hai attivati le url semplificate, i due indirizzi coincidono, facendoti vedere sempre la stessa pagina (ma con il mod_rewrite disabilitato, perché sono in locale, da remoto dovrei verificare)

Massimo ha detto...

Mi sembra strano perché sui link alle categorie di solito è incluso un identificatore numerico.
Forse può succedere con link diretti alle due categorie da voci di menù diverse con lo stesso titolo. Non ho mai fatto prove neppure io, in questo caso credo si possa fare in modo che le due categorie con lo stesso nome abbiano almeno gli alias diversi.

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.