L’utilizzo di un tag contenente l’URL canonico delle pagine è una pratica SEO molto utilizzata, che permette di evitare il problema degli url duplicati, cosa che accade di frequente utilizzando i CMS, che generano pagine dinamiche spesso raggiungibili mediante diversi indirizzi (si pensi ad esempio alle pagine di riepilogo di un blog, che contengono ciascuna numerosi articoli ed utilizzano un sistema di paginazione, esse avranno un url diverso per ogni pagina).

Per ovviare a questo problema, si inserisce uno specifico link nella sezione HEAD di ognuna delle pagine, che punterà alla versione “canonica” della pagina, ovvero quella che vogliamo sia indicizzata dal motore di ricerca (le altre pagine verranno così ignorate). Il link avrà la seguente sintassi:

<link rel="canonical" href="https://esempio.com/categoria/titolo-articolo" />

Diversamente da quanto accade in WordPress o in Drupal, il core di Joomla non mette a disposizione una modalità automatica per generare questo tipo di link, sebbene essi siano piuttosto importanti per la SEO, non tanto per i singoli articoli, i cui url sono generati in maniera molto pulita dal nuovo sistema di routing implementato a partire dalla versione 3.8, quanto per le categorie, che invece hanno un sistema di visualizzazione con paginazione che genera dei duplicati.

Il problema può essere risolto utilizzando delle estensioni presenti nella Joomla Extension Directory, tuttavia sono soluzioni che vanno poi tenute aggiornate (molte non funzionano con il nuovo Joomla 4.0) ed in alcuni casi sono a pagamento, quindi potrebbe essere preferibile una soluzione manuale basata sulla funzionalita dei “campi aggiuntivi“.

Vediamo passo per passo la procedura, sia nella versione classica per gli articoli, che in quella per le categorie che, come accennato, spesso risulta essere necessaria per evitare problemi con l’indicizzazione.

Inserire l’url canonico in un articolo

Per prima cosa si deve creare un campo personalizzato che contenga (lato back office, nella scheda di inserimento degli articoli) l’URL canonico.
Per ottenere un risultato più pulito ed ordinato possiamo, sebbene non sia strettamente necessario, creare un gruppo di campi in cui inserire il campo aggiuntivo che conterrà il canonical.
La voce per crearlo si trova all’interno del menù contenuti, come da figura:

Menu di joomla con le voci per i campi aggiuntivi

Selezioniamo quindi “Gruppi di campi aggiuntivi” e quindi il pulsante “nuovo”, creando il gruppo che potrà essere denominato “SEO“:

Creazione del gruppo di campi aggiuntivi

Creato il gruppo, passiamo ad impostare il campo personalizzato che conterrà l’URL canonico, selezionando la voce “campi aggiuntivi” dal menù contenuti:

Campi aggiuntivi
Creazione del campo aggiuntivo

Nelle caselle della maschera vanno impostati i seguenti valori:

  • Tipo: selezionare URL per avere un controllo formale sul testo inserito, in questo modo se si inserisce per errore un url non valido il sistema non permette di continuare.
  • Nome, etichetta e descrizione: inserire i valori che si desidera siano poi visualizzati in fase di inserimento dell’url.
  • Obbligatorio: No.
  • Usa solo in sottomodulo: No.
  • Valore predefinito: lasciare in bianco.
  • Protocolli: selezionare HTTP e HTTPS, che sono gli unici tipi di url validi che verranno ammessi.
  • URL relativi: selezionare No in quanto andrà inserito un url completo compreso di intestazione.
  • Mostra URL: Sì.
  • Gruppo del campo aggiuntivo: selezionare il gruppo appena creato, in questo esempio il nome è SEO.
  • Categoria: Tutte.
  • Accesso: Public.

Nella scheda Opzioni lasciare vuote o inalterate la maggior parte delle voci, ad eccezione di:

  • Modificabile in: scegliere entrambi, questo permette di modificare sia da backend che eventualmente dal frontend (solo dall’utente amministratore o eventuali utenti abilitati).
  • Visualizza campo: scegliere non visualizzare automaticamente, che consente di non mostrare il campo direttamente nel contenuto dell’articolo.

Una volta creato il campo aggiuntivo possiamo controllare la sua effettiva implementazione andando a modificare un articolo del nostro sito, e verificando che sia presente la nuova scheda che lo contiene (nell’esempio la scheda si chiama SEO):

Scheda campo aggiuntivo
Scheda contenente il campo aggiuntivo nella finestra modifica articolo

Come si può notare, la nuova scheda si posiziona tra Opzioni e Pubblicazione, con all’interno il campo per poter inserire l’URL canonico.
Inserendo all’interno del campo l’url completo, comprensivo di http:// o https:// si termina il lavoro dal lato backoffice.

A questo punto occorre procedere con l’inserimento del campo appena creato all’interno del codice web delle pagine create da Joomla. Per poter eseguire questa operazione si deve intervenire sui file del template, la cui modifica diretta è però sconsigliata in quanto ad ogni nuovo aggiornamento dello stesso si perderebbero tutte le modifiche fatte ed andrebbero ripetute.
Il metodo consigliato è quello di procedere con un override, una procedura standard di Joomla che consente di creare una copia di alcuni file utilizzati dal template, in modo che possano essere modificati a piacere senza intaccare il codice originale, e che quindi permettano di mantenere le personalizzazioni anche a seguito di aggiornamenti del tema.

Per creare l’override si entra nella maschera relativa ai template da Sistema -> Template del sito -> *nome template* Dettagli e File, quindi si seleziona la scheda Crea override.
Qui si apre una schermata che contiene tutti i Moduli, Componenti, Plugin e Layout su cui può essere effettuato un override, selezionare com_content nel riquadro Componenti ed infine la sottovoce article, come indicato in figura:

Creazione di un override


Il sistema avvisa che è stato creato un override, nella cartella *nome template*/html/com_content/article/ e, se la procedura è andata a buon fine, si potrà trovare il file da modificare, chiamato default.php, all’interno della cartella stessa.
Nel caso in cui il file non sia presente è possibile andarlo a recuperare manualmente, copiandolo (senza spostarlo) dalla sua posizione originale, che è components/com_content/tmpl/article/default.php.

A questo punto si procede con l’override vero e proprio, aggiungendo al default.php il codice che permette di aggiungere il link canonico all’html dell’articolo, che è il seguente:

//Cerca tra i campi aggiuntivi il campo dell'URL canonico
foreach ($this->item->jcfields as $field) {

        //Utilizzare il valore presente nel campo descrizione del campo aggiuntivo
	if ($field->title === 'Canonical URL') {
		//Controlla che il campo non sia vuoto e quindi inserisce il codice
		if ($field->rawvalue !== '') {
			$canonicalLink = '<link rel="canonical" href="' . $field->rawvalue . '" />';
			$document = JFactory::getDocument();
			$document->addCustomTag($canonicalLink);
		}
		continue;
	}
};

Questo codice può essere inserito in qualsiasi punto del file default.php, purché sia successivo all’istruzione defined(‘_JEXEC’) or die;

A questo punto la procedura è completata, e si possono osservarne i risultati aprendo l’articolo (lato frontend) con un browser e visualizzando l’HTML della pagina, si noterà la presenza della riga contenente l’url canonico.

Codice HTML dell’articolo con evidenziato il link canonical inserito

Inserire l’url canonico in una categoria

Come già accennato, il problema degli url canonici in Joomla è maggiore nelle pagine di riepilogo delle categorie che in quelle degli articoli, perché utilizzando la visualizzazione “Categoria blog” si ottiene un certo numero di pagine contenenti articoli della stessa categoria, entrambi avranno lo stesso url al quale verrà aggiunto un suffisso con la sintassi https://www.esempio.com/categoria?start=*numero articolo di partenza*.

Appare evidente come in questo modo vengano create varie versioni della stessa pagina, tanto maggiori quanti saranno gli articoli presenti nel sito, con il motore di ricerca che le considererà come duplicati.

L’aggiunta del rel=”canonical” è quindi assolutamente raccomandata in questo caso, con la procedura che è molto simile a quella già vista per gli articoli.

L’inserimento del gruppo di campi aggiuntivi e del conseguente campo aggiuntivo avviene in maniera identica, avendo però l’accortezza, nella maschera di inserimento, di selezionare “Categoria” invece di “Articolo” nel menù a tendina posto in alto a sinistra.

Inserimento di campi aggiuntivi per una categoria

Altra cosa da ricordare è che non si può riutilizzare più volte lo stesso nome, quindi se si è già utilizzato il nome “Canonical URL” per gli articoli, sarà necessario inserirne uno diverso per le categorie (nell’esempio Canonical URL categorie”).

Terminata la procedura backend, le cui istruzioni sono presenti nell’analoga procedura già descritta per gli articoli, si procede lato frontend con la creazione dell’override, che sarà effettuato sempre in maniera similare a quello già visto ma sulla voce category di com_content.

Creazione di un override per le categorie

In questo caso la cartella con l’override si chiamerà *nome template*/html/com_content/category/ ed il file da modificare blog.php (attenzione in questo caso non va modificato default.php, che pure sarà presente nella cartella).

Anche per le categorie è possibile recuperare manualmente il file nel caso in cui non sia presente, copiandolo da components/com_content/tmpl/category/blog.php.

Il codice da aggiungere, sempre da posizionare dopo l’istruzione defined(‘_JEXEC’) or die; è molto simile a quello già visto per gli articoli, con l’accortezza di sostituire category ad item nel ciclo foreach:



//Cerca tra i campi aggiuntivi il campo dell'URL canonico
foreach ($this->category->jcfields as $field) {

        //Utilizzare il valore presente nel campo descrizione del campo aggiuntivo
	if ($field->title === 'Canonical URL categorie') {
		//Controlla che il campo non sia vuoto e quindi inserisce il codice
		if ($field->rawvalue !== '') {
			$canonicalLink = '<link rel="canonical" href="' . $field->rawvalue . '" />';
			$document = JFactory::getDocument();
			$document->addCustomTag($canonicalLink);
		}
		continue;
	}
};

Applicate le modifiche si potrà notare la presenza del link canonico all’interno delle pagine delle categorie.

In conclusione è importante ricordare come questa modifica non sia automatica, e quindi nel caso in cui si dovesse cambiare per un qualsiasi motivo l’url di uno o più articoli (o categorie) è necessario ripetere la modifica anche sul nuovo campo che contiene l’url canonico, per non incorrere in grossi problemi di indicizzazione.

La procedura, pur non essendo immediata e semplicissima, consente tuttavia di effettuare la modifica mantenendo il pieno controllo su di essa, cosa non sempre possibile con le estensioni che potrebbero generare problemi in futuro, ad esempio nel momento in cui si aggiorna ad una versione più recente (come già accennato in quest’ultimo aggiornamento alla 4.0 molte estensioni sono divenute inutilizzabili ed installarle provocherebbe un crash del sistema).

Categorie: JoomlaSEO

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *