11 settembre 2008  9

Come ottimizzare i meta tag title e description: la rimozione dei duplicati

meta-tag Il processo di ottimizzazione dei meta tagW descrittivi di una pagina HTMLW è spesso sottovalutato dalla maggiorparte degli sviluppatori web. Per Meta tag si intendono i cosiddetti descrittori di pagina:  essi vengono ospitati nella sezione <head>...</head> della stessa e non concorrono alla sua formattazione.

Al contrario vengono utilizzati per fornire informazioni aggiuntive di tipo descrittivo che, in tempi passati, erano di fondamentale importanza per i motori di ricerca, dato che costituivano gli unici input valutabili ai fini dell'indicizzazione negli stessi.

Allo stato dell'arte, la tecnologia utilizzata dai search engine non tiene più conto di questi dati poiché analizza in maniera puntuale l'intero contenuto della pagina web e di tutti gli oggetti ad essa collegati (immagini, file e quant'altro).

Tuttavia Google continua ad attribuire una notevole importanza sia al tag Title che al meta tag Description ai fini di un miglior posizionamento nei risultati di un'operazione di ricerca.

Il diffondersi dei sistemi di blog authoring ha favorito il proliferare di errori semantici causati dall'assegnazione automatica dei meta tag da parte dei primi. Infatti, la struttura di un blog è molto particolare perchè basata fondamentalmente sulla visualizzazione dinamica di un elenco (pubblicato in ordine cronologico inverso) di una collezione di contenuti.

Benchè ciascuno di essi sia accessibile singolarmente mediante la generazione automatica di una pagina dedicata (completa dei tag Title e Description opportunamente valorizzati), l'elenco è generalmente accessibile dalla medesima pagina (denominata a seconda dei casi index.php, index.asp, default.aspx, ecc.)  ma, il più delle volte, corredata sempre dai medesimi meta tag.

In parole povere, l'elenco dei post consultabile sfogliando la home page di un blog mediante i canonici link di navigazione tra le pagine (post precedenti, post successivi, ecc.) o mediante la selezione per categorie, anni, mesi o addirittura tag, genera pagine completamente diverse tra loro dal punto di vita contenutistico, ma aventi generalmente lo stesso titolo, la stessa descrizione e, in taluni casi, anche le medesime keyword.

Sfortunatamente Google tende a penalizzare nelle Search engine report pageW (SERP) le pagine contenenti meta tag duplicati, soprattutto se fanno riferimento al tag Title, e lo evidenzia chiaramente con dei messaggi di "attenzione" se si utilizzano gli Strumenti per i Webmaster per il controllo dell'indicizzazione dei popri siti.

Isolare il problema

Naturalmente la soluzione è relativamente semplice dal punto di vista teorico, ma un pò meno dal punto di vista pratico perchè può richiedere un intervento sul codice del template utilizzato (ad esempio nel caso di Wordpress) o nel codice principale del CMSW (nel caso di BlogEngine.NET). Il tutto comunque si riduce sempre a poche modifiche ad un'unico file (header.php per WordPress o default.aspx.cs per BlogEngine.NET).

La strategia è sostanzialmente semplice:

  • Anzitutto è necessario caratterizzare univocamente i titoli della home page a seconda del numero di pagina interessato.
  • Supponendo che il nome del sito sia "Il mio blog", la navigazione mediante la paginazione dei post dovrà di volta in volta variare il nome della home page a seconda del numero di pagina interessato, ad esempio "Il mio blog - pagina 2", "Il mio blog - pagina 3", ecc. In tal modo si otterranno titoli univoci che agevoleranno l'indicizzazione multipla delle molteplici "incarnazioni" della pagina di default del sito in questione.
  • Nel caso in cui la navigazione avvenga per Categorie, Autori, Keyword, Mesi o Anni, il discorso non cambia. Il titolo della home page, in questi casi è caratterizzato dal filtro utilizzato: se i risultati interessano più pagine, ciascuna di esse deve contenere nel titolo anche il suo numero identificativo.
  • L'assegnazione del testo da inserire nel tag Description non è banale soprattutto nei casi di navigazione appena citati. Filtrando per categorie si può ricorrere all'inserimento della descrizione delle medesime e lo stesso discorso si può fare per gli autori. L'operazione diventa un pò più complessa nel caso della navigazione per keyword, mesi o anni; è necessario ricorrere a delle descrizioni statiche prestando attenzione al fatto che non siano eccessivamente brevi (Google genera warning anche in questi casi, putroppo)
  • Ad ogni modo è buona prassi accodare anche al tag Description il numero della pagina generata perchè ne assicura l'univocità.

Un esempio pratico: la soluzione per BlogEngine.NET

BlogEngine.NET sfortunatamente presenta la duplicazione dei titoli e delle descrizioni di tutte le pagine generate a partire dalla home page (default.aspx), che vengono accomunate tutte da un unico titolo corrispondente al nome assegnato al blog, e da un'unica descrizione coincidente con il teaser (o abstract che dir si voglia) dello stesso.

Ho realizzato, con pochissime e semplici modifiche al codice, una nuova pagina default.aspx.cs che, una volta sostituita all'esistente, attribuisce a ciascuna pagina di risultati generata a partire da questa, un titolo ed una descrizione univoci.

L'instalazione è semplicissima.

Scaricare Default.aspx.cs (2,79 kb), quindi:

  1. Decomprimere il file.
  2. Sovrascrivere il file default.aspx.cs nella root del proprio blog.

Attenzione, perchè la soluzione proposta è compatibile solo con BlogEngine.NET 1.4.5.

La soluzione per WordPress

Esistono diversi plugin che permettono di ovviare al problema. A mio avviso è consigliabile agire direttamente sul codice del template, ma preferisco che sia oggetto di un prossimo articolo dedicato, data la relativa complessità della operazioni da effettuare su di esso.

Chi vuole cominciare ad affrontare la questione e possiede un minimo di dimestichezza con il linguaggio PHPW può consultare un interessante articolo pubblicato su ItalianBloggers inerente l'argomento, non trascurando di leggerne anche i commenti che ne approfondiscono la tematica affrontata.

Esprimi il tuo giudizio

Commenti (9) -

Davide Espertini
Davide Espertini
11 set 2008 alle 11:11  01
Ciao Cristiano!! Mi hai battuto per velocità con questa tua soluzione per BlogEngine ed il problema dei tag Title e Description. Ho iniziato a lavoraci su questa notte e stavo giusto ultimando le modifiche ai file.
Ottimo lavoro!!
Roberto
Roberto
11 set 2008 alle 11:43  02
Mi ero già accorto del problema con BlogEngine 1.3, che sto usando per il mio blog http://blog.veleggiando.it
Ho fatto da qualche tempo infatti le modifiche a default.aspx.cs ed ora funziona meglio.
Speravo che nella versione 1.4 il "problema" fosse stato risolto, ma vedo che non è così :-(
Non ci ha pensato nessuno a segnalarlo all'autore?
Ciao,
Roberto
notoriousxl
notoriousxl
11 set 2008 alle 14:05  03
Ovviamente questi consigli sono ottimi, e da applicare in linea generale. Smile

In paio di opinabilissime considerazioni:

1) a mio avviso Google non penalizza per meta tag duplicati, anche per quanto dice su GWT > Analisi dei contenuti:
Questi problemi non impediscono la visualizzazione del tuo sito nei risultati di ricerca di Google
potrai fornire a Google ulteriori informazioni e attirare maggiore traffico sul tuo sito
Ad esempio, il titolo e la meta descrizione possono comparire nei risultati di ricerca e gli utenti avranno maggiori probabilità di fare clic sul tuo sito se tale testo è utile e descrittivo.
Avere n pagine con lo stesso titolo è, secondo me, "potenziale sprecato" (© Giorgiotave) Tong in quanto concorrono (anche tra loro) tutte per le stesse keyword, mentre sarebbe meglio farle concorrere per keyword tutte diverse. Tong

2) il description non dovrebbe pesare sul posizionamento, ma solo sul CTR (deve essere quindi pensato per attirare click) ;)

