Ottimizzare SMF per il SEO

Io credo che il miglior PHP sia (Simple Machines Forum); un motore per forum del tutto gratuito e personalizzabile che è anche il motore del nostro forum, quindi potete vederlo direttamente all’opera. Molti utenti che utilizzano e apprezzano SMF si trovano però a farsi sempre la fatidica domanda: «ma questo forum è ottimizzato per i motori di ricerca?». Ovviamente la risposta, quando lo si installa la prima volta, è no, non è inizialmente SEO friendly, ma può essere reso tale con pochi accorgimenti e qualche mod ad hoc.

Simple Machines Forum Logo

Vediamo allora come migliorare il comportamento di SMF per renderlo “amico dei motori di ricerca”. In pochi passi potremo così sistemare tutte le pecche che lo affliggono dalla nascita e che in verità sono facilmente aggirabili. Ricordate però che la prima regola è quella che molti fanno finta di non capire; prima di tutto vengono i contenuti: «Content is King!».

Robots.txt e i contenuti duplicati

robots.txt

Il primo passo è sicuramente quello di evitare ai motori la lettura di contenuti duplicati. Infatti, questi ultimi non vedono di buon occhio i siti che abbiano al loro interno decine, se non centinaia di contenuti che si ripetono, questo genere di comportamento viene interpretato come la volontà del web master di forzare il motore a indicizzare il dato contenuto e quindi un crawler intelligente come quello di , previene l’indicizzazione di quelle pagine dove questo si verifichi. Questo avviene in SMF perché ogni messaggio è direttamente accessibile e in ogni pagina di un thread ci sono decine di messaggi, quindi anche decine di link che puntano comunque allo stesso contenuto. Inoltre c’è una visualizzazione separata per ogni thread del forum adibita alla stampa dell’intera discussione, la quale riporta l’intero contenuto senza l’ausilio di pagine.

Google risponde alle domande frequenti in merito ai contenuti duplicati

=== Multiple Homepage URL Issues ===

This means that you have things like;
http://www.example.com
http://www.example.com/index.html
http://www.example.com/homepage.html
http://www.example.com/default.aspx
all showing the same content/loading the same file.

=== So why is this bad? ===

This means that you are showing the same content under numerous URLs.

Google tracks things by their URL.
That means all scores/ranks etc. are based on that 1 URL.
If you have the same content under multipel URLs – you may have your “scores” divided between those URLs, instead of consolidated to a single URL.

Google tries to avoid showing Duplication to it’s users.
Searchers do not want to see tons of identical results in the SERPs.

Not a Penalty people, it just picks 1 out of X URLs and shows that.
The one it shows may/may not be your “best” or “strongest” URL – so your rankings may vary/fluctuate … and if it picks a “weaker” URL – you may not rank at all.

Canonical issues can cause Duplication and result in a weaker site and poor rankings/performance.
Got it?
Good.

Prendiamo ad esempio questa discussione sul nostro forum, un singolo messaggio della medesima discussione e qui il documento per la stampa. Come vedete i contenuti si ripetono per tutto il forum e questo a Google et similia non piace affatto. Per risolvere questo problema basta indicare ai motori di ricerca come comportarsi in questi casi e farli saltare al contenuto completo e non ai vari pezzi o alle diverse versioni.

Il file robots.txt [wikipedia] è la soluzione a questo problema e indica ai motori, divisi per user-agent, come comportarsi mentre scorrono le pagine del vostro sito. Ricordate di inserire un solo robots.txt nel vostro dominio e di indicarlo, ove possibile, direttamente al motore. Un esempio può essere quello degli strumenti per webmaster di Google. Normalmente il forum sta in una sottocartella /forum/ del vostro dominio, quindi vediamo di seguito come prevenire alcune indicizzazioni non desiderate:

