Guida SEO per Joomla 2.5


SEO per Joomla
Una guida per ottimizzare il CMS per i motori di ricerca.
In Rete circola voce che WordPress consenta di creare siti più “indicizzabili” di Joomla. Non sono d’accordo. Con Joomla, se ben configurato, si possono ottenere ottimi risultati; basta sapere solo come e cosa fare per renderlo “seo friendly”. Questa guida ha l’obbiettivo di spiegare come ottimizzare lato Seo un sito in Joomla.Guida -SEO Joomla GT Enthous


Configurazione del Cms

Partiamo dal Pannello di Amministrazione di Joomla e clicchiamo su “Sito-Configurazione Globale”.
configurazione gloabale

Configurazione gloabale

Vedremo questa schermata che, per comodità, dividiamo in tre parti.La prima è “Impostazioni Sito”. Qui è possibile scrivere il nome del sito e impostare altre opzioni: se vogliamo mettere il sito offline, caricare un’immagine per personalizzare la pagina offline, ecc. Il mio consiglio è di inserire il nome dell’azienda nel campo “Nome del sito” che apparirà come parte invariabile nel title di tutte le pagine.
impostazioni sito

Impostazioni sito

Ecco la seconda parte della pagina, presente sulla destra, che ha titolo “Impostazioni SEO”.
Impostazioni seo

Impostazioni seo

Presenta diverse opzioni:
  • Attiva URL SEF: permette di rendere le url “parlanti” o leggibili; in altre parole se impostato su “No” avremo url simili a: www.nomesito.ti/index.php?option=com_content&view=article&id=2&Itemid=109&lang=it. Se lo impostiamo su “Sì” allora la nostra URL diventa www.nomedelsito.it/index.php/chi-siamo, ossia una Url più leggibile.
  • Riscrivi URL SEF: per fare questa opzione dobbiamo rinominare il file htaccess.txt in .htaccess se abbiamo il nostro sito su un server Apache, mentre se abbiamo un server IIS 7 (che tra le altre cose sconsiglio vivamente installare Joomla su un server di questo tipo) allora dobbiamo rinominare il file web.config.txt in web.config e installare il modulo IIS URL Write prima dell’attivazione.
  • Suffisso URL: permette di aggiungere alla fine delle nostre URL il suffisso .html
  • L'ultima voce, “Alias Unicode”, consente di scegliere quale impostazione usare per il set di caratteri predefinito: può essere “Alias Unicode” o, in alternativa, “Translitterazione”, che è l’opzione predefinita e non è quindi necessario selezionarla. Qui possiamo impostare anche gli alias per i titoli degli articoli. Con questa funzione è possibile ottenere una Url come questa: http://example.com/ 所有 一起. Ricordo che per i siti occidentali è ininfluente.
Considerazione.Perché riscrivere le URL? In termini di posizionamento non cambia molto, ma è un segno di attenzione verso l'utente del nostro sito che, ad esempio, se decide di regalarci un link copierà sul suo sito una Url più leggibile, amichevole.
Ora veniamo all’ultima parte della schermata, chiamata “Impostazioni Metadata”.
Impostazioni meta

Impostazioni meta

Qui abbiamo la possibilità di impostare il meta robots in modo generale ossia su tutto il sito e nella maggior parte dei casi è meglio non cambiarlo; altrimenti possiamo scegliere tra:
  • Index, Follow
  • Noindex, follow
  • Index, Nofollow
  • Noindex, Nofollow
Possiamo impostare anche il meta “description” del sito e il meta “keywords” (da non usare, perché Google e gli altri motori di ricerca non lo considerano e, in alcuni casi, sembra sia più negativo che positivo).Ci sono altre impostazioni che non considero importanti e, personalmente, non le modifico mai. Sulla base delle diverse esigenze si può impostare su “No” il “Mostra meta tag Author”. Il mio consiglio è di non impostare il meta description “generale”, ma di impostarlo pagina per pagina per evitare meta description duplicate.Una volta configurate queste impostazioni, la prima cosa che consiglio è di modificare il file robots.txt cancellando la riga
Disallow: /images/
perché potrebbe essere interessante posizionarsi con le immagini e se lasciamo attiva l’istruzione diciamo a Google e agli altri motori di ricerca di non andare a “vedere” il contenuto della cartella delle immagini. Sinceramente non capisco perché il team di sviluppo di Joomla non la cancelli di default, come molti chiedono (Il Mondo è bello perché è vario, e io aggiungerei anche avariato ).

