§ 15. Come creare un buon robots.txt per WordPress

Come ben sanno molti di voi, un file robots.txt di qualità ha una notevole importanza per la popolarità della maggioranza dei siti web. Nel paragrafo precedente abbiamo visto i principi generali per la creazione di un buon robots.txt.
Molti di voi sanno però altrettanto bene che un sito web basato su un CMS ci aggiunge delle difficoltà in più nella creazione del robots.txt realmente efficiente. Le difficoltà consistono nel dover vietare l’indicizzazione di una molteplicità di pagine generate automaticamente dal CMS (nel nostro specifico caso il WordPress) che ripetono i contenuti delle pagine originali create dagli amministratori del sito. Si tratta quindi delle pagine-doppioni sulle quali i contenuti vengono richiamati e visualizzati perché selezionati per categoria, tag, data, anno, mese etc. Eliminando tutti i doppioni dai risultati di ricerca sui «motori» (Google e altri) facciamo aumentare l’affidabilità del sito e la quantità delle visite alle sue pagine originali.
Inoltre, per motivi di sicurezza conviene eliminare dai risultati di ricerca tutte le pagine che riguardano l’amministrazione del nostro sito.
Vediamo subito un esempio pratico di un file robots.txt scritto appositamente per un sito costruito su WordPress. Ecco il suo testo minimo indispensabile (l’unica cosa che dovrete necessariamente cambiare è l’indirizzo del sito all’ultima riga):

User-agent: * # la direttiva per i robots diversi da quelli di Google e Yandex
Disallow: /cgi-bin # una directory del vostro spazio web
Disallow: /? # tutti i parametri della ricerca sulla home
Disallow: /wp- # tutti i file di WP: /wp-json/, /wp-includes, /wp-content/plugins
Disallow: /wp/ # nel caso della eventuale esistenza del sottocatalogo /wp/ dove e installata la CMS
Disallow: *?s= # ricerca
Disallow: *&s= # ricerca
Disallow: /search/ # risultati ricerca
Disallow: /author/ # archivio autori
Disallow: /users/ # archivio autori
Disallow: */trackback # tutti i trackback nei commenti
Disallow: */feed # tutti i feed
Disallow: */rss # i feed via rss
Disallow: */embed # tutti gli elementi incorporati
Disallow: */wlwmanifest.xml # il file xml del Windows Live Writer (se non lo utilizzate, eliminate la direttiva)
Disallow: /xmlrpc.php # il file  WordPress API
Disallow: *utm= # i link con i parametri utm
Disallow: *openstat= # i link con i parametri openstat
Allow: */uploads # la directory con i file uploads

User-agent: GoogleBot # la direttiva per Google (evito di ripetere i commenti identici)
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: /wp/
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: */wlwmanifest.xml
Disallow: /xmlrpc.php
Disallow: *utm=
Disallow: *openstat=
Allow: */uploads
Allow: /*/*.js # gli script js dentro alla /wp- (/*/ — per la priorita)
Allow: /*/*.css # i file css dentro alla /wp- (/*/ — per la priorita)
Allow: /wp-*.png # le immagini nei plugin, cartella cache etc
Allow: /wp-*.jpg # le immagini nei plugin, cartella cache etc
Allow: /wp-*.jpeg # le immagini nei plugin, cartella cache etc
Allow: /wp-*.gif # le immagini nei plugin, cartella cache etc
Allow: /wp-admin/admin-ajax.php # utilizzata dai plugin per non bloccare JS e CSS

User-agent: Yandex # la direttiva per Yandex.ru (non ripeto i commenti in quanto sarebbero uguali ai precedenti)
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: /wp/
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: */wlwmanifest.xml
Disallow: /xmlrpc.php
Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php

# Non dimenticatevi di indicare il file Sitemap (senza indicarlo per ogni User-agent
Sitemap: http://nomesito.it/sitemap.xml

Come potete vedere, il significato di ogni direttiva è spiegato dal relativo commento (come ben sapete, nei file robots.txt i commenti iniziano con il simbolo #).
Alla fine della lista di istruzioni per ogni User-agent potete eventualmente aggiungere tutte le direttive che ritenete necessarie secondo le vostre esigenze. Infatti, una volta dichiarate tutte le istruzioni rese necessarie dalle particolarità tecniche del WordPress, si passa a stabilire le regole — questa volta sulla indicizzazione o non delle pagine del sito — di carattere più ampio già descritte nel paragrafo precedente.
Inoltre, come ho già scritto, è consigliato non far indicizzare le pagine-doppioni, quali gli archivi (creati secondo vari possibili criteri) e i raggruppamenti per categorie e tag. A tal fine dobbiamo aggiungere nell’esempio appena riportato le seguenti righe:

Disallow: /tag # le pagine dei tag
Disallow: /category # le pagine delle categorie
Disallow: /archive # lepagine degli archivi

Potete metterle in ogni blocco User-agent dopo la riga Disallow: /users/
A questo punto mi restano da aggiungere solo tre precisazioni:
1. Il percorso della mappa del sito (Sitemap) va indicato solo una volta in tutto il file robots.txt.
2. A causa della evoluzione dei meccanismi di Google e altri «motori» di ricerca, non ha più senso vietare l’indicizzazione delle cartelle wp-content, cache, plugins e themes. Ma anche se lo fate, non succede nulla di grave.
3. Evitate di inventare delle regole particolari troppo strane. Per esempio, la direttiva Disallow: /10 nasconderà non solo i vari archivi con le date, ma anche gli articoli con i nomi del tipo «10 consigli su come conquistare le ragazze cinesi» (se l’URL è stato generato dal nome dell’articolo).
Ecco, ora penso di avervi fornito tutte le informazioni essenziali.
P.S.: ovviamente, il file robots.txt deve essere caricato nella root.