WordPress: Evitare contenuti duplicati con le url paginate

Scritto il 15 gen 2009 in WordpressNessun commento letto 1101 volte.

In questo articolo voglio affrontare un grosso problema per chi utilizza WordPress e rischia di ritrovarsi con una bella penalizzazione a causa dei contenuti duplicati generati dalle url paginate, ossia quelle che si raggiungono tramite ilink Previous Entries e Next Entries, sopratutto per quel che riguarda i meta tag description e keywords di tutte le pagine interne numerate.

Quando si è agli inizi  questo problema non sussiste vista la ovvia pochezza di contenuti, ma via via che i post aumentano sorgono le pagine interne numerate che WordPress genera automaticamente. Il problema è che tutte queste paginette, create per oganizzare meglio gli articoli, agli occhi di Google appaiono tutte dei doppioni se non si corre ai ripari col giusto tempismo. Anche perchè quando i motori di ricerca fanno presente la cosa al webmaster (tramite ad esempio gli Strumenti di Google per il WebMaster) è già troppo tardi e la frittata è fatta con tutte le conseguenze che si porta.

Analizziamo il problema dei meta tag duplicati

Se non avete apportato alcuna modifica nella generazione dei meta tag allora rientrate anche voi in questa casistica. Analizziamo un blog molto conosciuto, andate nella home-page di Geekissimo.

Adesso visualizzate il codice della pagina e osservate i meta tag keywords, description e title. Memorizzateli e scorrete la pagina fino in fondo, cliccate sulla pagina-archivio numero 2 (sono i numeri che vedete in fondo) e vi ritroverete nella seconda pagina dell’archivio dei post della home. Adesso andate a vedere il codice e confrontate i tag visti in precedenza con quelli attuali. Noterete che sono assolutamente identici, ed è così per tutte le pagine successive. Questo ripetuto per gli archivi delle categorie e dei tag crea una quantità di contenuti duplicati immensa e se Geekissimo non godesse del TrustRank che ha probabilmente navigherebbe nel dimenticatoio di Google.

Per risolvere questo grave problema esistono due soluzioni:

  • Lasciare vuoti entrambi i tag
  • Impedire l’indicizzazione di tali pagine

Analizziamole una per una.

Lasciare vuoti i meta tag keywords e description

Partiamo dalla soluzione più rapida e semplice ossia quella di lasciare vuoti entrambi questi tag che molti reputano inutili ai fini SEO anche se non è proprio così, e se usati in un certo modo hanno una loro utilità anche se ovviamente da soli non fanno la differenza.

Impedire l’indicizzazione delle pagine per non renderle dei contenuti duplicati

Fortunatamente WordPress implementa uno strumento molto comodo per i WebMaster, ossia i Tag Condizionali. Grazie all’utilizzo di questi ultimi è possibile far riconoscere la pagina visualizzata dal browser e adattare il contenuto di conseguenza.

Dato che dobbiamo far riconoscere le pagine interne numerate il tag che ci interessa é is_paged().

Pertanto non ci resta che andare nel file header.php e aggiungere prima del tag </head> la seguente porzione di codice:

<?php if (is_paged()) { ?>
<meta name=”robots” content=”noindex,follow” />
<?php } ?>

Questa funzione “capisce” che siamo in una pagina interna e ne impedisce l’accesso (e l’indicizzazione) a Google in modo tale da non fargli rilevare i contenuti doppi. Ritengo che rappresenti la soluzione migliore in quanto per il posizionamento è sufficiente mostrare ai motori di ricerca solo la prima pagina di ogni tag o categoria.

Le altre difficilmente ottengono un buon posizionamento, risultano per lo più utili per l’utente e per l’usabilità del sito, in considerazione anche che mettendo troppa carne al fuoco si rischia di perderne il controllo, meglio rendere pubblico solo ciò che è strettamente necessario.

La terza soluzione: bloccare i contenuti duplicati con il robots.txt

Oltre a quelle sopra elencate si potrebbe anche adottare la soluzione di bloccare tali pagine duplicate tramite il robots.txt con l’utilizzo dei pattern, ma è una soluzione peggiore poichè se la parola del pattern compare per coincidenza nell’url di un post questo verrà bloccato. Inoltre il tag is_paged() agisce in maniera molto più precisa e solo su questo tipo di pagine, per cui risulta molto più sicuro e affidabile.

Cmq per chi volesse adottare questa soluzione non ha che da aprire con un editor di testo come il Blocco Note il file robots.txt ed inserire la seguente stringa:
User-Agent: *
Disallow: /page*/

Così verrà bloccato l’accesso ai motori di ricerca a tutte le url che contengono la parola page. Ricordo che non tutti gli spider supportano tale sintassi, sicuramente quello di Google lo fà ma non garantisco per gli altri.

Nofollow ai link da scorrimento delle pagine

Ultima importante raccomandazione ricordate di inserire il nofollow ai link di navigazione degli archivi in fondo alle pagine, in pratica i link Previous Entries e Next Entries in modo da rafforzare la non indicizzazione di tali pagine.

Per fare ciò aprite con il Blocco Note il file /wp-includes/link-template.php ed andate alla riga 1096 circa dove trovate questo pezzo di codice:

return ‘<a href=”‘ . next_posts( $max_page, false ) . “\” $attr>”. preg_replace(‘/&([^#])(?![a-z]{1,8};)/’, ‘&#038;$1′, $label) .’</a>’;

modificatelo in questo modo:

return ‘<a href=”‘ . next_posts( false ) . “\” $attr rel=\”nofollow\” >”. preg_replace( ‘/&([^#])(?![a-z]{1,8};)/’, ‘&#038;$1′, $label ) .’</a>’;

dopi andate alla riga 1164 circa e troverete quesoto codice:

return ‘<a href=”‘ . previous_posts( false ) . “\” $attr>”. preg_replace( ‘/&([^#])(?![a-z]{1,8};)/’, ‘&#038;$1′, $label ) .’</a>’;

modificatelo così:

return ‘<a href=”‘ . previous_posts( false ) . “\” $attr rel=\”nofollow\” >”. preg_replace( ‘/&([^#])(?![a-z]{1,8};)/’, ‘&#038;$1′, $label ) .’</a>’;

Se volete cambiare anche l’anchor text dei link mettete quello che desiderate al posto di “. preg_replace( ‘/&([^#])(?![a-z]{1,8};)/’, ‘&#038;$1′, $label ) .’ in questo modo:

return ‘<a href=”‘ . next_posts( $max_page, false ) . “\” $attr rel=\”nofollow\”>Testo per anchor-text</a>”;

Adesso avete sistemato tutto nei minimi particolari.

WordPress è senz’altro un ottimo cms per creare blog o siti di contenuti testuali, implementa molte funzioni automatiche, ed è così diffuso che è molto facile personalizzarlo a proprio piacimento. Un grosso difetto però degli sviluppatori è che si concentrano troppo ad implementare nuove funzionalità ed opzioni, tralasciando sempre da parte l’ottimizzazione seo per i motori di ricerca. Una lacuna come questa delle url paginate che creano contenuti e meta tag duplicati, andrebbe presa in considerazione dal dev-team.

Tags: ,

Articoli che potrebbero interessarti

Scrivi un commento

- Torna alla Home Page di IoWebMaster