Sitemap

È arrivato il momento di creare una sitemap. I motori di ricerca “richiedono” un “aiuto” per capire la struttura del sito. Nella maggior parte dei casi, uso il componente Xmap in prima battuta perché è free, ma anche perché è fatto veramente bene ed è possibile “implementarlo” grazie ai numerosi plugin - free e a pagamento - che permettono di aggiungere alla nostra sitemap anche contenuti “terzi”, ossia di altri componenti come ad esempio k2, Virtuemart etc etc.Ora vediamo come configurare il nostro componente Xmap. Dopo averlo installato andiamo in “Componenti-Xmap”:
Sitemaps manager

Sitemaps manager

Clicchiamo su “Nuovo” e avremo una nuova schermata dove impostare le varie funzioni.
New sitemap

New sitemap

  • Diamo un nome alla sitemap (1)
  • Settiamo lo “Stato” su Pubblicato (2)
  • Se vogliamo, inseriamo una descrizione della sitemap (3)
  • Selezioniamo i menu da aggiungere alla sitemap: qui - se abbiamo un sito in multilingua - è importante selezionare i contenuti in italiano; faremo poi una sitemap per ciascuna lingua (4)
  • Possiamo impostare la priorità in base al tipo di contenuti (5)
  • Impostiamo la frequenza di passaggio dello spider (anche se è lui a decidere se e quando passare) (6)
 Conclusa l'operazione, selezioniamo il Tab “Extensions”:
Tab extension

Tab extension

Cliccare la prima voce “Xmap – Content Plugin” che permette di aggiungere i contenuti creati (gli articoli di Joomla) e lo attiviamo. Di solito nella maggior parte dei siti, io non modifico le altre impostazioni del plugin. Gli altri plugin li attiviamo solo se necessario, ad esempio se abbiamo installato il componente Virtuemart per gestire un e-Commerce allora dobbiamo attivare e configurare il relativo plugin. Se abbiamo installato componenti non compresi nella lista, possiamo cercarli in questa directory.Ora che abbiamo impostato il tutto non ci resta che salvare. Veniamo portati ad una schermata di Xmap simile a questa:
Xmap

Xmap

Cliccando dove indicato dalla freccia generiamo la sitemap in formato xml.Il componente permette anche di creare una sitemap in formato “html”: basta andare nella gestione del menu, creare una nuova voce e vedrete una schermata simile a questa:
Seleziona voci di menu

Seleziona voci di menu

In questo modo possiamo visualizzare la sitemap sul nostro sito. Non ci rimane che inviarla a Google Strumenti per i Webmaster (www.google.com/webmasters/tools/?hl=it) e a Bing (www.bing.com/toolbox/webmaster).Xmap è un’estensione molto diffusa, ma nulla vieta di provarne altre: http://extensions.joomla.org/extensions/structure-a-navigation/site-map

Metadati dei contenuti

Ora vediamo come andare ad impostare i metadati e a personalizzare i titoli dei contenuti e delle categorie. Dopo aver creato i nostri contenuti, possiamo creare le diverse voci del menu.
Nuova voce di menu

Nuova voce di menu

Nella parte di destra abbiamo la sezione “Opzioni visualizzazione pagina”: alla voce “Titolo pagina Browser” andremo a scrivere il titolo personalizzato; ad esempio, la voce di menu che ho creato è “Chi siamo”, ma un titolo come questo non è molto significativo e dobbiamo ottimizzarlo per gli utenti e ai fini del posizionamento.Ora vediamo come andare e inserire il meta tag “description” nella singola pagina: selezioniamo il tab “Opzioni metadata”, come da screenshot.
Opzioni metadati

Opzioni metadati