3) visto che nel tag title le keyword hanno maggiore peso più stanno a sinistra, cercherei di "depotenziare" le pagine con n_pagina > 1 inserendo "n° pagina - titolo pagina" piuttosto che "titolo pagina - n° pagina"... tutto a vantaggio della prima pagina. Smile

E per la description delle pagine > 1? Non saprei se fare come nel titolo, cioè diversificarle col numero di pagina. La soluzione è buona, ma sembra pensata solo per far tacere l'algoritmo dell'analisi dei contenuti, e non per il CTR... ma al momento non mi viene in mente niente. Frown

Le pagine > 1 sono comunque piuttosto "rognose", e molti preferiscono bloccarle tramite robots.txt...
SEO in Abruzzo
SEO in Abruzzo
11 set 2008 alle 14:20  04
Io ho postato un ticket per questa cosa la settimana scorsa, chissà se gli sviluppatori la terranno in considerazione.
Per il momento ho lavorato di codice nche io.
SEO in Abruzzo
SEO in Abruzzo
11 set 2008 alle 14:21  05
Anzi, a dirla tutta, ci stanno anche problemi con il file delle sitemap e un sacco di altre cose che non filano proprio da un punto di vista SEO per blogengine.
hermansji
hermansji
11 set 2008 alle 17:29  06
Complimenti sinceri un ottimo post, aspetto la seconda parte per WP!!
.:.
Cristiano
Cristiano
11 set 2008 alle 23:20  07
@ Davide Espertini:
Adesso hai del lavoro in meno e del tempo in più Wink