User-agent: *
Disallow: /forum/*sort=*
Disallow: /forum/*msg*
Disallow: /forum/index.php?action=activate*
Disallow: /forum/index.php?action=admin*
Disallow: /forum/index.php?action=calendar*
Disallow: /forum/index.php?action=emailuser*
Disallow: /forum/index.php?action=findmember*
Disallow: /forum/index.php?action=help*
Disallow: /forum/index.php?action=helpadmin*
Disallow: /forum/index.php?action=login*
Disallow: /forum/index.php?action=mlist*
Disallow: /forum/index.php?action=modifykarma*
Disallow: /forum/index.php?action=pm*
Disallow: /forum/index.php?action=post*
Disallow: /forum/index.php?action=printpage*
Disallow: /forum/index.php?action=profile*
Disallow: /forum/index.php?action=recent*
Disallow: /forum/index.php?action=register*
Disallow: /forum/index.php?action=reminder*
Disallow: /forum/index.php?action=search*
Disallow: /forum/index.php?action=unread*
Disallow: /forum/index.php?action=unreadreplies*
Disallow: /forum/index.php?action=verificationcode*
Disallow: /forum/index.php?action=who*
Disallow: /forum/index.php?action=stats*
Disallow: /forum/index.php?theme*
Disallow: /forum/index.php?*wap*
Disallow: /forum/index.php?*wap2*
Disallow: /forum/index.php?*imode*
Disallow: /index.php?*rss*
Disallow: /forum/Themes/
Disallow: /forum/Sources
Allow: /forum/index.php?action=sitemap;xml

Per maggiori informazioni sul robots.txt e sulla sintassi da utilizzare vi rimando all’articolo A Standard for Robot Exclusion di Martijn Koster. Inoltre c’è anche questa corposa discussione sul forum ufficiale di Simple Machines che vi consiglio vivamente di leggere. Il centro webmaster di Google vi consente anche di testare per bene il vostro robots.txt ed evitare così spiacevoli errori, quindi prima di salvare il file nella root / del vostro sito vi invito a fare delle prove accurate e fare attenzione a non danneggiare irreparabilmente il vostro sito in termini di indicizzazione.

Www o non-www?

Alternative WWW e reindirizzamento SEOIn merito ai contenuti duplicati, alcuni hanno sollevato delle perplessità in merito al fatto che Google prediliga le pagine senza il www, mentre altri sostengono il contrario. Ci sono anche coloro i quali affermano che Google non veda di buon occhio la duplicazione dei contenuti tra www e non-www. La cosa che conviene fare è sempre quella di indicare chiaramente tramite gli strumenti per webmaster se il sito deve indicizzato via www o meno, poi mettere un redirect tramite il file .htaccess con mod_rewrite così da reindirizzare ogni connessione verso l’indirizzo univoco, sia esso con www o meno.

Le pagine canoniche

Divieto ai contenuti duplicati

Google sa che moltissimi siti sono affetti dal problema della duplicazione dei contenuti. Tutto ciò deriva dall’uso stesso dei CMS che dividono il sito in una moltitudine di pagine, archivi, elenchi, ecc. Questo sicuramente favorisce l’esperienza di navigazione del singolo utente ma dall’altro lato non fa altro che dare problemi agli spiders dei motori che si ritrovano a dover leggere la stessa solfa in 20 pagine diverse. Chiunque si annoierebbe, anche una macchina. Gli ingegneri di Big G hanno dunque pensato ad una possibile soluzione che preveda l’utilizzo delle pagine canoniche.

Una pagina canonica è la versione preferita di una serie di pagine con contenuti molto simili

Se Google sa che queste pagine hanno gli stessi contenuti, possiamo indicizzare soltanto una versione per i nostri risultati di ricerca. I loro algoritmi selezionano la pagina che risponda meglio alla query dell’utente. Ora, però, gli utenti possono specificare una pagina canonica per i motori di ricerca aggiungendo un elemento <link> con l’attributo rel=”canonical” alla sezione <head> della versione non canonica della pagina. Aggiungendo questo link e questo attributo, i proprietari del sito possono identificare i contenuti identici e suggerire a Google la pagina più utile tra tutte le pagine con contenuti identici, indicando di darle la priorità nei risultati di ricerca. Leggi la spiegazione completa sui contenuti duplicati direttamente sul centro webmaster di Google.

[youtube:http://www.youtube.com/watch?v=Cm9onOGTgeM&feature=player_embedded]

I tag H1

Un altro aspetto fondamentale da tenere in massima considerazione è quello di presentare ai motori delle pagine ben costruite e di far apparire in ogni pagina un titolo appropriato e dei contenuti ben strutturati ed originali. Prima di tutto bisogna sfatare il falso mito che il layout tabulare penalizzi un sito, in questo caso un qualsiasi forum con SMF: questo è totalmente FALSO! Non c’è alcuna prova del fatto che l’utilizzo di tabelle implichi una penalizzazione sul posizionamento e ci sono migliaia di siti che stanno in cima alle ricerche che confermano questo assunto.

Tolto questo sassolino dalla scarpa procediamo con l’ottimizzazione dei titoli per le nostre discussioni sul forum. Rendiamo i titoli delle pagine ben visibili anche ai motori indicandoli con un tag h1. Normalmente basta andare a modificare il file display.template.php del vostro template e andarlo a inserire manualmente in cima alla pagina, dove c’è la posizione attuale sul forum e il titolo della discussione. Ricordate di modificare di conseguenza il file style.css per rendere conforme il titolo al resto della pagina.


Lo stile dei link delle discussioni: Pretty URLs

Di default il nostro forum SMF ha una formattazione degli URL molto complessa che appare praticamente incomprensibile per qualsiasi essere umano; questa può essere resa migliore dalla modifica delle opzioni relative ai link per coloro i quali utilizzassero come server Apache. Ancora superiore a questa modifica risulta l’installazione di una mod che ormai spopola su tutti i forum Simple Machines: Pretty URLs. Vediamo in pratica la differenza tra i vari tipi di link:

  • Default SMF URLs: http://forum.skydiamond.org/index.php?topic=2969.0
  • Search Engine Friendly URLs: http://forum.skydiamond.org/index.php/topic,2969.0.html
  • Pretty URLs: http://forum.skydiamond.org/offtopic/unleaded-gas/

Come vedete con Pretty URLs avrete dei link comprensibili anche dagli umani e non solo dalle macchine e contenenti la sezione e il titolo del topic, questo consentirà anche all’utente che leggesse il link su un altro sito di capire dove andrà a finire una volta cliccato il link. Inoltre Google e i SE mostrano nei risultati il titolo, la descrizione e il link della pagina a cui puntano, quindi avere un titolo significativo aiuta anche nelle ricerche. Ci sono comunque pareri contrastanti circa la necessità o meno di tenere dei friendly URLs; io opto per averli in un formato leggibile e aborro i link di default di SMF. A voi la scelta.

I Meta Tags

Qui ci saranno i pareri più contrastanti. Non so se tutti voi abbiate presente cosa siano i meta tags, comunque una ricerca su Google vi chiarirà in un attimo di cosa stiamo parlando, quindi non sto qui a dilungarmi in spiegazioni. Comunque dobbiamo dire che i meta tags hanno costituito la base di tutta la moderna tecnica SEO. Ogni webmaster nel tempo si è preoccupato di inserire la giusta descrizione delle pagine tramite il tag description e le giuste keywords. Oggi però tali informazioni vengono molte volte snobbate e si tende a dire che queste non siano fondamentali o addirittura che i motori neanche le leggano più. Gli utilizzatori della nuova versione 2 di SMF possono tranquillamente provare la mod vBulletin Style Meta Tags che consentirà loro di aggiornare dinamicamente questi tag per ogni singola discussione. Purtroppo tale mod non funziona per la versione stabile di SMF, la 1.1.11, quindi per quelli come il sottoscritto che utilizzano quest’ultima l’unica vera soluzione a questo problema è mettersi d’impegno e andare a selezionare in ogni sezione i giusti tag da mostrare tramite programmazione condizionale in PHP. Se siete interessati ad approfondire lasciate un commento sotto e vedrò di aiutarvi nei limiti del possibile.

Il meta tag Description

Una buona soluzione per il meta tag decription mi è arrivata quasi per caso da questa discussione sul forum ufficiale di SMF. In pratica basterebbe andare a modificare l’echo del description su index.template.php, che vi consiglio di spulciarvi a dovere visto che è il cuore di un template SMF, in questo modo:

<meta name="description" content="',  empty($context['description']) ? $context['page_title_html_safe'] :  $context['description'], '" />

In questo modo però non farete altro che mettere come descrizione il titolo della discussione quando il context->description sarà vuoto. La descrizione verrà presa nelle singole board se avrete impostato una descrizione per ognuna di esse. Partendo da quest’idea ho aggiunto anche una variabile stringa PHP che sostituisse la descrizione di default in questo modo:

$default_description = "Testo della descrizione di default dell'intero forum";
echo '<meta name="description" content="', empty($context['description']) ? $default_description : $context['description'], '" />';

In tal modo avrete solo da mettere una descrizione di default in PHP, mentre il resto verrà facilmente caricato tramite il pannello della gestione delle boards. Date anche un’occhiata alla guida relativa sul Google Webmaster Tools.

Risorse

[1] Google Webmaster Central (Forum per sviluppatori web di Google)
[2] Specificy your canonical (Google Webmaster central blog)
[3] Search Engine Optimization For The Simple Machines (Jerry Bell’s blog)
[4] Making your Smf forum as SEO friendly as possible? How to Tips

tags Tags: , ,
categorieCategorie: SEO

Forge Of Empires Italia

12 Responses to “Ottimizzare SMF per il SEO”

  1. Danielsandj on gennaio 4th, 2011 05:32

    come hai fatto a integrare il forum smf nel tuo blog wordpress

  2. skydiamond on gennaio 4th, 2011 14:18

    Manualmente. Non è difficile adattare un tema per SMF. :)

  3. Alessio on gennaio 18th, 2011 07:14

    Molto interessante! Grazie!

  4. radu on maggio 4th, 2012 11:01

    ottimo articolo, complimenti!
    Ti sei scordato una cosa sola, la sitemap da inviare a Google 😉

  5. skydiamond on maggio 4th, 2012 11:31

    @radu

    Hai ragione. Penso anche che si debba iniziare a pensare ad adattare il tema in uso per la semantica dei contenuti. Non so se prima o poi avrò il tempo di fare qualche esperimento in merito.

  6. radu on maggio 4th, 2012 14:14

    Io nei miei siti basati su SMF è la prima cosa che faccio, invio la sitemap a Google e personalizzo il file robots.txt I meta tags e le descrizioni le lascio così come sono. A PrettyUrls ho rinunciato da molto perché rallentava parecchio il forum. Una cosa alla quale non ci ho mai pensato è il discorso www/ non www ma ci guarderò presto.

    p.s. quoto ogni parola della prima frase di quest’articolo 😉

  7. Fabio on maggio 16th, 2012 16:58

    Ciao, innanzitutto grazie per l’utilissimo articolo, avrei una domanda riguardo l’ultimo paragrafo, il meta description.

    Io ho un forum versione 1.1.13, come descrizione adesso ho questa:

    Ho però un problema in quanto alcune discussioni hanno il titolo troppo breve e creano un errore nel webmster tool e quindi vorrei allungarle.

    Vorrei modificarle dinamicamente in “titolo pagina + contenuto pagina (x caratteri)” dove per contenuto pagina intendo il testo dei vari post della discussione dal primo e fino ad x caratteri.

    So che è una questione di conoscere il linguaggio php ma purtroppo non è il mio caso, ho provato a cercare online (anche in inglese) ma non ho trovato niente, tu sapresti aiutarmi?

  8. skydiamond on maggio 16th, 2012 23:47

    @Fabio

    L’unica possibilità è sicuramente andare a richiamare il contenuto e troncarlo con PHP, non penso. Il problema è tutto lato server.

    Per informazioni dettagliate prova a contattarmi in privato e vediamo cosa si può riuscire a fare. 😉

  9. skydiamond on agosto 17th, 2012 18:52

    C’è anche questa guida che penso sia davvero niente male: http://www.asiteaboutnothing.net/c_smf-2.html

  10. skydiamond on agosto 17th, 2012 18:55

    Poi ci sarebbe anche questa discussione sul forum ufficiale di SMF per quanto riguarda robots.txt: http://www.simplemachines.org/community/index.php?topic=251309.60

  11. Apache 72 on maggio 21st, 2013 10:59

    Come si può fare per escludere una board o una sottosezione dal file robot?
    Ad es. posso mettere Disallow: /forum/nomedellaboard oppure Disallow: /forum/IDdella board o sottosezione?
    Come si fa? Grazie

  12. barca on agosto 28th, 2013 14:26

    molto utile, grazie