In questo campo inseriamo una descrizione. Io cerco di fare sempre un riassunto di quello che l’utente leggerà nella pagina. Di solito cerco di mettere la stessa parola chiave del titolo perché i principali motori di ricerca tendono a evidenziare la parola chiave se presente nella description. Ricordo che la description viene poi mostrata nei risultati dei motori di ricerca e quindi se è scritta in modo interessante, originale è più probabile che un utente clikki.Dopo abbiamo il campo meta keyword che come detto precedentemente è meglio lasciarlo sempre vuoto perché non viene considerato e in alcuni casi può essere più negativo che positivo. L’ultima voce “interessante” è quella del Robots che è possibile impostare una voce per ogni singola voce di menu e quindi se vogliamo o abbiamo necessità di cambiarla è possibile farla da questa schermata.
Importante: con Joomla 2.5 è possibile impostare i meta anche all’interno del singolo articolo o categoria, ma nel caso in cui ci sia una voce di menu che “lega” questo contenuto “vince” sempre quello che abbiamo scritto nel campo “Meta Description” dell’articolo. Quindi se compiliamo la “Meta Description” anche nella voce di menu questa non viene considerata. Vediamo nello screenshot dove andare a impostare la description del singolo articolo.
Nuovo articolo

Nuovo articolo

Anche qui come si può vedere è possibile impostare il meta keywords e andare ad impostare il meta robots perché magari abbiamo la necessità di non indicizzare questo contenuto o fare in modo che tutti i link che ci siano in questa pagina siano nofollow.Ricordiamo che questi interventi servono a poco se abbiamo contenuti di scarsa qualità, duplicati (copiati) o con poco testo. Di solito le pagine dovrebbe essere costituite da contenuti ricchi e interessanti, ma dipende sempre dal contesto e dal settore; tuttavia, un minimo di contenuto ci deve sempre essere altrimenti Google e gli altri motori di ricerca non “riescono” a capire il significato della pagina e quindi potrebbero far fatica a posizionarlo in modo ottimale.Se preferite compilare i metacontenuti da una schermata unica e non pagina per pagina, qui potrete trovare un po’ di estensioni (anche se personalmente le sconsiglio queste estensioni perché è sempre meglio farlo in modo manuale): http://extensions.joomla.org/extensions/site-management/seo-a-metadata/meta-data

Componenti per il rewrite

Con la versione Joomla 2.5 la riscrittura delle url è una funzione nativa e si basa sull’alias dell’articolo e della categoria, invece che sulla voce di menu. Personalmente, cerco di usare solo il rewrite nativo: in primo luogo perché funziona bene, in secondo luogo perché meno estensioni installiamo e minori probabilità abbiamo di incorrere in problemi di sicurezza legati alla singola estensione che, come buona norma, dobbiamo ricordarci di aggiornare sempre.Questa procedura di aggiornamento delle estensioni è stata notevolmente migliorata con la versione 2.5. Molte estensioni permettono un aggiornamento automatico; ossia Joomla si accorge che è uscita una nuova versione dell’estensione o anche di Joomla e ti avvisa nel pannello di amministrazione che è presente un aggiornamento. Vedi il seguente screenshot:
Quick icons

Quick icons

In questo caso c’è un aggiornamento di Joomla (freccia 1) - sto usando la versione 2.5.8 ed è disponibile la 2.5.9 - e poi a destra (freccia 2) vedo che ci sono 3 aggiornamenti disponibili. Clicco sull'icona e vado in “Gestione estensioni - Aggiorna”:
Gestione estensioni

Gestione estensioni

Ora devo solo selezionare le tre voci e cliccare sul pulsante “Aggiorna” (in alto a destra) e il sistema andrà a scaricare gli aggiornamenti per installarli. Ricordiamo che prima di fare questa operazione è sempre meglio eseguire un backup del sito e del database, per evitare problemi e possibili inconvenienti.Nel caso in cui, per qualsiasi motivo, non funzioni il rewrite nativo allora possiamo installare un’estensione. Ne troviamo diverse qui. Ne ho provate alcune e secondo il mio modesto parere le migliori sono (non in ordine di importanza):
  • Sh40SEF
  • AceSef
  • Artio, conosciuto come JoomSEF
Ovviamente, la valutazione deve tener conto delle diverse esigenze.

Ottimizzazione del codice

Perché ottimizzare il codice? L’obiettivo è di ridurre il tempo di caricamento delle pagine del sito che, lo ricordiamo, è uno dei fattori che determina il posizionamento di una pagina.Attenzione:
  • l'ottimizzazione del codice è un'attività riservata solo a utenti avanzati;
  • i risultati ottenuti dipendono anche dal server e della sua configurazione;
  • il peso di una pagina dipende dal template: se “ricco” di JavaScript, Css e quant’altro allora l'ottimizzazione del codice è indispensabile; se invece il template è stato costruito a regola d’arte allora il miglioramento delle prestazioni è ridotto.
Le principali estensioni le troviamo qui:http://extensions.joomla.org/extensions/core-enhancements/performance/site-performance

JCH Optimize

Il plugin che consiglio è JCH Optimize che tra le varie opzioni permette di
  • combinare javascript/css in singole chiamate,
  • combinare le immagini di sfondo in sprite,
  • minificare e comprime con gzip i file combinati,
  • escludere file selezionati dall'unione,
  • fare il defer dei javascript
e di conseguenza velocizza il nostro sito perché permette di ridurre al minimo le richieste http.

JBetolo

Un altro plugin interessante è jBetolo che permette di ottimizzare il sito e può essere configurato in base alle nostre esigenze per
  • combinare js e css
  • comprimere js, css e fonts
  • minificare js, css e html
  • servire i file generati con le intestazioni http corrette
  • caricare i file nella tua CDN
  • cachare i contenuti statici
  • escludere jBetolo in base a Browser, dispositivo, parametri url e componenti
  • utilizzare risorse trasformate in data URI all'interno dei css combinati
  • risolvere conflitti e dipendenze di js e css facendo scegliere la sequenza di caricamento
  • rimuovere js e css non desiderati dalle pagine
  • spostare script inline nell'header, footer di una pagina
  • spostare i js combinati a fine pagina o nell'header.

Lazy Load for Joomla

Un altro plugin è Lazy Load for Joomla. Con questo plugin le immagini vengono caricate solo se visualizzate dall'utente – ad esempio quando l’utente scorre la pagina. In questo modo la pagina è più leggera e si riducono i tempi di caricamento.

JotCache

Infine suggerisco un plugin che permette di gestire la cache in modo ottimale. L'estensione si chiama “JotCache”.JotCache è una soluzione avanzata per la cache delle pagine di Joomla 1.5, 2.5 e 3.0. L’estensione è composta da un plugin e dal componente e permette di gestire diversi tipi di estensioni: moduli e componenti statici o dinamici. Il plugin JotCache sostituisce il plugin nativo di Joomla per la gestione della cache e permette notevoli miglioramenti.Ricordiamo che queste sono solo alcune delle estensioni che permettono di migliorare il codice e la velocità di caricamento delle pagine, ma che vanno provate e testate con pazienza e attenzione. Non dobbiamo caricarli in un sito in produzione, ma provarli in un ambiente di test.

Contenuti duplicati

Una nota dolente, perlomeno fino alla versione 1.5 di Joomla. Fortunatamente con la 2.5 molte cose sono cambiate e migliorate. Ricordo che per Google e gli altri motori di ricerca un contenuto duplicato è sostanzialmente un parte di testo identica o molto simile (non basta cambiare due parole perché Google si è evoluto e si accorge della manipolazione), che è presente su più pagine all’interno dello stesso sito o su altri siti.Ad esempio, se il nostro sito è raggiungibile come “nomedominio.it”, “www.nomedominio.it” e “www.nomesito.it/index.php” allora abbiamo un problema di duplicazioni dei contenuti, perché le tre Url portano alla stessa pagina.Possiamo avere un problema di duplicazione dei contenuti nei siti di eCommerce, quando diamo all'utente la possibilità di cambiare la modalità di visualizzazione dei contenuti; ad esempio se in base al prezzo, alla popolarità o alla data.La domanda ora sorge spontanea: come faccio ad evitare questi problemi o a risolverli?Intanto vorrei segnalare alcuni siti dove è possibile scoprire se abbiamo delle pagine duplicate o se ci sono siti che ci hanno “copiato”: Poi possiamo usare dei software come Xenu’s Link Sleuth e Screaming Frog che permettono di “scandagliare” il nostro sito e intercettare eventuali problemi.Per risolvere un problema di duplicazione possiamo anche impedire il crawling o l’indicizzazione delle pagine o delle sezioni del sito che portano ai contenuti duplicati, tramite il file robots.txt (esempio: Disallow : /* . pdf$ Disallow : /*?) o il meta “NoIndex” per le pagine che impostiamo, come abbiamo visto precedentemente, dai singoli articoli o dalle categorie.Un altra soluzione è il tag rel= “canonical” che permette di scegliere la pagina “originale” ed escludere le “copie” o pagine simili. Questa “tecnica” è molto interessante e sembra verrà implementata nelle prossime versioni di Joomla. In teoria dovrebbe già essere attiva ma ho potuto verificare che, ad oggi, sembra non essere ancora perfettamente funzionante (questo è un altro motivo per cui non si deve usare la versione 3.0 proprio perché è in fase di “test” e dobbiamo aspettare la 3.5 - la versione “a lungo termine” - e quindi perfettamente funzionante).Vi segnalo due estensioni per implementare il tag rel= “canonical” ne sito: Anche la paginazione può creare contenuti duplicati, ma il problema si risolve facilmente, implementando i tag rel= “prev” e rel= “next”.Con la versione 2.5 di Joomla è stato risolto il problema della duplicazione dei contenuti dovuti alla gestione dei menu. Prima potevi creare voci di menu con lo stesso nome e farle puntare alla stessa risorsa, ma ora non è più possibile (la voce di menu non verrebbe salvata e un “alert” ci avviserebbe del problema). Se avessimo bisogno di due voci di menu identiche, basterebbe creare un’alias della voce di menu che, in altre parole, è una specie di collegamento alla voce di menu principale.

File .htaccess

Vediamo come gestire il file .htaccess per migliorare le prestazioni del nostro sito. Joomla di solito fornisce un file .htaccess “precompilato”; io consiglio di integrarlo con i seguenti codici:
Header unset Pragma

# Settare gli Expires headers e cache control
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A0

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
</FilesMatch>

# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A604800
</FilesMatch>

# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
ExpiresDefault A10800"
</FilesMatch>

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>

# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>

# NEVER CACHE
<FilesMatch "\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

# comprimere i file
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Disattivare ETags
Header unset ETag
</IfModule>

# Disattivare gli ETags
FileETag none

Joomla 3.0, 3.1 e 3.2

Joomla 2.5
Terminerà il suo ciclo di vita a giugno 2014.
Qualcuno si chiederà perché una guida Seo per Joomla 2.5, quando da settembre 2012 è uscita la versione 3.0, per marzo 2013 è prevista la 3.1 e a settembre 2013 la 3.2. La risposta è semplice: perché queste tre versioni sono definite “a ciclo breve” e, come dichiarato dallo stesso team di sviluppo di Joomla, non vanno usate per i siti in produzione, ma dovrebbero servire agli sviluppatori di estensioni e di template per “adeguare” estensioni e template alla versione 3.5 che, secondo le previsioni, sarà pronta per marzo 2014.Inoltre dobbiamo considerare che la versione 2.5 terminerà il suo ciclo di vita a giugno 2014. Abbiamo ancora molto tempo d’avanti e possiamo lavorare tranquillamente con questa versione, anche perché il team di sviluppo di Joomla ha dichiarato (e speriamo non si rimangi la parola data) che l’aggiornamento dalla 2.5 alla 3.5 sarà indolore e gestibile via pannello amministrativo con un semplice click. Dovremo poi aggiornarle estensioni e il template.

Conclusione

Spero di averti dato utili suggerimenti che potrai mettere in pratica in modo vantaggioso e che il tuo sito in Joomla possa ricevere dei grossi benefici dopo questi suggerimenti.Concludo ringraziando particolarmente Andrea Pernici dello staff di Gt che mi ha dato la grandissima opportunità di scrivere questa guida e Dario Pellizzari che mi ha dato una mano nella revisione.