@ Roberto:
E' stato segnalato in passato, ma la cosa è passata in secondo piano, perchè a mio avviso, non è stata argomentata in maniera esaustiva.

@ notoriousxl:
Il tuo intervento è come sempre prezioso ed opportuno Smile
In realtà Google riferisce che le pagine vengono si indicizzate, ma non cita nulla a riguardo del posizionamento che, a mio avviso, se il tag Title è duplicato con frequenza elevata (generalmente succede per blog contenenti un cospicuo numero di post) viene senz'altro penalizzato, soprattutto in virtù del discorso relativo alle keyword, come giustamente citi anche tu.

Non condivido la scelta di anteporre il numero di pagina al titolo: semanticamente  è scorretto e fornisce un informazione confusa. Per dare più forza alla home page è sufficiente (solo per essa) non indicare affatto la pagina.
Ma sono entrambe valide alternative.

Su discorso relativo all'impostazione del tag Description, purtroppo non sono riuscito a concretizzare soluzioni alternative e condivido appieno le tue perplessità.
Se qualcuno ha qualche idea, si faccia avanti Smile

Per quanto riguarda il blocco delle pagine tramite robot.txt è una soluzione che può avere un senso solo se si somministra a Google una sitemap del sito sempre aggiornata (ad esempio tramite un webservice dedicato) o si ricorre ad una pagina di Archivio dove elencare i link a tutti gli articoli pubblicati.
In linea di massima comunque non mi sento di consigliarla.

@ SEO in Abruzzo:
Non posso che darti ragione: ad esempio, secondo me, la sitemap dovrebbe essere configurabile da pannello di controllo o, in alternativa, non "hard coded" nel core ma accessibile in qualche sezione del "code behind" (ad esempio tramite un estensione ad hoc).
Io penso di proporre le modifiche fatte come patch: in passato alcune correzioni che avevo proposto per la 1.4.5 sono state poi approvate Smile

@ hermansji:
Grazie. Smile
Il mini tutorial per WordPress arriverà presto Wink
SEO in Abruzzo
SEO in Abruzzo
24 set 2008 alle 20:23  08
Aggiungo qua, anche per mia futura referenza visto che tanto non metteranno mai una cosa del genere, una modifica al file post.aspx.cs, per evitare che il post con solo anno/mese generi un titolo duplicato con quello anno/mese/giorno

         string pattern=@"/";
        string rawUrl = Request.RawUrl;
              Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
          MatchCollection matches=r.Matches(rawUrl);
          
           if (matches.Count == 5)
              Page.Title = Server.HtmlEncode(Post.Title);
        else
          Page.Title = Server.HtmlEncode(Post.Title) + "&nbsp;&raquo;";  

La modifica va fatta dove c'è la stringa Page.Title = Server.HtmlEncode(Post.Title);

Poi potete pure cambiare il carattere e via dicendo.
Cristiano
Cristiano
25 set 2008 alle 22:14  09
@ SEO in Abruzzo:
Ottima soluzione.
Ma mi sembra che  il problema si verifichi solo se si decide di attivare la data nell'indirizzo del post.
Con l'indirizzamento standard, naturalmente il problema non si pone.

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti